本篇的信号处理流程主要讲预处理和取样使用的技术手段和出现的各种问题以及解决方法。
信号处理流程由下图所示:
Sampling
为什么要做sampling呢?
- analog数据量太大。
- 想用的filter没法在analog数据上应用。
首先要对一个信号进行采样,涉及到一秒采多少次(sampling rate),一次用多大的size(bits per sample),记录的时候要不要取近似值(rounding),取近似值会不会产生重大误差(quantization errors),影响信号之后的重建(reconstruction)。
在采样的过程中,波谱是不断复制并且以sample rate为单位移动的。
为什么要quantization呢?
将原本的数据转化成可计量的占用空间更小的数据。
如何减少quantization errors呢?
用oversampling和dithering。
为什么要dithering呢?
因为量化误差和信号本身相关性很强,在量化前先使用dithering可以减少这个相关性,量化的时候误差就会少一些。-0.4(original) + -0.4(whitenoise) -> -0.8 -> -1(quantized)
Does sampling every details of a signal really exist?
不。因为有记录时的失误和噪音。
记录时,可能会使用Rounding的方法来平滑曲线,可能会把-0.1和0.1都记作0,这就造成了quantization errors。可以用添加white noise的方法来减轻这个问题。white noise将整个信号各个位置的intensity至少增大了一倍,可能-0.1和0.1依然没法解决,但-0.3就会变成-0.6,就会被近似到-1。因此,quantization error在大部分情况下只能减轻而不能避免。
而信噪比是由bits per sample决定的。公式为SNR = 6.02M + 1.76
:M是number of bits, 6.02是基础数。一般来说,SNR大约是6dB/bit。1
2
310dB = 10
20dB = 100
6dB = 2
bits per sample提升了,就说明取样数增多了,取样结果就会更加精确,主信号就会更加清晰。
Can discrete samples really capture a continuous signal?
这个问题是在问用sampling的方法真的可以捕捉完整一个信号吗。答案是discrete samples can capture a band-limited signal without loss。其实这个问题和上面第一个问题是一个意思,sampling会出现计量误差和噪音误差。
然而,如果知道了频率范围,就可以针对这个范围加入white noise,就不会记丢频率(no lost frequencies)。
如果使用perfect sampling来采样,也就不会有噪音误差了(不需要进行rounding)。
Fourier Transform
采样就是用离散的数据来定义一个连续的信号。得到三种图,波谱图(spectrum),相位图,和振幅-时间图,对应的就是频域,相位域,时域。时域中的信号太过复杂,或重复或变化,难以找到分析的下手点。一个重要的基本理论:任何一个信号都可以表达为一群正弦波的叠加。因而频域中,信号转变成不同正弦波对应频率和振幅的组合,更易于分析。
(下面的部分,我之后会拓宽讲)
在从时域到频域的转换中,我们需要用到傅立叶变换。具体内容见傅立叶变换。
Formal Fourier Transform:
由此可得Short-term Fourier Transform
我们分析的是样本,而不是连续不断的时间。Discrete Fourier Transform
待补充
把积分变成求和,得到Fast Fourier Transform O(nlogn)
因为FFT是对[a,b]范围的sample进行傅立叶变换,但傅立叶变换是用于负无穷到正无穷的。Sample边界上波的连续性较强时,波长不完整就不能计算对应的频率,使原本连续的波谱出现断点(奇点),也就是谱泄漏(spectral leakage),而用windowing算法就可以解决这一问题。
具体解释看这篇就可以了:加窗的原因和效果
Concepts
Quantization
量化,近似到最近的整数的过程。
*To analyze the effect of quantization, we model quantization as: starting with the original exact signal and adding a new noise signal consisting of just the rounding error, which is uniformly and randomly distributed at each sample between -0.5 and +0.5.
White noise
白色噪音是与主信号振幅相同的频率在0到Nyquist Frequency之间的随机信号,用于解决量化误差。
Dithering
信号处理中一种降低量化误差的手段,也是noise shaping的一种方式,举例说把24bit的数据量化为16bit的,直接砍掉8bit是不行的,因为量化误差与原始信号相关性很强,会造成频谱上严重的躁声。
这时候,给最低bit位补充一个随机信号(white noise),可以化解这个量化误差,让量化误差的能量在频谱上远离信号频率或者平均分布到整个频率。(dithering增加signal能量,相当于提高了信噪比,用提高bits per sample的方式也是在减少noise,提高信噪比)
Aliasing
两种情况:
- 相近的信号难以分辨,比如用不同的sample rate进行取样时,取样点太少而造成频率错误。
- 当频率超过了Nyquist Frequency时,就会出现下图所示的情况。
构造波谱的过程是:基本频谱按照sampling rate向右移动。
如果频率大于1/2 sampling rate,就会出现重叠。
Phase Distortion
相位错误导致pulse的方向错误,比如-0.1和0.1都被看作是0造成下降和上升难以分清。
Oversampling
用高于nyquist frequency的采样率进行采样。
Perfect Sampling
理论上按照Nyquist Theorem就可以进行完美采样了。