实验三 窗函数的特性分析.docx
《实验三 窗函数的特性分析.docx》由会员分享,可在线阅读,更多相关《实验三 窗函数的特性分析.docx(13页珍藏版)》请在冰豆网上搜索。
实验三窗函数的特性分析
数字信号处理及实验实验报告
实验题目
窗函数的特性分析
姓名
MYT
组别
班级
学号
【实验目的】
分析各种窗函数的时域和频率特性,灵活运用窗函数分析信号频谱和设计FIR数字滤波器。
【实验原理】
在确定信号谱分析、随机信号功率谱估计以及FIR数字滤波器设计中,窗函数的选择对频谱分析和滤波器设计都起着重要的作用。
在确定信号谱分析和随机信号功率谱估计中,截短无穷长的序列会造成频率泄漏,影响频谱分析的精度和质量。
合理选取窗函数的类型,可以改善泄漏现象。
在FIR数字滤波器设计中,截短无穷长的系统单位脉冲序列会造成FIR滤波器的幅度特性产生波动,且出现过渡带。
【实验结果与数据处理】
1、分析并绘出常用窗函数的时域特性波形。
程序如下:
clc,clear,closeall
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布莱克曼窗
图5Bartlett窗
图6凯泽窗
2、研究凯泽窗(Kaiser)的参数选择对其时域和频域的影响。
(1)固定beta=4,分别取N=20,60,110。
clc,clear,closeall
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,closeall
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,closeall
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,closeall
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,closeall
beat=20;
N=input('TypeinN=');
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
【实验结论与分析】
1、什么是信号截短?
什么是吉布斯(Gibbs)现象?
增加长度N能消除吉布斯现象吗?
应如何解决?
答:
信号截短:
指的是从一个无限长或是很长的信号中取出一段。
吉布斯现象:
将具有不连续点的周期函数(如矩形脉冲)进行傅立叶级数展开后,选取有限项进行合成。
当选取的项数越多,在所合成的波形中出现的峰起越靠近原信号的不连续点。
当选取的项数很大时,该峰起值趋于一个常数,大约等于总跳变值的9%。
这种现象称为吉布斯现象。
增加N不能消除吉布斯现象,只能让跳变值越接近9%应该减少抽样间距。
2、怎样选择凯塞窗(Kaiser)的参数?
答:
一般,N与beta的值越大,信号失真越少,但是beta和N的值得增大会导致系统设计的复杂也会带来运算的增多,所以,在选择参数之前,应首先确定自己要设计的滤波器的参数要求是什么,如ws,wp,As,Ap,之后再根据这些要求求出beta和N的值,之后适当增加两者的值即可。
3、在信号谱分析中,如何合理地选择窗函数?
答:
如果在测试中可以保证不会有泄露的发生,则不需要用任何的窗函数;如果测试信号有多个频率分量,频谱表现的十分复杂,且测试的目的更多关注频率点而非能量的大小。
在这种情况下,需要选择一个主瓣够窄的窗函数。