语音识别MFCC系列(二)——离散信号、离散傅里叶变换
看了很多傅里叶变换(连续信号和离散信号)的博客,都写的不是很清楚,有些地方可能有误,我在查阅了书籍和大量资料以后,争取能用前后标注一致的公式把相关内容(帕斯瓦尔公式,能量信号,功率信号,能量谱,功率谱等)讲清楚,说正确。最好先看连续信号再看离散信号哦连续信号的请看语音识别MFCC系列(一)——连续信号、傅里叶变换离散信号的请看语音识别MFCC系列(二)——离散信号、离散傅里叶变换耐不住...
看了很多傅里叶变换(连续信号和离散信号)的博客,都写的不是很清楚,有些地方可能有误,我在查阅了书籍和大量资料以后,争取能用前后标注一致的公式把相关内容(帕斯瓦尔公式,能量信号,功率信号,能量谱,功率谱等)讲清楚,说正确。最好先看连续信号再看离散信号哦
连续信号的请看语音识别MFCC系列(一)——连续信号、傅里叶变换
离散信号的请看语音识别MFCC系列(二)——离散信号、离散傅里叶变换
耐不住的话直接看第五部分也行。下面将讲述:
- 不连续 周期 信号的傅里叶 级数
- 不连续 非周期 信号的傅里叶 变换
- 离散傅里叶变换
一、不连续周期信号的傅里叶级数(DFS)
对一个连续周期信号的一个周期进行点采样,得到离散序列,则,,为采样周期,为采样频率。
重现连续周期信号的傅里叶级数:
记为离散域的基本频率,就是频率分辨率啦,就是最小的频率单元啦,各个频率分量的频率都是他的整数倍,是次谐波的数字频率(下面会有例子解释哦)。因,则:
在序列表示中,可仅用表示,用表示,则上式为:
当周期信号从连续域变换到离散域以后,它的频率从映射到数字频率从。离散信号被分为个频率分量,频率分辨率为,根据连续信号的傅里叶级数同理,离散信号的傅里叶级数也有复共轭的性质,即。
二、离散信号的帕斯瓦尔公式
推导就不写了,就是用上面那些式子推出来的(猜测对于周期信号,上式代表的是功率,对于长度有限的离散信号,上式代表的是能量)。
三、不连续非周期信号的傅里叶变换(DTFT)
哎呀这里和连续信号处理类似啦,所以连续信号一定要理解好哦!将长度有限的非周期信号,以为周期,将延拓为周期信号,这里要大于信号长度哦,那当时,为连续量,,,且这时趋于0,则乘个,采用频谱密度表示频谱。
四、离散傅里叶变换(DFT)
因DTFT在频域是连续的,我们需要在时域和频域都是离散的离散傅里叶变换,将长度有限的非周期信号,长度为,以为周期,将延拓为周期信号,则DFS为:
当和都取主值区间,则:
将上式乘以,用频谱密度来表示,简称频谱:
因为是频谱密度,所以,当时,对应的频率分量的波形峰值是,当时,对应的频率分量的波形峰值是。因为负频率的和正频率共轭,所以当为偶数时,只给个点的频谱,最后一个点的频率为二分之一的采样频率,当为奇数时,只给个点的频谱,最后一个点的频率稍小于二分之一的采样频率。
五、奈奎斯特频率,频谱混叠和泄露
采样信号为
对其做傅里叶变换得:
可知采样信号的傅里叶变换为原连续信号傅里叶变换周期延拓到以为中心的频谱,为采样角频率,奈奎斯特频率(Nyquist频率)是采样频率的一半,原信号傅里叶变换频谱的边缘是它本身的最高频率,容易看出来当才不会发生频谱混叠,也就是说奈奎斯特频率大于即可。
频谱泄露,就是比如本来只有频率为的分量,但是频谱中出现了和相近的分量。举个例子说明吧。
比如说有一段连续的周期信号,周期为2s,那么这段连续周期信号的傅里叶变换的基频(就是上一篇博客的基本角频率,其他频率分量的角频率都为的倍数,),也就是说其他频率分量的频率都是的整数倍,如果我们就截断2s的信号,那截断以后就是连续非周期信号了,那就要先周期延拓再做傅里叶变换,周期延拓后和截断前的信号一致,傅里叶变换也一致,频谱为一条线(在基频处有个分量)。如果截断4s的信号,周期延拓后和截断前的信号一致,傅里叶变换的基频为,那么频谱为一条线(在二倍频处有个分量),幅值与原来相同。但是如果截断3s的信号,周期延拓后在3s处有跳跃,容易产生高频分量,而且重要的是,傅里叶变换的基频为,按道理说频谱应该在1.5倍频处有个幅值,但是频谱中没有1.5倍频,只有1倍频,2倍频,那么频谱就会以1.5为中心的其他整数倍频处有分量,越靠近1.5幅值越大,和原来的不一致了!这就是频谱泄露!如下图所示:
根本解决方法是必须取自一个基本周期或基本周期的整数倍为宜。但有的时候我们截断的时候不知道基本周期,这时可以加长截取时间段,信号多一点能多代表一下整段信号吧,也可以加汉明窗等等窗函数,窗函数主要是减少旁瓣。可以参考下面几个网址看细致的分析和图,内容都类似,总有一个能打开:
http://www.ni.com/white-paper/4844/zhs/
https://zhuanlan.zhihu.com/p/24318554
http://zhangzhenyuan163.blog.163.com/blog/static/85819389201410112942281/
http://www.ilovematlab.cn/thread-30099-1-1.html
http://www.chinaaet.com/article/15991
六、举个DFT的例子吧,通俗解释一下
1. 采样得到一段离散的信号,用包含100个数字的数字序列表示,其中前12个数字如下所示:
1.00, 0.62, -0.07, -0.87, -1.51, -1.81, -1.70, -1.24, -0.64, -0.15, 0.05, -0.10
我们将上述数字序列用表示,为某个数字在序列中的下标,如,等。这里我们期待使用的信号是零均值信号,即数字序列的平均值为0,相当于每个数字减去了数字序列的平均值(下文会解释为什么这样做)。
我们希望求得一系列频率分量,将信号从时域转化到频域,使得上述数字序列为一系列频率分量之和。
2. 其次,什么是信号相关性?
下面这个公式不是严格意义上的相关性计算公式,只能说是在信号是零均值的情况下,一定程度上能反应相关性。
有两个信号和,在信号是零均值的情况下,一定程度上他们越相关(比如同正同负),所求的和越大,但不绝对。例如下面的图a相关性大,和大,图b相关性小,和小。
3. 下面来解释离散傅里叶变换的公式!
代表的是某个频率分量的系数,这个式子很想上面求相关性的式子呀,求得是和的相关性,那到底是什么意思呢?先引入欧拉公式:
令,则:
可以看到是个复数,被分为两部分,实轴为和某个频率的余弦函数的相关性,虚轴为和某个频率的正弦函数的相关性。
4. 当变化的时候,上述相关性的意义到底是什么呢?
,
意味着当分量频率为0的时候(即为一条直线),该分量的系数为数字序列中所有数字之和。
,
代表什么?当从到的时候,从0到呀!这代表了所有的采样点仅代表一个周期!看下图a,正弦波是不是只有一个周期。图b代表上式的实数部分,图c代表上式的虚数部分。
,
代表什么?当从到的时候,从0到呀!这代表了所有的采样点仅代表三个周期(可不就是三个周期吗)!看下图a,正弦波是不是只有三个周期。
,所有的个采样点代表了个周期,约等于1个采样点代表一个周期,那么这个分量的周期是不是等于约采样周期了!这个分量的频率是不是约等于采样频率了!
这时你再回看一下,,,有没有发现,当从0到时,频率分量的频率从0到了!并且对应的分量频率为,均匀分布哦!这个结论很重要哦!在求MFCC特征时会用到!
5.能量密度谱
能量密度谱为
看上面的帕斯瓦尔公式。
上面已经解释过(具体的证明类似连续信号中的证明),当均为实数时,负频率的(对应的到,或者说到0)是正频率(对应的0到)的共轭,即,基于成轴对称。比如说做一个的DFT,因为负频率的和正频率共轭,所以只给个点的频谱,即257,因为多给没有意义啊,共轭的模是一样的。
六、总结
最后总结一句,信号可以分为多个频率分量的和,那么做离散傅里叶变换时,某个频率分量的幅值就是看信号和这个频率的正弦、余弦波形的相关性,如果信号中包含这个频率分量比较大,即幅值大,那肯定和这个频率的正弦、余弦波形的相关性更高呀,好好理解下这句话,就能大概记住傅里叶变换的求法了。
参考网址:
更多推荐
所有评论(0)