数字信号处理matlab仿真.docx

上传人:b****2 文档编号:1622461 上传时间:2022-10-23 格式:DOCX 页数:10 大小:19.68KB
下载 相关 举报
数字信号处理matlab仿真.docx_第1页
第1页 / 共10页
数字信号处理matlab仿真.docx_第2页
第2页 / 共10页
数字信号处理matlab仿真.docx_第3页
第3页 / 共10页
数字信号处理matlab仿真.docx_第4页
第4页 / 共10页
数字信号处理matlab仿真.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

数字信号处理matlab仿真.docx

《数字信号处理matlab仿真.docx》由会员分享,可在线阅读,更多相关《数字信号处理matlab仿真.docx(10页珍藏版)》请在冰豆网上搜索。

数字信号处理matlab仿真.docx

数字信号处理matlab仿真

数字信号处理matlab仿真

数字信号处理作业设计报告

一、目的

1.增进对Matlab的认识,加深对数字信号处理理论方面的理解。

2.掌握数字信号处理中IIR和FIR滤波器的设计。

3.了解和掌握用Matlab实现IIR和FIR滤波器的设计方法、课程,为以后的设计打下良好基础。

二、设计内容

1.IIR(无限脉冲响应)模拟滤波器设计

(1)设计题目:

椭圆型模拟带通IIR滤波器

技术指标:

通带下截止频率fpl=2kHz,上截止频率fph=5kHz,通带内最大衰减ap=1dB;阻带下截止频率fsl=1.5kHz上截止频率fsh=5.5kHz,阻带最小衰减as=40dB.设计原理:

①确定模拟带通滤波器的技术指标,并对边界频率做归一化处理;

②确定归一化低通技术要求;

③设计归一化低通G(p);

④将低通G(p)转换成带通H(s)。

Matlab原程序如下:

clearall;

fp=[2000,5000];

ap=1;

fs=[1500,5500];

as=40;

wp=2*pi*fp;

ws=2*pi*fs;%归一化的截止频率

[N,wn]=ellipord(wp,ws,ap,as,'s');%求椭圆形滤波器的最小阶数和归一化截止频率

[B,A]=ellip(N,ap,as,wn,'s');%求传递函数的分子分母系数

[H,w]=freqs(B,A);%频率响应函数

f=0:

8000;

1

w=2*pi*f;

H=freqs(B,A,w);%求系统在指定频率点w上的频响H

plot(f,20*log10(abs(H)));%绘图显示

axis([07000-800])

仿真波形图如下:

(2)设计题目:

巴特沃斯低通模拟滤波器

技术指标:

通带截止频率fp=5kHz,通带内最大衰减ap=2dB;阻带截止频率fs=12kHz,

阻带最小衰减as=30dB。

设计原理:

①确定模拟带通滤波器的技术指标,并对边界频率做归一化处理;②确定归一化低通技术要求并求出归一化低通原型系统函数Ga(p);

③将Ga(p)去归一化。

Matlab原程序如下:

clearall;

wp=2*pi*5000;ws=2*pi*12000;Rp=2;As=30;%设置滤波器参数

[N,wc]=buttord(wp,ws,Rp,As,'s');%计算滤波器阶数N和3dB截止频率wc2

[B,A]=butter(N,wc,'s');%计算滤波器系统函数分子分母多项式系数k=0:

511;fk=0:

14000/512:

14000;wk=2*pi*fk;

Hk=freqs(B,A,wk);

subplot(2,2,1);

plot(fk/1000,20*log10(abs(Hk)));gridon

xlabel('频率(kHz)');ylabel('幅度(dB)')

axis([0,14,-40,5])

仿真波形图如下:

2.IIR(无限脉冲响应)数字滤波器设计

(1)设计题目:

IIR数字带通滤波器设计

技术指标:

采用巴特沃斯滤波器,一个数字系统的抽样频率Fs=2000Hz,设计一个为此系统使用的带通数字滤波器Hdbp(z)。

要求通带范围为300~400Hz,在带边频率处

的衰减不大于3dB;在200Hz以下和500Hz以上衰减不小于18dB。

设计原理:

对于数字带通滤波器的设计,通常所用方法为双线性变换。

可借助于模拟滤波器的频率变换设计一个所需类型的过渡模拟滤波器,再通过双线性变换将其转换成所需类型的数字滤波器。

Matlab原程序如下:

clearall;

fp=[300400];fs=[200500];

rp=3;rs=18;

3

Fs=2000;

wp=fp*2*pi/Fs;

ws=fs*2*pi/Fs;

%

%Firstlytofinishfrequencyprewarping;

wap=2*Fs*tan(wp./2);

was=2*Fs*tan(ws./2);

[n,wn]=buttord(wap,was,rp,rs,'s');

%Note:

's'!

[z,p,k]=buttap(n);

[bp,ap]=zp2tf(z,p,k);

%

bw=wap

(2)-wap

(1);

w0=sqrt(wap

(1)*wap

(2));

[bs,as]=lp2bp(bp,ap,w0,bw);

%

[h1,w1]=freqs(bp,ap);

figure

(1);

plot(w1,abs(h1));grid;

ylabel('lowpassG(p)')

%

w2=[0:

Fs/2-1]*2*pi;

h2=freqs(bs,as,w2);

%Note:

z=(2/Ts)(z-1)/(z+1);

[bz1,az1]=bilinear(bs,as,Fs);

[h3,w3]=freqz(bz1,az1,1000,Fs);

figure

(2);

plot(w2/2/pi,20*log10(abs(h2)),w3,20*log10(abs(h3)));grid;ylabel('BandpassAFandDF')

xlabel('Hz');

4

仿真波形图如下:

图①模拟低通原型图

图②模拟和数字带通滤波器的幅频响应

(2)设计题目:

基于Matlab函数直接设计切比雪夫Ⅰ型数字低通IIR滤波器技术指标:

通带截止频率fp为100HZ,阻带截止频率fs为200HZ,通带最大衰减ap为3dB,5

阻带最小衰减as为30dB,采样频率Fs为1000HZ.

设计原理:

Matlab工具箱中提供了直接设计数字滤波器的函数使设计更加简单。

切比雪夫Ⅰ型滤波器在通带是等波纹的,而在阻带是单调下降的,利用cheby1函数MATLAB语法可以直接设计;而切比雪夫Ⅰ型滤波器得阶次可以通过MATLAB中的cheb1ord函数确定。

Matlab原程序如下:

clearall;

fp=100;

ap=3;%通带衰减

fs=200;

as=30;%阻带衰减

Fs=1000;

[N,Wn]=cheb1ord(fp/(Fs/2),fs/(Fs/2),ap,as);%计算ChebyshevⅠ型滤波器的最小阶数和截止频率

[b,a]=cheby1(N,ap,Wn);

freqz(b,a,512,1000);%采用1000HZ的采样频率绘出显示滤波器的幅频和相频响应

仿真波形图如下:

6

3.FIR(有限脉冲响应)数字滤波器设计

(1)设计题目:

基于矩形窗和汉明窗的FIR滤波器设计

技术指标:

分别用矩形窗和汉明窗,设计一低通滤波器,令N=10,频率响应截止频率Hd(ejω)在0≤ω≤0.25π之间为1,在0.25π≤ω≤π之间为0。

设计原理:

要设计FIR滤波器,h(n)必然是有限长的,所以要用有限长的h(n)来逼近无限长的hd(n),最有效的方法是截断hd(n),即用一个有限长度的窗函数ω(n)

来截取hd(n),并将截短后的hd(n)移位,得h(n)?

?

(n?

N?

1N?

1)hd(n?

)22

由于ω(n)的长度为N,所以h(n)是因果的。

因此窗函数序列ω(n)的形状及长度的选择就很关键。

Matlab原程序如下:

clearall;

N=10;

b1=fir1(N,0.25,boxcar(N+1));%用矩形窗作为冲激响应的窗函数

b2=fir1(N,0.25,hamming(N+1));%用汉明窗作为冲激响应的窗函数

%

M=128;

h1=freqz(b1,1,M);

h2=freqz(b2,1,M);

%分别求两个滤波器的频率响应

t=0:

10

subplot(221)

stem(t,b2,'.');holdon;

plot(t,zeros(1,11));grid;

f=0:

0.5/M:

0.5-0.5/M;

M1=M/4;

fork=1:

M1

7

hd(k)=1;

hd(k+M1)=0;

hd(k+2*M1)=0;

hd(k+3*M1)=0;

end

subplot(222)

plot(f,abs(h1),'b-',f,abs(h2),'g-',f,hd,'-');grid;

仿真波形图如下:

(2)设计题目:

海明窗函数法FIR数字滤波器

技术指标:

通带截止频率为Wp=0.2π,通带内最大衰减为Ap=0.25dB;阻带截止频率为Ws=0.4π,阻带最小衰减为As=50dB。

设计原理:

根据窗函数最小阻带衰减的特性,只有海明窗和布莱克曼窗可提供大于50dB的衰减。

故选择海明窗,因为它提供较小的过渡带,其过渡带为6.6π/N,因此具有较小的阶数。

在MATLAB中利用ideal_lp函数,计算理想低通滤波器的单位脉冲响应hd(n)。

functionhd=ideal_lp(Wc,N);alpha=(N-1)/2;

n=0:

1:

N-1;m=n-alpha+eps;hd=sin(Wc*m)./(pi*m);

利用freqz_m函数计算绝对和相对的幅度响应。

function[db,mag,pha,w]=freqz_m(b,a);

[H,w]=freqz(b,a,1000,’whole');H=(H(1:

1:

501))';

8

w=(w(1:

1:

501))';mag=abs(H);db=20*log10((mag+eps)/max(mag));

pha=angle(H);以上两个函数应先分别保存在两个新建m文件中存放在Matlab软件工作路径下。

Matlab原程序如下:

clearall;

Wp=0.2*pi;

Ws=0.4*pi;%滤波器的边界频率

tr_width=Ws-Wp;%过渡带宽

N=ceil(6.6*pi/tr_width)+1%根据过度带宽等于海明窗函数主瓣宽度求得滤波器所用海明窗的最小长度

n=0:

1:

N-1;

wc=(Ws+Wp)/2;%截止频率在通带和阻带边界频率的中点

hd=ideal_lp(wc,N);%调用理想低通滤波器脉冲响应函数

w_ham=(hamming(N))';%采用海明窗

h=hd.*w_ham;%在时间域乘积对应于频率域的卷积,截取得到实际单位脉冲响应

[db,mag,pha,w]=freqz_m(h,[1]);%调用freqz_m函数计算实际滤波器绝对和相对的幅度响应

delta_w=2*pi/1000;

Ap=-(min(db(1:

1:

Wp/delta_w+1)));%实际通带最大衰减

As=-round(max(db(Ws/delta_w+1:

1:

501)));%实际最小阻带衰减

subplot(221);stem(n,hd);title('理想单位脉冲响应hd(n)')

subplot(222);stem(n,w_ham);title('海明窗

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

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1