数字信号处理实验报告5.docx
《数字信号处理实验报告5.docx》由会员分享,可在线阅读,更多相关《数字信号处理实验报告5.docx(21页珍藏版)》请在冰豆网上搜索。
数字信号处理实验报告5
实验五谱分析
实验要求:
研究不同类型的窗函数,研究一些不停地方法来测试窗的性能;专注于有关窄带信号的几个不同的情形,要求合租讨论,单独实验,2学时。
一、实验原理
信号是无限长的,而在进行信号处理时只能采用有限长信号,所以需要将信号“截断”。
在信号处理中,“截断”被看成是用一个有限长的“窗口”看无限长的信号,或者从分析的角度是无限长的信号x(t)乘以有限长的窗函数w(t),由傅里叶变换性质可知
x(t)w(t)←→[1/(2*pi)]*X(jw)*W(jw)
如果x(t)是频宽有限信号,而w(t)是频宽无限函数,截断后的信号也必是频宽无限信号,从而产生所谓的频谱泄露。
频谱泄露是不可避免的,但要尽量减小,因此设计了不同的窗函数满足不同用途的要求。
从能量的角度,频谱泄露也是能量泄露,因为加窗后,使原来的信号集中在窄频带内的能量分散到无限的频宽范围。
实验内容:
1、用matlab编程绘制窗函数的形状
2、用matlab编程绘制各窗函数的幅频响应
3、绘制矩形窗的频率响应,窗长分别为:
N=10,N=20,N=50,N=100
4、已知周期信号x(t)=0.75+3.4*cos(2*pi*f*t)+2.7*cos(4*pi*f*t)+1.5*sin(3.5*pi*f*t)+2.5*sin(7*pi*f*t),其中f=25/16Hz,若截断时间长度分别为信号周期的0.9和1.1倍,试绘制和比较采用下面窗函数提取的x(t)的频谱。
(1)矩形窗;
(2)汉宁窗;(3)汉明窗;(4)巴特利特窗(5)布莱克曼窗;(6)triang窗;(7)kaiser窗;(8)切比雪夫窗。
具体做法如下:
1、用matlab编程绘制窗函数的形状
2、用matlab编程绘制窗函数的幅频响应
(1)矩形窗
>>N=64;
w=boxcar(N);
n=[0:
N-1];
subplot(211);
stem(n,w),title('矩形窗形状');
xlabel('n'),ylabel('w(n)');
[H,W]=dtft(w,512);
subplot(212);
plot(W/2/pi,abs(H)),title('矩形窗幅度响应');
xlabel('f'),ylabel('|W(w)|')
(2)汉宁窗
>>N=64;
w=hanning(N);
n=[0:
N-1];
subplot(211);
stem(n,w),title('汉宁窗形状');
xlabel('n'),ylabel('w(n)');
[H,W]=dtft(w,512);
subplot(212);
plot(W/2/pi,abs(H)),title('汉宁窗幅度响应');
xlabel('f'),ylabel('|W(w)|')
(3)汉明窗
>>N=64;
w=hamming(N);
n=[0:
N-1];
subplot(211);
stem(n,w),title('汉明窗形状');
xlabel('n'),ylabel('w(n)');
[H,W]=dtft(w,512);
subplot(212);
plot(W/2/pi,abs(H)),title('汉明窗幅度响应');
xlabel('f'),ylabel('|W(w)|')
(4)巴特利特窗
>>N=64;
w=bartlett(N);
n=[0:
N-1];
subplot(211);
stem(n,w),title('巴特利特窗形状');
xlabel('n'),ylabel('w(n)');
[H,W]=dtft(w,512);
subplot(212);
plot(W/2/pi,abs(H)),title('巴特利特窗幅度响应');
xlabel('f'),ylabel('|W(w)|')
(5)布莱克曼窗
>>N=64;
w=blackman(N);
n=[0:
N-1];
subplot(211);
stem(n,w),title('布莱克曼窗形状');
xlabel('n'),ylabel('w(n)');
[H,W]=dtft(w,512);
subplot(212);
plot(W/2/pi,abs(H)),title('布莱克曼窗幅度响应');
xlabel('f'),ylabel('|W(w)|')
(6)triang窗
>>N=64;
w=triang(N);
n=[0:
N-1];
subplot(211);
stem(n,w),title('triang窗形状');
xlabel('n'),ylabel('w(n)');
[H,W]=dtft(w,512);
subplot(212);
plot(W/2/pi,abs(H)),title('triang窗幅度响应');
xlabel('f'),ylabel('|W(w)|')
(7)kaiser窗
>>N=64;
w=kaiser(N,12);
n=[0:
N-1];
subplot(211);
stem(n,w),title('kaiser窗形状');
xlabel('n'),ylabel('w(n)');
[H,W]=dtft(w,512);
subplot(212);
plot(W/2/pi,abs(H)),title('kaiser窗幅度响应');
xlabel('f'),ylabel('|W(w)|')
(8)chebwin窗
>>N=64;
w=chebwin(N,16);
n=[0:
N-1];
subplot(211);
stem(n,w),title('chebwin窗形状');
xlabel('n'),ylabel('w(n)');
[H,W]=dtft(w,512);
subplot(212);
plot(W/2/pi,abs(H)),title('chebwin窗幅度响应');
xlabel('f'),ylabel('|W(w)|')
>>N=64;
w=chebwin(N,32);
n=[0:
N-1];
subplot(211);
stem(n,w),title('chebwin窗形状');
xlabel('n'),ylabel('w(n)');
[H,W]=dtft(w,512);
subplot(212);
plot(W/2/pi,abs(H)),title('chebwin窗幅度响应');
xlabel('f'),ylabel('|W(w)|')
3、绘制矩形窗的频率响应,窗长分别为:
N=10,N=20,N=50,N=100
具体程序如下:
N=10:
>>clear
>>N=10;
w=boxcar(N);
n=[0:
N-1];
[H,W]=dtft(w,512);
plot(W/2/pi,abs(H)),title('矩形窗幅频响应');
xlabel('f'),ylabel('|W(w)|')
N=20:
N=50:
N=100:
4、已知周期信号x(t)=0.75+3.4*cos(2*pi*f*t)+2.7*cos(4*pi*f*t)+1.5*sin(3.5*pi*f*t)+2.5*sin(7*pi*f*t),其中f=25/16Hz,若截断时间长度分别为信号周期的0.9和1.1倍,试绘制和比较采用下面窗函数提取的x(t)的频谱。
具体程序如下:
之后的两个图依次是0.9倍与1.1倍的顺序。
(1)矩形窗
截取长度为信号周期的0.9倍时:
>>fs=10;
Tp=4;
f=25/16;
N=0.9*Tp*fs;
n=[0:
N-1];
w=boxcar(N);
x=0.75+3.4*cos(2*pi*f*n/fs)+2.7*cos(4*pi*f*n/fs)+1.5*sin(3.5*pi*f*n/fs)+2.5*sin(7*pi*f*n/fs);
y=w.*x';
[H,W]=dtft(y,1024);
plot(W/2/pi,abs(H))
截取长度为信号周期的1.1倍时:
>>fs=10;
Tp=4;
f=25/16;
N=1.1*Tp*fs;
n=[0:
N-1];
w=boxcar(N);
x=0.75+3.4*cos(2*pi*f*n/fs)+2.7*cos(4*pi*f*n/fs)+1.5*sin(3.5*pi*f*n/fs)+2.5*sin(7*pi*f*n/fs);
y=w.*x';
[H,W]=dtft(y,1024);
plot(W/2/pi,abs(H))
同理可得:
(2)汉宁窗w=hanning(N)
(3)汉明窗w=hamming(N)
(4)巴特利特窗w=bartlett(N)
(5)布莱克曼窗w=blackman(N)
(6)Triang窗w=triang(N)
(7)Kaiser窗w=kaiser(N,12)
(8)切比雪夫窗w=chebwin(N,16)
实验结果分析:
用于信号分析中的窗函数可根据不同要求选择窗函数,如主瓣宽度窄的函数具有较高的频率分辨率,而分析窄带,且具有较强的干扰噪声的信号,应选用旁瓣幅度小的窗函数,如汉宁窗函数等。
用于滤波的窗函数,一般要求窗函数主瓣宽度窄,以获得较好过渡带;旁瓣相对值尽可能小以增加通带段的平稳度和增大阻带的衰减。