信号谱分析——窗函数
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三、信号的谱分析
五、窗函数window
1.通过MATLAB的help功能,探究一下window可以支持的窗函数类型。
输入help window,举例出现的函数类型如下:
@bartlett - Bartlett window.
@barthannwin - Modified Bartlett-Hanning window.
@blackman - Blackman window.
@blackmanharris - Minimum 4-term Blackman-Harris window.
@bohmanwin - Bohman window.
@chebwin - Chebyshev window.
@flattopwin - Flat Top window.
@gausswin - Gaussian window.
@hamming - Hamming window.
@hann - Hann window.
@kaiser - Kaiser window.
@nuttallwin - Nuttall defined minimum 4-term Blackman-Harris window. @parzenwin - Parzen (de la Valle-Poussin) window.
@rectwin - Rectangular window.
@tukeywin - Tukey window.
@triang - Triangular window.
2.用window产生的各种窗函数(可以设N=128),观察各个窗函数的波形。N=128;
w=window(@bartlett,N);
plot(1:N,w)
20
40
60
80
100
120
140
00.10.20.30.40.50.60.70.80.9
1
w1=window(@barthannwin,N); plot(1:N,w1)
20
40
60
80
100
120
140
00.10.20.30.40.50.60.70.80.9
1barthannwin
w2=window(@blackman,N); plot(1:N,w2)
20
40
60
80
100
120
140
00.10.20.30.40.50.60.70.80.9
1
w3=window(@chebwin,N); plot(1:N,w3)
20
40
60
80
100
120
140
00.10.20.30.40.50.60.70.80.9
1chebwin
w4=window(@gausswin,N); plot(1:N,w4)
20
40
60
80
100
120
140
00.10.20.30.40.50.60.70.80.9
1
w5=window(@hamming,N); plot(1:N,w5)
20
40
60
80
100
120
140
00.10.20.30.40.50.60.70.80.9
1hamming
3.计算并分析各个窗函数的谱,观测其谱形状的特点。
用wvtool 函数观察各窗函数的幅频和相频特性:同上w~w5
N=128;
w=window(@bartlett,N);
w1=window(@barthannwin,N); w2=window(@blackman,N);
w3=window(@chebwin,N);
w4=window(@gausswin,N);
w5=window(@hamming,N); subplot(3,1,1);wvtool(w); ylabel('barlett');
subplot(3,1,2);wvtool(w1); ylabel('barthannwin'); subplot(3,1,3);wvtool(w2); ylabel('blackman');
subplot(6,1,4);wvtool(w3); ylabel('chebwin');
subplot(6,1,5);wvtool(w4); ylabel('gausswin');
subplot(6,1,6);wvtool(w5); ylabel('hamming');
六、关于谱分析的截断效应实验
1. N=20;
for i=1:N
t(i)=0.01*(i-N/2);
w(i)=(i-N/2)*200*pi/N;
x(i)=2*sin(4*pi*t(i))+5*cos(6*pi*t(i)); end
G=fft(g)/100;
plot(w(1:N),abs(G(1:N)));
xlabel('w');ylabel('G');title('N=20');
N=30;
for i=1:N
t(i)=0.01*(i-N/2);
w(i)=(i-N/2)*200*pi/N;
x(i)=2*sin(4*pi*t(i))+5*cos(6*pi*t(i)); end
X=fft(x)/100;
plot(w(1:N),abs(X(1:N)));
xlabel('w');ylabel('X');title('N=30');