数字信号处理project2资料.doc

上传人:聆听****声音 文档编号:922806 上传时间:2023-04-30 格式:DOC 页数:13 大小:508.57KB
下载 相关 举报
数字信号处理project2资料.doc_第1页
第1页 / 共13页
数字信号处理project2资料.doc_第2页
第2页 / 共13页
数字信号处理project2资料.doc_第3页
第3页 / 共13页
数字信号处理project2资料.doc_第4页
第4页 / 共13页
数字信号处理project2资料.doc_第5页
第5页 / 共13页
数字信号处理project2资料.doc_第6页
第6页 / 共13页
数字信号处理project2资料.doc_第7页
第7页 / 共13页
数字信号处理project2资料.doc_第8页
第8页 / 共13页
数字信号处理project2资料.doc_第9页
第9页 / 共13页
数字信号处理project2资料.doc_第10页
第10页 / 共13页
数字信号处理project2资料.doc_第11页
第11页 / 共13页
数字信号处理project2资料.doc_第12页
第12页 / 共13页
数字信号处理project2资料.doc_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

数字信号处理project2资料.doc

《数字信号处理project2资料.doc》由会员分享,可在线阅读,更多相关《数字信号处理project2资料.doc(13页珍藏版)》请在冰点文库上搜索。

数字信号处理project2资料.doc

数字信号处理

Project2

1.实验题目

Designalinear-phaseFIRlowpassfilterusingthewindowdesigntechnique.

Thespecificationsaregivenasfollows:

stopbandedge:

5rad/sec

passbandedge:

3rad/sec

maximumpassbandattenuation:

0.3dB

minimumstopbandbandattenuation:

40dB

samplingfrequency:

15rad/sec

(a).Useeachofthefollowingwindowsforthedesign:

Hamming,Hann,Blackman,andKaiser.Showtheidealimpulseresponse,theactualimpulseresponse,andplotthegainresponseofthedesignedfiltersforeachcase.Givethemaindesignsteps.Commentonyourresults.Donotusethefunctionfir1ofMatlab.

(b).Repeat(a)exceptfortheidealimpulseresponse,byusingthefunctionfir1ofMatlab.Compareresultsof(a)withthoseof(b).

2.实验设计

(a)题:

1.确定通带截止频率

  由于题中给定的频率为实际频率,所以先对给定频率进行归一化。

通带的截止频率为:

2.确定不同窗下的长度M,N

归一化的过渡带宽为

对于Hann、Hamming、Blackman窗用下面的函数计算M,N。

c通过查表得,分别为3.11,3.32,5.56。

对于Kaiser窗,M、N用下面的公式计算,其中为最小阻带衰减为:

40dB。

3.计算理想低通的脉冲响应

4.使用窗函数产生窗系数win

Hamming:

, 

Hann:

, 

Blackman:

, 

Kaiser:

因为40<50,所以,

, 

5.对理想低通滤波器的脉冲响应加窗

6.画出频谱图

(b)题:

将(a)中计算得到的窗函数win,直接带入matlab自带的函数fir1,即可产生时域的加窗低通滤波的冲激响应:

filter_t=fir1(N-1,wc/pi,win);

3.实验结果与分析

(a)题:

Hamming:

Hann:

Blackman:

Kaiser:

分析:

图中标出了。

窗的类型

最大通带衰减(dB)

最小阻带衰减(dB)

Hamming

-0.006

-73.1

Hann

-0.036

-50.58

Blackman

-0.002

-76.3

Kaiser

-0.176

-36.34

代码运行结果:

  

由此可以看出,Kaiser窗比较接近指标,同时其阶数(N=17)也是最少的。

但就衰减性能而言,其余三个的最小阻带衰减(-73.1dB,-50.58dB,-76.3dB)比Kaiser的-36.34dB要好。

Hamming窗阻带波纹较大,Blackman窗阻带衰减较好但波纹较密,Hann窗处于二者之间,Kaiser窗较稳定,同时波纹较大。

因为Hamming窗阻带衰减较好,阶数不算太大,阻带波纹较大,所以可以用来设计要求不高的FIR滤波器;因为Blackman阻带衰减较好,且随着频率的增加,波纹衰减增强,但因为阶数比其他要大,所以可以用来设计要求较高且较少考虑成本和复杂度的FIR滤波器;Kaiser窗有最低的阶数,所以可以用来设计较精确的阻带衰减滤波器。

(b)题:

Hamming:

Hann:

Blackman:

Kaiser:

代码运行结果:

分析:

各窗在两种方式下的图形相似,阶数相同,由此可见结果是一致的。

4.代码

(a)题:

wp=2*pi*3/15;

ws=2*pi*5/15;

alphap=0.3;%最大通带衰减

alphas=40;%最小阻带衰减

NUM_Hamming=1;

NUM_Hann=2;

NUM_Blackman=3;

NUM_Kaiser=4;

c=[3.32,3.11,5.56]*pi;%各个的窗函数的C值

wc=(ws+wp)/2;

delt_w=ws-wp;

freq_labels={'hamming窗低通滤波器增益响应','hann窗低通滤波器增益响应','Blackman窗低通滤波器增益响应','Kaiser窗低通滤波器增益响应'};

ht_labels={'hamming窗真实冲激响应','hann窗真实冲激响应','Blackman窗真实冲激响应','Kaiser窗真实冲激响应'};

hd_labels={'理想冲激响应','理想冲激响应','理想冲激响应','理想冲激响应'};

forfilter_kind=NUM_Hamming:

NUM_Kaiser,

switchfilter_kind,

caseNUM_Hamming,

M=ceil(c(filter_kind)/delt_w);%向上取整

N=2*M+1;

win=hamming(N);

display(['Hamming窗生成的冲激响应系数:

','(阶数N=',num2str(N),')']);

figure

caseNUM_Hann,

M=ceil(c(filter_kind)/delt_w);%向上取整

N=2*M+1;

win=hann(N);

display(['Hann窗生成的冲激响应系数:

','(阶数N=',num2str(N),')']);

figure

caseNUM_Blackman,

M=ceil(c(filter_kind)/delt_w);%向上取整

N=2*M+1;

win=blackman(N);

display(['Blackman窗生成的冲激响应系数:

','(阶数N=',num2str(N),')']);

figure

caseNUM_Kaiser,

N=ceil((alphas-8)/(delt_w*2.285));%向上取整

M=(N-1)/2;

b=0.5842*(alphas-21)^0.4+0.07886*(alphas-21);

win=kaiser(N,b);

display(['Kaiser窗生成的冲激响应系数:

','(阶数N=',num2str(N),')']);

figure

otherwisedisp('error');

end

n=-M:

M;

hd=sin(wc*n)./(pi*n);

hd(find(n==0))=wc*cos(wc*0)/pi;

%因为n=0时公式“sin(wc*n)./(pi*n)”中分母为0,计算结果为NaN,所以应该另用

%一种方法单独计算n=0时的hd值。

这里采用洛必达法则对原hd公式进行分子分母微分

%得hd=wc*cos(w%c*n)./pi,n->0;这样可以求得当n=0时原函数值。

(也可以将n加上eps

%—-系统精度,使n最大程度接近0而不等0)

ht=hd.*win';

display(['',num2str(ht)]);%打印显示冲激响应系数

%wvtool(ht);

subplot(1,3,1);

plot(n,hd,'.-')%画理想冲激响应系数图

title(hd_labels(filter_kind));

xlabel('n','FontSize',12);

ylabel('hd','fontsize',12);

gridon

subplot(1,3,2);

plot(n,ht,'.-')%画冲激响应系数图

title(ht_labels(filter_kind));

xlabel('n','FontSize',12);

ylabel('ht','fontsize',12);

gridon

[h,w]=freqz(ht,1,512);

W=w/pi;

H=20*log10(abs(h));

subplot(1,3,3);%画增益响应

holdon

title(freq_labels(filter_kind));

plot(W,H);

xlabel(['pi(omega/omega','s)']);

ylabel('增益(dB)');

gridon

%为了更直观的看到所设计FIR是否达到指标,可分别在图中标出相关点

%从而可以对不同窗函数进行对比。

标示过程如下:

dotp=round(mean(find(w>wp-0.1&w

dots=round(mean(find(w>ws-0.1&w

plot(W(dotp),H(dotp),'.r','MarkerSize',25);%对应处打上显目的红点

plot(W(dots),H(dots),'.r','MarkerSize',25);

text(W(dotp),H(dotp),['[','',num2str(round(W(dotp)*1000)/1000),...

',',num2str(round(H(dotp)*1000)/1000),'dB]'],'FontSize',15);%标示wp在频响图

%中的位置,从中可以%看来相应增益

text(W(dots),H(dots),['[','',num2str(round(W(dots)*100)/100),...

',',num2str(round(H(dots)*100)/100),'dB]'],'fontsize',15);%标示ws在频响图

%的位置

holdoff

end

(b)题:

wp=2*pi*3/15;

ws=2*pi*5/15;

alphap=0.3;%最大通带衰减

alphas=40;%最小阻带衰减

NUM_Hamming=1;

NUM_Hann=2;

NUM_Blackman=3;

NUM_Kaiser=4;

c=[3.32,3.11,5.56]*pi;%各个的窗函数的C值

wc=(ws+wp)/2;

delt_w=ws-wp;

freq_labels={'hamming窗低通滤波器增益响应','hann窗低通滤波器增益响应','Blackman窗低通滤波器增益响应','Kaiser窗低通滤波器增益响应'};

ht_labels={'hamming窗真实冲激响应','hann窗真实冲激响应','Blackman窗真实冲激响应','Kaiser窗真实冲激响应'};

forfilter_kind=NUM_Hamming:

NUM_Kaiser,

switchfilter_kind,

caseNUM_Hamming,

M=ceil(c(filter_kind)/delt_w);%向上取整

N=2*M+1;

win=hamming(N);

display(['hamming窗生成的冲激响应系数:

','(阶数N=',num2str(N),')']);

figure

caseNUM_Hann,

M=ceil(c(filter_kind)/delt_w);%向上取整

N=2*M+1;

win=hann(N);

display(['hann窗生成的冲激响应系数:

','(阶数N=',num2str(N),')']);

figure

caseNUM_Blackman,

M=ceil(c(filter_kind)/delt_w);%向上取整

N=2*M+1;

win=blackman(N);

display(['Blackman窗生成的冲激响应系数:

','(阶数N=',num2str(N),')']);

figure

caseNUM_Kaiser,

N=ceil((alphas-8)/(delt_w*2.285));%向上取整

M=(N-1)/2;

win=kaiser(N);

display(['Kaiser窗生成的冲激响应系数:

','(阶数N=',num2str(N),')']);

figure

otherwisedisp('error');

end

n=-M:

M;

filter_t=fir1(N-1,wc/pi,win);

subplot(1,2,1);

plot(n,filter_t,'.-')%画冲激响应系数图

title(ht_labels(filter_kind));

xlabel('n','FontSize',12);

ylabel('ht','fontsize',12);

[h,w]=freqz(filter_t,1,512);

W=w/pi;

H=20*log10(abs(h));

subplot(1,2,2);%画增益响应

holdon

title(freq_labels(filter_kind));

plot(W,H);

xlabel(['pi(omega/omega','s)']);

ylabel('增益(dB)');

%为了更直观的看到所设计FIR是否达到指标,可分别在图中标出相关点

%从而可以对不同窗函数进行对比。

标示过程如下:

dotp=round(mean(find(w>wp-0.1&w

dots=round(mean(find(w>ws-0.1&w

plot(W(dotp),H(dotp),'.r','MarkerSize',25);%对应处打上显目的红点

plot(W(dots),H(dots),'.r','MarkerSize',25);

text(W(dotp),H(dotp),['[','',num2str(round(W(dotp)*1000)/1000),...

',',num2str(round(H(dotp)*1000)/1000),'dB]'],'FontSize',15);%标示wp在频响图

%中的位置,从中可以%看来相应增益

text(W(dots),H(dots),['[','',num2str(round(W(dots)*100)/100),...

',',num2str(round(H(dots)*100)/100),'dB]'],'fontsize',15);%标示ws在频响图

%的位置

gridon

end

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 法律文书 > 起诉状

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2