信号分析与处理实验报告2(完成)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

合肥工业大学电气与自动化工程学院 实验报告

专业 班级 学号 姓名 日期 指导教师 共 页 第 页

实验二 数字滤波器设计

实验报告要求:

1、实验内容为实验指导书实验三第2题、实验四第1题;

2、实验报告包括四部分:实验原理、实验内容、实验程序、结果分析;分别占实验报告总成绩的20%,10%,30%,40%;

3、实验程序及结果分析如有内容雷同,均不给分;

4、实验程序、结果分析内容可以直接打印。

【 项目一 双线性变换法设计巴特沃斯滤波器 】

实验内容:给定待设计的数字高通和带通滤波器的技术指标如下:

(1) HP :Hz f p 400=,Hz f s 300=,Hz F s 1000=,dB p 3=α,dB s 35=α。

(2) BP :Hz f sl 200=,Hz f 3001=,Hz f 4002=,Hz f sh 500=,Hz F s 2000=,dB p 3=α,

dB s 40=α。

试用双线性变换分别设计满足上述要求的巴特沃斯滤波器,给出其系统函数、对数幅频及相频曲线。

实验原理:为了克服脉冲响应不变法中产生频率响应的混叠失真,采用非线性频率压缩方法,将整个频率轴上的频率范围压缩到-π/T ~π/T 之间,再用z =e sT

转换到Z 平面上。也就是说,第一步先将整个S 平面压缩映射到S 1平面的-π/T ~π/T 一条横带里;第二步再通过标准变换关系

z =e s 1

T

将此横带变

换到整个Z 平面上去。这样就使S 平面与Z 平面建立了一一对应的单值关系,消除了多值变换性,也就消除了频谱混叠现象。由下图看出,在零频率附近,模拟角频率Ω与数字频率ω之间的变换关系接近于线性关系;但当Ω进一步增加时,ω增长得越来越慢,最后当Ω→∞时,ω终止在折叠频率ω=π处,因而双线性变换就不会出现由于高频部分超过折叠频率而混淆到低频部分去的现象,从而消除了频率混叠现象。

将S 平面j Ω轴压缩变换到s1平面j Ω轴上的-π/T 到π/T 一段,可以采用以下变换关系:

⎪⎭

⎝⎛Ω=Ω2tan 1T 这样±∞=Ω变换到T

π

±

=Ω1,0=Ω变换到01=Ω,可将上式写成

2

2

221111T j

T j T j

T

j

e

e

e e j Ω-ΩΩ-Ω+-=

Ω

令s j =Ω,11s j =Ω,解析延拓到整个s 平面和s1平面,可得

2

2

221111T s T s T s T s e

e

e e s -

-

+-=

再将1s 平面通过以下变换关系映射到z 平面,即

T s e z 1=

从而得到s 平面和z 平面的单值映射关系为

1111--+-=z z s , s

s z -+=11

一般来说,为了使模拟滤波器的某一频率与数字滤波器的任一频率有对应关系,可引入待定常数c ,

⎪⎭

⎫ ⎝⎛Ω=Ω2tan 1

T

c ()

T

s T

s e e c s 1111--+-=

将T

s e

z 1=代入到上式,可得

11

11--+-=z z

c

s , s

c s c z -+=

在MATLAB 中,双线性Z 变换可以通过bilinear 函数实现,其调用格式为:

[Bz ,Az]=bilinear(B ,A ,Fs);

其中B ,A 为模拟滤波器传递函数G (s )的分子分母多项式的系数向量,而Bz ,Az 为数字滤波器的传递函数

H (z )的分子分母多项式的系数向量。

本次滤波器设计的主要方法是先设计低通模拟滤波器,然后转换为高通、带通数字滤波器。在设计的全过程的各个步骤,matlab 都提供相应的工具箱函数,使得IIR 数字滤波器设计变得简单。总的来说,我的设计思路主要有以下两种:

方案一:从归一化模拟低通原型出发,先在模拟域内经频率变换成为所需类型的模拟滤波器;然后进行双线性变换,由S 域变换到Z 域,而得到所需类型的数字滤波器。

图1 先频率变换再离散

方案二:先进行双线性变换,将模拟低通原型滤波器变换成数字低通滤波器;然后在Z 域内经数字频率变换为所需类型的数字滤波器。

图2 先离散再频率变换

以上两种方案都可以,我最后选择了第一种方案进行设计,即先在模拟域内经频率变换成为所需类型的模拟滤波器;然后进行双线性变换,由S 域变换到Z 域,而得到所需类型的数字滤波器。因为高通,带通滤波器的设计方法是先将要设计的滤波器的技术特性指标通过频率转换成模拟低通滤波器的技术指标,再

根据这些性能指标设计出低通滤波器的传递函数,为了设计程序的简洁,故选择了方案一。 下面给出matlab 程序:

实验程序: 【高通滤波器】

fp=400;fs=300;

Rp=3;Rs=35; %衰减参数

FS=1000;T=1/(FS);

wp=2*pi*fp;ws=2*pi*fs; %把数字域特征换成模拟域特征 Wp=wp/(FS);Ws=ws/(FS); %归一化数字频率 wp2=2*tan(Wp/2)/T;ws2=2*tan(Ws/2)/T; %频率预畸变 [N,Wn]=buttord(wp2,ws2,Rp,Rs,'s');

[z,p,k]=buttap(N); %Buttord 低通原型

[Bap,Aap]=zp2tf(z,p,k); %零极点转换为传递函数 figure(1)

freqs(Bap,Aap); %模拟低通频率响应 title('模拟滤波器(低通原型)频率响应')

[Bbs,Abs]=lp2hp(Bap,Aap,Wn); %模拟低通变高通 [numz denz]=butter(N,Wp/pi,'high');

Gz_HP=tf(numz,denz,T) %求传递函数 figure(2)

freqs(Bbs,Abs);

title('模拟滤波器(高通)频率响应')

[Bbz,Abz]=bilinear(Bbs,Abs,FS); %双线性变换 figure(3)

freqz(Bbz,Abz,512,FS); title('数字滤波器频率响应') [hw,w]=freqz(Bbz,Abz,512); figure(4)

plot(w/pi,20*log(abs(hw))); grid

axis([0,1,-740,50])

title('详细显示幅频响应')

xlabel('w/pi');ylabel('幅度(dB )');

【带通滤波器】

fs1=200;fs2=500;fp1=300;fp2=400

Rp=3;Rs=40; %衰减参数 FS=2000;T=1/(FS);

相关文档
最新文档