怎么直接对信号加除矩形窗以外的窗?
在matlab里现在要想给信号加别的窗,只能先给信号加矩形窗,变成有限长序列后,再加hanning窗,但是这样似乎对处理的结果有很大的影响。我想知道有没有办法,使得信号直接加hanning窗?以前有个帖子也问过同样的问题,但是我看到的回答:w=hanning(256), P=abs(fft(w.*xn,256).^2/norm(w)^2
这个实际上也是加了两个窗吧?矩形和hanning?
[ 本帖最后由 zhlong 于 2007-8-14 22:35 编辑 ] 先加矩形窗,再加hanning窗(两窗长度一样)
和直接回hanning窗不是一样的吗? 一样吗?这个我不太确定啊?给信号加汉宁窗测得的误差应该比矩形窗要小才对啊,可是这样加窗后,矩形窗比汉宁窗的小,所以我就想是不是这样加窗不对 是一样的.
你是在什么情况下要小呢 这个汉宁窗测得的信号频率和幅值比矩形窗要接近实际值,这个是理论上验证了的,这个还分什么情况吗? N=1024;
fs=8000;
n=0:N-1;
t=n/fs;
x=10*sin(2*pi*820*t);
w=hanning(512);
w1=;
x=x.*w1';
y=abs(fft(x));
mag=2*abs(y(1:1:512))/N;
k=0:1:511;
f=k*fs/N;
stem(f,mag)
grid
这个程序加了汉宁窗测得的数值就比矩形窗的大啊 不是,刚才程序传错了是这个,不好意思啊
N=512;
fs=8000;
n=0:N-1;
t=n/fs;
x=10*sin(2*pi*820*t);
w=hanning(512);
x=x.*w';
y=abs(fft(x));
mag=2*abs(y(1:1:256))/N;
k=0:1:255;
f=k*fs/N;
stem(f,mag)
grid 是这样的,加汉宁窗主要是减小频率间的干涉问题.加汉宁窗本身会使幅值减小,因此要求得频率处的幅值应该在直接FFT的结果上要乘上幅值恢复系数.如果不是整周期采样的话则是按汉宁窗做频谱校正. 你还是不太明白我的意思,我知道加窗在非整周期的情况下,会出现误差。我的意思是在这种情况下,理论上应该是hanning窗的误差比矩形窗小,可是按我传的程序来看,是hanning窗的误差大啊 上面提到了,加汉宁窗主要是减小频率间的干涉问题.比较误差你要先把加hanning窗的幅值乘上幅值恢复系数(hanning窗为2)后再比较.如果你要看加hanning窗的优点的话,你的信号可设成两个频率很近的正弦信号的和,或者设成一个很低的频率. 恩,谢谢你啊 可是为什么汉宁窗的就要恢复幅值系数?矩形窗不用呢?那是不是所有的窗,除了矩形窗,全部都要恢复系数? hanning窗是一个钟形窗,从能量上来看加hanning窗能量变小了(实际上能量恢复系数是8/3).
加其它窗也要相应的考虑恢复系数. 你之前说,加汉宁窗主要是减小频率间的干涉问题,信号可设成两个频率很近的正弦信号的和,这个很近的前提也是要大于频率分辨率吧? 原帖由 happytaotao 于 2006-9-2 10:18 发表
你之前说,加汉宁窗主要是减小频率间的干涉问题,信号可设成两个频率很近的正弦信号的和,这个很近的前提也是要大于频率分辨率吧?
得大于两个频率分辨率,hanning窗的主瓣的一半是两个频率分辨率,旁瓣衰减很快