频谱泄露与窗函数

频谱泄露与窗函数

今天,我想谈的是数字信号处理中的两个重要的问题,什么是频谱泄露,以及什么是窗函数,为什么使用窗函数。


什么是频谱泄露

 我想大部分人和我一样,在学习数字信号处理或者从事相关工作时,会遇到相关的问题,那么今天,就给大家分析频谱泄露这个问题。
 大家在其他地方也经常听见频谱泄露这个概念,那么频谱泄露究竟是什么呢?
 频谱泄露,来自于对于原信号序列的截断,大家可能会问:为什么有时候频谱没有泄露,有时候频谱又泄露了? 今天我们就来谈谈这个问题,是真的频谱没有泄露吗?
 我们大家知道对于理论分析来说,序列都是无限长的,而对于实际的离散时间信号,我们都是有限长的,那么想想,通过理论分析我们得出的频谱,和我们利用FFT计算得到的频谱区别在哪呢?区别就在于,我们在不知不觉中使用了矩形窗对原无限长序列进行了截断,其实按道理来说,频谱已经不再是我们理想的信号了,而是被矩形窗截断之后的信号。我们都知道,矩形窗的时域和频域对应关系是这样的:在这里插入图片描述

在这里插入图片描述

matlab代码:
Fs=1000; %采样频率1000hz
w=boxcar(100);%生成长度为100的矩形窗
t=0:1/Fs:1-1/Fs;%假设信号持续期为1s,矩形窗持续0.1s
x=[w',zeros(1,length(t)-100)];%生成信号
f=0:Fs/N:(Fs-Fs/N);%频率刻度
f=f-Fs/2;%频率刻度
Y=abs(fft(x));
Y=fftshift(Y);
plot(f,Y)%在这里没有考虑幅度谱修正的问题

一、频谱泄露是什么?

 首先我在这里想提示大家的是,matlab中的FFT是DFT的快速计算,正如大家在这里看到的矩形窗的时域和频域的对应这样,泄露都是存在的。对于一个单频信号来说,在频域表现为冲击,而这样的矩形窗,与无限长信号相乘,相当于为频域做卷积,单频信号被扩散成了这样类似Sa函数的表示形式。那么,我们怎么才能避免频谱泄露呢?
 在这里,我首先想解释这样一个问题为什么泄露一直存在,但是有时看不到,有时候看得到? 为什么我们看不到的原因,是因为在栅栏效应中,我们在频率域取样点,除了在0频率点处取到1的样值,其余地方,我们都取到的是0的样值,所以在我们看来,“没有泄露”。而一旦我们非周期采样,我们会在Sa函数的非零点处取得样值,从而导致泄露。上面的原理我引用宋知用《Matlab数字信号处理85个案例精讲-从入门当进阶》中的一幅图
在这里插入图片描述

二、窗函数的目的

 引入窗函数的目的,就是为了减小由于信号频谱泄露对临近频率的影响。下面我给出窗函数的类型及相关参数。

窗函数旁瓣峰值dB近似过渡带宽精确过渡带宽阻带最小衰减/dBmatlab函数
矩形窗-13 4 π N \frac{4\pi}{N} N4π 1.8 π N \frac{1.8\pi}{N} N1.8π21boxcar(N)
三角形窗-25 8 π N \frac{8\pi}{N} N8π 6.1 π N \frac{6.1\pi}{N} N6.1π25triang(N)
汉宁窗-31 8 π N \frac{8\pi}{N} N8π 6.2 π N \frac{6.2\pi}{N} N6.2π44hanning(N)
哈明窗-41 8 π N \frac{8\pi}{N} N8π 6.6 π N \frac{6.6\pi}{N} N6.6π53hamming(N)
布莱克曼窗-57 12 π N \frac{12\pi}{N} N12π 11 π N \frac{11\pi}{N} N11π74blackman(N)
凯赛窗-57 10 π N \frac{10\pi}{N} N10π80blackman(N)
  • 1
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值