Oboyer 发表于 2012-3-2 15:46

全相位数据预处理为什么要用窗函数对数据段进行加权呢

如果不用任何窗函数,这样的程序能不能行得通呢:
N=4096;
t=-N+1:N-1;
Fs=4096;fm1=8;fm2=4;fm3=6;
y=cos(2*pi*fm1/Fs*t)+cos(2*pi*fm2/Fs*t)+cos(2*pi*fm3/Fs*t);
y2 = y(1:2*N-1);%取2N-1个数据为apFFT输入数据
y22=y2(N:end)+;%构成长N的FFT输入数据
y2_fft = fft(y22);
a2 = abs(y2_fft);%apFFT振幅谱

我试了一下,貌似加不加矩形窗的效果好像都差不多,求大虾指点

zhwang554 发表于 2012-3-3 19:56

本帖最后由 zhwang554 于 2012-3-4 00:14 编辑

回复 1 # Oboyer 的帖子


你画出apfft的对数振幅谱, 就可见加卷积窗和不加权泄漏效果不一样。
这个问题和另一个问题相同, 有人对全相位2N-1个数椐加一股非卷积窗, 认为不论振幅谱(泄漏比fft改善了)和相位谱(在峰值附近仍有水平相位特性)效果还可以。apfft必加卷积窗,apfft比fft的优势正在於fft不能加线性卷积窗, fft加线性卷积窗,泄漏小了, 但主辨宽度加宽了, 且线性卷积窗长为奇数, 不能快速远算。apfft加卷积窗其插值公式才有平方关系,泄漏效果最好,主辨宽度变窄最佳, 且N可为偶数,仍有快速远算。加卷积窗只在硬件实现时麻烦些,但值得。

Oboyer 发表于 2012-3-5 21:36

回复 2 # zhwang554 的帖子

谢谢老师!
我看了数据预处理的框图,就是把2*N-1个数据点乘卷积窗加权后,以中心样本点为对称点,左边加到右边,就完成了数据与处理的过程,但在程序里:
                              win=hanning(N)';
                              winn = conv(win,win);%apFFT须要卷积窗
                              这两步不就达到目的了么,为什么还要进行“窗归一”呢?
                              win2 = winn/sum(winn);%窗归1(这一步有什么必要性呢)

zhwang554 发表于 2012-3-6 03:11

本帖最后由 zhwang554 于 2012-3-6 11:19 编辑

回复 3 # Oboyer 的帖子

信号加权时,为了使信号总值不变, 希所有加权系数之和为1。
现在加权的是卷积窗各项系数, 除以所有卷积窗系数之和,使所有加权系数之和为1, 所以称“窗归一” 。

线性卷积有个性质, 卷积窗各项系数之和等於窗各项系数之和的平方。
如N=4 三角窗
其卷积为
卷积窗各项系数之和=1+ 4 +8 +10+ 8 +4 +1=36
三角窗各项系数之和=1+2+2+1=6, 其平方正好是卷积窗各项系数之和。
所以”窗归一”也可除以sum(win)^2。
所以用线性卷积加权一维信号组成的数据组(全相位数据组)再合适不过, 它反映一维信号组的平方性质, 二维性质。当然 线性巻积定理(二个连续信号线性卷枳的fourier変换频谱等於二个单一信号fourier変换频谱的乘积)更反映这个平方性质。apfft插值公式的平方性质正由於用了卷积窗。

chunmu126 发表于 2012-6-3 00:00

终于知道为什么要归一化了,谢谢老师的讲解,谢谢楼主的提问!
页: [1]
查看完整版本: 全相位数据预处理为什么要用窗函数对数据段进行加权呢