数字信号处理实验46Word文档下载推荐.docx
《数字信号处理实验46Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《数字信号处理实验46Word文档下载推荐.docx(23页珍藏版)》请在冰豆网上搜索。
2.阅读扩展练习中的实例,学习频率分析法在MATLAB中的实现;
3.编程实现系统参数输入,绘出幅度频率响应和相位响应曲线和零、极点分布图。
四、实验内容
求系统
的零、极点和幅度频率响应和相位响应。
解析:
【代码】
num=[0.05280.07970.12950.12950.7970.0528];
den=[1-1.81072.4947-1.88010.9537-0.2336];
[z,p,k]=tf2zp(num,den);
disp('
零点'
);
disp(z);
极点'
disp(p);
增益系数'
disp(k);
figure
(1)
zplane(num,den)
figure
(2)
freqz(num,den,128)
【图形】
【结果】
零点
-1.5870+1.4470i
-1.5870-1.4470i
0.8657+1.5779i
0.8657-1.5779i
-0.0669+0.0000i
极点
0.2788+0.8973i
0.2788-0.8973i
0.3811+0.6274i
0.3811-0.6274i
0.4910+0.0000i
增益系数
0.0528
五、扩展练习
例1:
求下列直接型系统函数的零、极点,并将它转换成二阶节形式
解:
用MATLAB计算程序如下:
num=[1-0.1-0.3-0.3-0.2];
den=[10.10.20.20.5];
m=abs(p);
sos=zp2sos(z,p,k);
二阶节'
disp(real(sos));
输入到“num”和“den”的分别为分子和分母多项式的系数。
计算求得零、极点增益系数和二阶节的系数:
零点:
0.9615
-0.5730
-0.1443+0.5850i
-0.1443-0.5850i
极点:
0.5276+0.6997i
0.5276-0.6997i
-0.5776+0.5635i
-0.5776-0.5635i
增益系数:
1
二阶节:
1.0000-0.3885-0.55091.00001.155200.6511
1.00000.288500.363001.0000-1.05520.7679
系统函数的二阶节形式为:
极点图见图:
图系统函数的零、极点图
例2:
差分方程
所对应的系统的频率响应。
差分方程所对应的系统函数为:
用MATLAB计算的程序如下:
k=256;
num=[0.8-0.440.360.02];
den=[10.7-0.45-0.6];
w=0:
pi/k:
pi;
h=freqz(num,den,w);
subplot(2,2,1);
plot(w/pi,real(h));
grid
title('
实部'
)
xlabel('
\omega/\pi'
ylabel('
幅度'
subplot(2,2,2);
plot(w/pi,imag(h));
虚部'
Amplitude'
subplot(2,2,3);
plot(w/pi,abs(h));
幅度谱'
幅值'
subplot(2,2,4);
plot(w/pi,angle(h));
相位谱'
弧度'
)
图
实验5有限冲激响应数字滤波器设计
一、实验目的:
1、加深对数字滤波器的常用指标理解。
2、学习数字滤波器的设计方法。
二、实验原理:
低通滤波器的常用指标:
(1)通带边缘频率;
(2)阻带边缘频率;
(3)通带起伏;
(4)通带峰值起伏,
(5)阻带起伏,最小阻带衰减。
1.在MATLAB中,熟悉函数fir1、kaiserord、remezord、remez的使用;
B=fir1(n,Wn,'
high'
'
noscale'
)设计滤波器;
[n,Wn,beta,ftype]=kaiserord(f,a,dev)估计滤波器阶数;
[n,fo,ao,w]=remezord(f,a,dev,fs)计算等波纹滤波器阶数n和加权函数w(ω);
B=remez(n,f,a)进行等波纹滤波器的设计。
2.阅读扩展练习中的实例,学习FIR滤波器的设计方法及其在MATLAB中的实现;
3.给出FIR数字滤波器的冲激响应,绘出它们的幅度和相位频响曲线,讨论它们各自的实现形式和特点。
数字滤波器有IIR和FIR两种类型,它们的特点和设计方法不同。
四、实验内容:
利用MATLAB编程,分别用窗函数法和等波纹滤波器法设计两种FIR数字滤波器,指标要求如下:
通带边缘频率:
,通带峰值起伏:
。
阻带边缘频率:
,最小阻带衰减:
●用窗函数法设计:
【解析】
调用函数[n,wn,bta,ftype]=kaiserord(f,a,dev,fs)
参数:
f=[0.3
0.45
0.65
0.8]为对应数字频率
a=[0
1
0]为由f指定的各个频带上的幅值向量,一般只有0和1表示;
和f长度关系为(2*a的长度)—2=(f的长度)
devs=[0.01
0.1087
0.01]用于指定各个频带输出滤波器的频率响应与其期望幅值之间的最大输出误差或偏差,长度与a相等,计算公式:
阻带衰减误差=,通带波动衰减误差=
fs缺省值为2HZ
[n,wn,bta,ftype]=kaiserord([0.30.450.650.8],[010],[0.010.10870.01]);
%用kaiserord函数估计出滤波器阶数n和beta参数
h1=fir1(n,wn,ftype,kaiser(n+1,bta),'
[hh1,w1]=freqz(h1,1,256);
subplot(2,1,1)
plot(w1/pi,20*log10(abs(hh1)))
归一化频率w'
幅度/db'
subplot(2,1,2)
plot(w1/pi,angle(hh1))
相位/rad'
●用等波纹法设计:
调用函数[n,fpts,mag,wt]=remezord(f,a,dev)
0.8]
0]
dev=[0.01
0.01]
其含义同函数[n,wn,bta,ftype]=kaiserord(f,a,dev,fs)中的参数相同。
[n,fpts,mag,wt]=remezord([0.30.450.650.8],[010],[0.010.10870.01]);
%用remezord函数估算出remez函数要用到的阶n、归一化频带边缘矢量fpts、频带内幅值响应矢量mag及加权矢量w,使remez函数设计出的滤波器满足f、a及dev指定的性能要求
h2=remez(n,fpts,mag,wt);
%设计出等波纹滤波器
[hh2,w2]=freqz(h2,1,256);
plot(w2/pi,20*log10(abs(hh2)))
plot(w2/pi,angle(hh2))
用凯塞窗设计一FIR低通滤波器,通带边界频率,阻带边界频率,阻带衰减不小于50dB。
首先由过渡带宽和阻带衰减来决定凯塞窗的N和
上图给出了以上设计的频率特性,(a)为N=30直接截取的频率特性(b)为凯塞窗设计的频率特性。
凯塞窗设计对应的MATLAB程序为:
wn=kaiser(30,4.55);
nn=[0:
1:
29];
alfa=(30-1)/2;
hd=sin(0.4*pi*(nn-alfa))./(pi*(nn-alfa));
h=hd.*wn'
;
[h1,w1]=freqz(h,1);
或者:
b=fir1(29,0.4,kaiser(30,4.55));
[h1,w1]=freqz(b,1);
plot(w1/pi,20*log10(abs(h1)));
axis([0,1,-80,10]);
grid;
归一化频率/p'
幅度/dB'
还可以使用[n,Wn,beta,ftype]=kaiserord(f,a,dev)函数来估计滤波器阶数等,得到凯塞窗滤波器:
fcuts=[0.30.5];
%归一化频率omega/pi
mags=[10];
devs=[0.0510^(-2.5)];
[n,Wn,beta,ftype]=kaiserord(fcuts,mags,devs);
%计算出凯塞窗N,beta的值
hh=fir1(n,Wn,ftype,kaiser(n+1,beta),'
freqz(hh);
实际中,一般调用MATLAB信号处理工具箱函数remezord来计算等波纹滤波器阶数N和加权函数W(ω),调用函数remez可进行等波纹滤波器的设计,直接求出滤波器系数。
函数remezord中的数组fedge为通带和阻带边界
例2:
利用雷米兹交替算法设计等波纹滤波器,设计一个线性相位低通FIR数字滤波器,其指标为:
通带边界频率fc=800Hz,阻带边界fr=1000Hz,通带波动阻带最小衰减At=40dB,采样频率fs=4000Hz。
在MATLAB中可以用remezord和remez两个函数设计,其结果如图2,MATL