数字信号处理matlab仿真Word文档下载推荐.docx
《数字信号处理matlab仿真Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《数字信号处理matlab仿真Word文档下载推荐.docx(10页珍藏版)》请在冰豆网上搜索。
ws=2*pi*fs;
%归一化的截止频率
[N,wn]=ellipord(wp,ws,ap,as,&
#39;
s&
);
%求椭圆形滤波器的最小阶数和归一化截止频率
[B,A]=ellip(N,ap,as,wn,&
%求传递函数的分子分母系数
[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)去归一化。
wp=2*pi*5000;
ws=2*pi*12000;
Rp=2;
As=30;
%设置滤波器参数
[N,wc]=buttord(wp,ws,Rp,As,&
%计算滤波器阶数N和3dB截止频率wc2
[B,A]=butter(N,wc,&
%计算滤波器系统函数分子分母多项式系数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(无限脉冲响应)数字滤波器设计
IIR数字带通滤波器设计
采用巴特沃斯滤波器,一个数字系统的抽样频率Fs=2000Hz,设计一个为此系统使用的带通数字滤波器Hdbp(z)。
要求通带范围为300~400Hz,在带边频率处
的衰减不大于3dB;
在200Hz以下和500Hz以上衰减不小于18dB。
对于数字带通滤波器的设计,通常所用方法为双线性变换。
可借助于模拟滤波器的频率变换设计一个所需类型的过渡模拟滤波器,再通过双线性变换将其转换成所需类型的数字滤波器。
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,&
%Note:
&
!
[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);
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)));
BandpassAFandDF&
Hz&
4
图①模拟低通原型图
图②模拟和数字带通滤波器的幅频响应
基于Matlab函数直接设计切比雪夫Ⅰ型数字低通IIR滤波器技术指标:
通带截止频率fp为100HZ,阻带截止频率fs为200HZ,通带最大衰减ap为3dB,5
阻带最小衰减as为30dB,采样频率Fs为1000HZ.
Matlab工具箱中提供了直接设计数字滤波器的函数使设计更加简单。
切比雪夫Ⅰ型滤波器在通带是等波纹的,而在阻带是单调下降的,利用cheby1函数MATLAB语法可以直接设计;
而切比雪夫Ⅰ型滤波器得阶次可以通过MATLAB中的cheb1ord函数确定。
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(有限脉冲响应)数字滤波器设计
基于矩形窗和汉明窗的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)的形状及长度的选择就很关键。
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));
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,&
-&
海明窗函数法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:
501))&
;
8
w=(w(1:
mag=abs(H);
db=20*log10((mag+eps)/max(mag));
pha=angle(H);
以上两个函数应先分别保存在两个新建m文件中存放在Matlab软件工作路径下。
Wp=0.2*pi;
Ws=0.4*pi;
%滤波器的边界频率
tr_width=Ws-Wp;
%过渡带宽
N=ceil(6.6*pi/tr_width)+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:
Wp/delta_w+1)));
%实际通带最大衰减
As=-round(max(db(Ws/delta_w+1:
501)));
%实际最小阻带衰减
subplot(221);
stem(n,hd);
title(&
理想单位脉冲响应hd(n)&
subplot(222);
stem(n,w_ham);
海明窗