当前位置:文档之家› 实验三窗函数的特性分析

实验三窗函数的特性分析

数字信号处理及实验实验报告
实验题目窗函数的特性分析
姓名MYT 组别班级学号
【实验目的】
分析各种窗函数的时域和频率特性,灵活运用窗函数分析信号频谱和设计FIR数字滤波器。

【实验原理】
在确定信号谱分析、随机信号功率谱估计以及FIR数字滤波器设计中,窗函数的选择对频谱分析和滤波器设计都起着重要的作用。

在确定信号谱分析和随机信号功率谱估计中,截短无穷长的序列会造成频率泄漏,影响频谱分析的精度和质量。

合理选取窗函数的类型,可以改善泄漏现象。

在FIR数字滤波器设计中,截短无穷长的系统单位脉冲序列会造成FIR滤波器的幅度特性产生波动,且出现过渡带。

【实验结果与数据处理】
1、分析并绘出常用窗函数的时域特性波形。

程序如下:
clc,clear,close all
N=50
figure(1)
W1=boxcar(N);
stem([0:N-1],W1);
figure(2)
W2=hanning(N);
stem([0:N-1],W2);
figure(3)
W3=hamming(N);
stem([0:N-1],W3);
figure(4)
W4=blackman(N);
stem([0:N-1],W4);
figure(5)
W5=bartlett(N);
stem([0:N-1],W5);
figure(6)
W6=kaiser(N,2*N);
stem([0:N-1],W6);
时域波形图如下:
图 1 矩形窗
图 2 汉宁窗
图 3 汉明窗
图 4 布莱克曼窗
图 5 Bartlett窗
图 6 凯泽窗
2、研究凯泽窗(Kaiser)的参数选择对其时域和频域的影响。

(1)固定beta=4,分别取N=20,60,110。

clc,clear,close all
N1=20;N2=60;N3=110;
beat=4;
figure(1)
subplot(3,2,[1,2])
W=kaiser(N1,beat);
stem([0:N1-1],W);
subplot(3,2,[3,4]);
Ww=kaiser(N2,beat);
stem([0:N2-1],Ww);
subplot(3,2,[5,6]);
WW=kaiser(N3,beat);
stem([0:N3-1],WW);
figure(2)
subplot(3,2,[1,2])
W1=fft(W,N1)
plot([0:N1-1],abs(fftshift(W1)))
subplot(3,2,[3,4]);
W2=fft(Ww,N2)
plot([0:N2-1],abs(fftshift(W2)))
subplot(3,2,[5,6]);
W3=fft(WW,N3)
plot([0:N3-1],abs(fftshift(W3)))
图7 凯泽窗频域图图8 凯泽窗时域图
(2)固定N=60,分别取beta=1,5,11。

clc,clear,close all
beat1=1;beat2=5;beat3=11;
N=60;
figure(1)
subplot(3,2,[1,2])
W=kaiser(N,beat1);
stem([0:N-1],W);
subplot(3,2,[3,4]);
Ww=kaiser(N,beat2);
stem([0:N-1],Ww);
subplot(3,2,[5,6]);
WW=kaiser(N,beat3);
stem([0:N-1],WW);
figure(2)
subplot(3,2,[1,2])
W1=fft(W,N)
plot([0:N-1],abs(fftshift(W1)))
subplot(3,2,[3,4]);
W2=fft(Ww,N)
plot([0:N-1],abs(fftshift(W2)))
subplot(3,2,[5,6]);
W3=fft(WW,N)
plot([0:N-1],abs(fftshift(W3)))
图9 凯泽窗时域图图10 凯泽窗频域图
3、某序列为x[k] = 0.5cos(11πk/20) + cos(9πk/20),使用fft函数分析其频谱。

(1)利用不同宽度N的矩形窗截短该序列,N分别为20,40,160,观察不
同长度N的窗对谱分析结果的影响。

clc,clear,close all
N1=20;N2=40;N3=160;
k1=0:N1;k2=0:N2;k3=0:N3;
X1=0.5.*cos((11*pi*k1)/20)+cos((9*pi*k1)/20)
X2=0.5.*cos((11*pi*k2)/20)+cos((9*pi*k2)/20)
X3=0.5.*cos((11*pi*k3)/20)+cos((9*pi*k3)/20)
figure(1)
subplot(3,2,[1,2])
W1=fft(X1,N1)
plot([0:N1-1],abs(fftshift(W1)))
subplot(3,2,[3,4]);
W2=fft(X2,N2)
plot([0:N2-1],abs(fftshift(W2)))
subplot(3,2,[5,6]);
W3=fft(X3,N3)
plot([0:N3-1],abs(fftshift(W3)))
figure(2)
subplot(3,2,[1,2])
W=abs(fftshift(W1))
stem([0:N1-1],W);
subplot(3,2,[3,4]);
Ww=abs(fftshift(W2))
stem([0:N2-1],Ww);
subplot(3,2,[5,6]);
WW=abs(fftshift(W3))
stem([0:N3-1],WW);
图11 矩形窗时域图图12 矩形窗频域图
(2)利用汉明窗重做(1)。

clc,clear,close all
N1=20;N2=40;N3=160;
k1=0:N1-1;k2=0:N2-1;k3=0:N3-1;
X1=0.5.*cos((11.*pi.*k1)./20)+cos((9.*pi.*k1)./20)
X2=0.5.*cos((11.*pi.*k2)./20)+cos((9.*pi.*k2)./20)
X3=0.5.*cos((11.*pi.*k3)./20)+cos((9.*pi.*k3)./20)
figure(1)
subplot(3,2,[1,2])
W=0.54-0.46*cos(2*pi*k1/(N1-1))
stem([0:N1-1],W);
subplot(3,2,[3,4]);
Ww=0.54-0.46*cos(2*pi*k2/(N2-1))
stem([0:N2-1],Ww);
subplot(3,2,[5,6]);
WW=0.54-0.46*cos(2*pi*k3/(N2-1))
stem([0:N3-1],WW);
figure(2)
subplot(3,2,[1,2])
W1=fft(W,N1)
plot([0:N1-1],abs(fftshift(W1)))
subplot(3,2,[3,4]);
W2=fft(Ww,N2)
plot([0:N2-1],abs(fftshift(W2)))
subplot(3,2,[5,6]);
W3=fft(WW,N3)
plot([0:N3-1],abs(fftshift(W3)))
图13 汉明窗频域图图14 汉明窗时域图
(3)利用凯泽窗重做(1)。

clc,clear,close all
beat=20;
N=input('Type in N= ');
k=0:N-1; beta=11;
U=kaiser(N,beta);
h=U';
w=(0.5*cos(11*pi/20*k)+cos(9*pi/20*k)).*h; Y=fft(w,256); subplot(2,1,1);
stem(k,w);
subplot(2,1,2);
Y0=abs(fftshift(Y));
plot([-128:127],Y0);
键盘输入 N = 20
N = 40
N = 160
图15 凯泽窗N = 20
图16 凯泽窗N = 40
图17 凯泽窗N = 160。

相关主题