chengkai 发表于 2007-6-12 18:25

关于MATLAB中的窗函数

我 的程序是
fr=linspace(8e9,12e9,801);
c=3e8;
k=4*pi*fr/c;
r1=3;r2=16;
g=-100*exp(-i*k*r1)-1*exp(-i*k*r2);
FN=1;   
%g=g.*( 0.54-0.46.*cos(2*pi*(0:800)/800));
figure;
plot(1/(80/3)/FN*(1:(800*FN+1)),20*log10(abs(ifft(g,800*FN+1))),'r');
运行后得到的图形要用矩形和海明窗进行处理,因为没怎么接触过MATLAB现在时间紧急没什么时间去重新学习了,希望哪个大侠给具体教下MATLAB中怎么用窗函数处理

[ 本帖最后由 eight 于 2007-6-12 19:06 编辑 ]

花如月 发表于 2007-6-12 20:12

clear;
t=0:.1:10;
y=sin(t);
figure(1)
plot(t,y);
y1=y.*hamming(length(t))';%海明窗
y2=y.*hanning(length(t))';%汉宁窗
y3=y.*kaiser(length(t))';%凯赛窗
y4=y.*boxcar(length(t))';%矩形窗
figure(2)
subplot(221),plot(t,y1),title('海明窗')
subplot(222),plot(t,y2),title('汉宁窗')
subplot(223),plot(t,y3),title('凯赛窗')
subplot(224),plot(t,y4),title('矩形窗')
窗函数就是这样用的,根据你的需要选择一个合适的窗函数然后对你的信号进行处理就行了

[ 本帖最后由 花如月 于 2007-6-12 20:14 编辑 ]

eight 发表于 2007-6-12 20:15

回复 #2 花如月 的帖子

我的matlab版本中对应的函数分别是:hamming, hann,kaiser,rectwin

花如月 发表于 2007-6-12 20:34

回复 #3 eight 的帖子

书上提到8个窗函数除了用到的4个还有4个:bartlett(三角窗)triang(三角窗)blackman(布莱克曼窗)chebwin(切比雪夫窗)。2个三角窗没本质区别,triang给出的窗函数在两端的数据不为零,而bartlett窗函数的两端数据则为零。

参考资料:数字信号处理p351   胡广书清华大学出版社

以上函数我都试过了,都可以用至于你说的hann和rectwin。在我版本里也可以用:
>> hann(4)

ans =

         0
    0.7500
    0.7500
         0

>> hanning(4)

ans =

    0.3455
    0.9045
    0.9045
    0.3455

>> rectwin(4)

ans =

   1
   1
   1
   1
看来2个矩形窗结果一样,而hann窗要比hanning窗衰减快些。窗口小是比较明显,大时基本是一样的(N=100是基本看不出什么区别的)

[ 本帖最后由 花如月 于 2007-6-12 20:48 编辑 ]

eight 发表于 2007-6-12 20:53

不同版本可以有些差异吧,反正我这里没有 boxcar 、hanning 两个命令

花如月 发表于 2007-6-12 20:58

回复 #5 eight 的帖子

嗯,我的版本是7.0.4谢谢8兄的鼓励,我以后会更加努力的。

superthoery 发表于 2008-12-11 21:13

谢谢,看了受益匪浅1

Triste 发表于 2017-1-3 12:46

花如月 发表于 2007-6-12 20:12
clear;
t=0:.1:10;
y=sin(t);


多谢分享
页: [1]
查看完整版本: 关于MATLAB中的窗函数