看了奥本海姆的课程,领悟如下:
1、信号与系统实际上是数字信号处理的基础。整个信号课程的核心问题是:
对于一个信号,如何采集,如何传输,如何恢复?
传输涉及到通信,即编码方式。采集和恢复是信号处理着重解决的问题。
2、对于周期信号,傅里叶级数是根本:
合成式:
解析式:
合成式说明,基于复数信号的正交性,可以把周期信号用同周期的复数信号和它的谐波组合得到。
解析式说明了各个谐波的幅度。信号一个周期内和该谐波的内积,除以谐波自身的内积,得到了系数。
3、对于连续信号,
合成式:
解析式:
合成式同2中一样,但是注意这里除以,
趋于无穷大。此时求和变为积分,
即
。
之所以这里除以,是因为我解析式相比2里面没有除以
。因为解析式的结果是有限值,不能去除以无穷大。
4、对于周期信号,做离散采样(DFT)
这时候存在三个频率:1、信号的频率。2、采样信号的频率。3、数字频率
信号的频率我不知道。采样信号的频率我知道,即两个样点间的时间间隔倒数。
假定信号满足这样的特点:每隔N个点重复一次。即
则可以用数字频率为的信号去合成它:
合成式:
比较连续信号的合成式,可以发现和
的地位是等价的。
同样,代表谐波次数。只是此时
具有周期性,周期为N。
解析式:
这里有一个值得注意的地方:为什么系数只取N个?在连续信号中,我需要无穷多个谐波才能合成原始信号,而对于离散变换,系数只需要取
。
原因是:离散信号的变换,只保证离散点上的值相同。
如果对周期离散冲击信号做傅里叶变换,得到的系数和是不一样的。
的缺失部分会由更高次的谐波去补偿。所以需要无穷多个波去合成这个信号。此时合成出来的信号是完全一样的。而利用
去合成,则只能保证采样点上的数值一样,但不能保证每个点都相同。
注意周期离散冲击信号和周期离散信号是两个概念。周期离散冲击信号是连续信号的冲击理想近似,实际是不存在的。但可以用来进行模拟实际信号从而通过傅里叶变换在频域上分析。论文里面一般叫impulse train。详见DFT基础
在上一篇DFT基础里面,用离散信号的傅里叶级数展开推导到DFT的变换式。但没有仔细地考察反变换式。其实问题也恰恰在这里:用梯形面积和去代替积分后,存在的误差就是原来连续函数的高次谐波部分。
5、N是采样点数,也是我认为的,信号的最长重复序列。
花多少时间得到这个N,取决于我的采样频率。假设两个信号都是每1000个点循环重复。同样得到1000个点,时间1秒,说明信号频率至少是1KHz。如果这1000个点时间是0.1秒,说明信号频率至少是10KHz。
所以DFT里面频率只从0到2π。实际的频率需要用采样频率去“拉宽”这个频谱。
频率分辨率是什么意思呢?
想象一个信号变化很慢,比如说0.1Hz的正弦信号,花1s的时间,采集了10个点,这个时候我去合成这些采样点,会发现几乎每个点都是一样的。因为采样的时间太短了。我看到的信号几乎没有改变。
如果我等得久一些,比如花10s时间,采集了100个点。这个时候我采集到了一个完整的信号周期。这样算出来的,证明只有
。
因为此时,我的N刚刚满足在这一频率下的最小的周期长度。所以得到的结果就是这一采样频率周期的N倍,等于离散信号的周期。对应频率就是,即频率分辨率。
点数N增加,频率分辨率越高,前提是采样频率不变。N增加相当于增加了数据长度。
从这个角度上看,对于很慢的信号,高频采样没有太多的意义。因为时间是固定的,采样频率太高反而增加了数据量。对于很快的信号,高频、快速的采样即可分析出信号的频率成分。