- 1、本文档共14页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实用标准文案
精彩文档
现 代 信 号 处 理
学院: 仪器与电子学院
专业: 仪器仪表工程
班级:
姓名:
学号:
流水号:
时间: 2014年 6月27日
1、设采样周期T=250μs(采样频率fs =4kHz),用脉冲响应不变法和双线性变换法设计一个三阶巴特沃兹滤波器,其3dB边界频率为fc =1kHz。
设计步骤如下:
确定所需类型数字滤波器的技术指标。
将所需类型数字滤波器的边界频率转换成相应的模拟滤波器的边界频率,转换公式为Ω=2/T tan(0.5ω)
将相应类型的模拟滤波器技术指标转换成模拟低通滤波器的技术指标。
设计模拟低通滤波器。
通过频率变换将模拟低通转换成相应类型的过渡模拟滤波器。
采用脉冲响应不变法和双线性变换法将相应类型的过渡模拟滤波器转换成所需类型的数字滤波器。
程序设计如下:
[B,A]=butter(3,2*pi*1000,s);%第一个参数为阶数;第二个参数为角频率;第三个参数为系数B、A按s的正降幂排列。
[num1,den1]=impinvar(B,A,4000); %用冲激响应不变法将模拟滤波器变换成数字滤波器
[h1,w]=freqz(num1,den1);%获取滤波器的频率特性
[B,A]=butter(3,2/0.00025,s);
[num2,den2]=bilinear(B,A,4000); %实现双线性变换,即由模拟滤波器 得到数字滤波器
[h2,w]=freqz(num2,den2);
f=w/pi*2000;
plot(f,abs(h1),-.,f,abs(h2),-); %?x为图形上之x坐标向量,y为其对应的y坐标向量
grid;
xlabel(频率/Hz )
ylabel(幅值/dB)
程序中第一个butter 的边界频率2π×1000,为脉冲响应不变法原型低通滤波器的边界频率;第二个butter 的边界频率2/T=2/0.00025,为双线性变换法原型低通滤波器的边界频率.图1 给出了这两种设计方法所得到的频响,虚线为脉冲响应不变法的结果;实线为双线性变换法的结果。脉冲响应不变法由于混叠效应,使得过渡带和阻带的衰减特性变差,并且不存在传输零点。同时,也看到双线性变换法,在z=-1 即Ω=π 或f=2000Hz 处有一个三阶传输零点,这个三阶零
点正是模拟滤波器在ω=∞处的三阶传输零点通过映射形成的。
MATLAB计算结果如图1所示:
图1
2、设计一数字高通滤波器,它的通带为400~500Hz,通带内容许有0.5dB的波动,阻带内衰减在小于317Hz的频带内至少为19dB,采样频率为1000Hz。
?wc=2*1000*tan(2*pi*400/(2*1000));
????????wt=2*1000*tan(2*pi*317/(2*1000));
????????[N,wn]=cheb1ord(wc,wt,0.5,19,s);
????????[B,A]=cheby1(N,0.5,wn,high,s);
????????[num,den]=bilinear(B,A,1000);
????????[h,w]=freqz(num,den);
?????????f=w/pi*500;
??????????plot(f,20*log10(abs(h)));
??????????axis([0,500,-80,10]);
??????????grid;
??????????xlabel()
???????ylabel(幅度/dB)
图2给出了MATLAB计算的结果,可以看到模拟滤波器在Ω=∞处的三阶零点通过高通变换后出现在ω=0(z=1)处,这正是高通滤波器所希望得到的。
图2
3、设计一巴特沃兹带通滤波器,其3dB边界频率分别为f2=110kHz和f1=90kHz,在阻带f3 = 120kHz处的最小衰减大于10dB,采样频率fs=400kHz。????????????
w1=2*400*tan(2*pi*90/(2*400));
w2=2*400*tan(2*pi*110/(2*400));
wr=2*400*tan(2*pi*120/(2*400));
?[N,wn]=buttord([w1 w2],[1 wr],3,10,s);
?[B,A]=butter(N,wn,s);
?[num,den]=bilinear(B,A,400);
?[h,w]=freqz(num,den);
??f=w/pi*200;
??plot(f,20*log10(abs(h
文档评论(0)