频谱泄露

频谱分析误差表现在那几个方面

倾然丶 夕夏残阳落幕 提交于 2020-03-21 18:13:09
用DFT/FFT对信号进行频谱分析误差主要表现在三个方面 即: 频谱混叠现象; 栅栏效应; 截断效应,截断效应又包括频谱泄漏和谱间干扰。 频谱混叠 : 奈奎斯特定理已被众所周知了,所以几乎所有人的都知道为了不让频谱混叠,理论上采样频谱大于等于信号的最高频率。那和时域上联系起来的关系是什么呢? 采样周期的倒数是频谱分辨率,最高频率的倒数是采样周期。 设定采样点数为N,采样频率fs,最高频率fh,故频谱分辨率f=fs/N,而fs>=2fh,所以可以看出最高频率与频谱分辨率是相互矛盾的,提高频谱分辨率f的同时,在N确定的情况下必定会导致最高频率fh的减小;同样的,提高最高频率fh的同时必会引起f的增大,即分辨率变大。 栅栏效应: 由于dft是只取k=0,1,2,.......N-1,只能取到离散值,如果频谱之间相隔较大的话也许会将一些中间的信息丢失掉,而用fft计算dft是不可避免的,解决的办法就是增加采样点数N。这样频谱间隔变小,丢失信息的概率减小。 另外,增加0可以更细致观察频域上的信号,但不会增加频谱分辨率。 这里有补零对分辨率的影响。 截断效应 截断效应又包括频谱泄漏和谱间干扰。 频谱泄露 :是由加窗函数引起的,同样是计算量的问题(用fft用dft必需要加窗函数),时域上的相乘,频域上卷积,引起信号的频谱失真,只有在很少的情况下,频谱泄露是不会发生的,大部分情况都会引起泄露。如x

余弦信号DFT频谱分析(继续)

邮差的信 提交于 2020-02-10 05:22:33
以前谈到序列的实际长度可以通过零填充方法加入,使得最终增加N添加表观分辨率。 但它并没有解决泄漏频率的问题。 根本原因在于泄漏窗口选择的频率。 由于矩形窗突然被切断,频谱旁瓣相对幅度过大,造成泄漏分量很。因此,与FIR路一样,我们想到了其它窗。 接上次的样例,矩形窗: ts = 0.01; n = 0:24; y = [sin(2*pi*20*n*ts),zeros(1,999)]; xk = abs(fft(y,1024)); stem(xk); 频谱如图: 我们换三角窗:yd = [y.*triang(25)',zeros(1,999)];注意先加权再补零吧(事实上不是非常确定的说)。 频谱例如以下: 汉明窗: 尽管主瓣宽度加宽了,但咱能够继续加大N啊,所以不是问题。关键是如今频谱不泄露。 版权声明:本文博客原创文章,博客,未经同意,不得转载。 来源: https://www.cnblogs.com/yxwkf/p/4739860.html

信号处理总结

[亡魂溺海] 提交于 2020-01-30 12:41:15
1.频谱泄漏 整周期截断是不发生频谱泄露的充分且必要条件 ! 非整周期截断是发生频谱泄露的充分且必要条件 ! 来源: CSDN 作者: CTO_TOC 链接: https://blog.csdn.net/koreyoshi_chm/article/details/104113576

频域信号处理

泪湿孤枕 提交于 2019-11-30 03:20:47
代码来源于 http://bigsec.net/b52/scipydoc/frequency_process.html 观察信号的频谱   数据通过FFT转换成频域信号,对频域信号进行分析,再通过IFFT转换成时域信号。 import numpy as np import pylab as pl import matplotlib as mpl mpl.rcParams['font.sans-serif'] = ['KaiTi'] mpl.rcParams['font.serif'] = ['KaiTi'] mpl.rcParams['axes.unicode_minus']=False sampling_rate = 8000 #取样频率 fft_size = 512 #fft长度 t = np.arange(0, 1.0, 1.0/sampling_rate) #假设取样频率为fs, 取波形中的N个数据进行FFT变换。那么这N点数据包含整数个周期的波形时,FFT所计算的结果是精确的。于是能精确计算的波形的周期是: n*fs/N。 #对于8kHz取样,512点FFT来说,8000/512.0 = 15.625Hz,前面的156.25Hz和234.375Hz正好是其10倍和15倍。 #选取整数倍的数据,查看当fft后的数据在频谱中形成整数周期时的情况。 x = np.sin(2