课 程 设 计
课程设计名称:基于双线性变换法设计C- hebyshev-II型IIR数字低通滤波器 专 业 班 级 : 电信 学 生 姓 名 : 星空 学 号 : 指 导 教 师 : 课程设计时间: 2013年6月30日
1
数字信号处理 专业课程设计任务书
学生姓名 题 目 课题性质 指导教师 星空 专业班级 电信 学院名称 信息科学与工程学院 基于双线性变换法设计Chebyshev- II型IIR数字低通滤波器 工程技术研究 课题来源 同组姓名 自拟 设计一个具有如下性能指标的Chebyshev- II型IIR数字低通滤波器:p=0.25,s=0.4,p=0.01,s=0.001;分析最后设计结果性能。 主要内容 1. 掌握双线性变换法设计数字滤波器的基本流程; 任务要求 2. 掌握Chebyshev- II型模拟低通原型滤波器; 3. 求出所设计滤波器的传输函数; 4. 绘制所设计滤波器的幅频特性图。 [1] 胡广书. 数字信号处理—理论、算法与实现[M]. 北京: 清华大学出版社, 1997. [2] R. Lyons. Understanding Digital Signal Processing [M]. 2nd ed. Prentice Hall PTR., 2004. [3] A.V.奥本海姆, R.W.谢弗 and J.R.巴克. 离散时间信号处理[M]. 第二版. 西安交通大学出版社, 2001. [4] S. K. Mitra. Digital Signal Processing: A Computer-Based Approach[M]. 3rd ed. McGraw-Hill, 2005. 指导教师签字: 参考文献 审查意见 教研室主任签字: 2013 年6 月 23 日 说明:本表由指导教师填写,由教研室主任审核后下达给选题学生,装订在设计(论文)首页
2
1 需求分析
在本次课程设计中,我做的是基于双线性变换法设计Chebyshev-II型IIR数字低通滤波器,看到这个题目,我们很快就能联系到数字信号处理中的IIR数字滤波器的设计,根据以前学习的东西我们知道,要想设计一个数字低通滤波器,我们可以把所给的数字指标转换为模拟参数,通过设计一个模拟低通的滤波器,对设计好的模拟低通滤波器进行数字化就可以得到一个数字低通滤波器。 在本次实验中,我们首先将所给的滤波器数字指标转换为模拟指标,利用Chebyshev-II型函数设计一个Chebyshev-II型低通模拟滤波器,然后对所设计好的Chebvshev-II型低通模拟滤波器进行参数分析,接下来利用双线性变化法将此模拟低通滤波器转变为数字低通滤波器。
2 概要设计
确定数字低通滤波器的各项性能指标 数字低通滤波器的技术指标转换成模拟低通滤波器的技术指标 按照模拟低通滤波器的技术指标设计模拟低通滤波器 利用双线性变换法将模拟滤波器转变为数字低通滤波器 利用模拟切比雪夫滤波器设计数字滤波器
图1 滤波器 设计流程方框图
IIR滤波器的设计包括三个步骤:①给出所需要的滤波器的技术指标;②设计一个H(z)使其逼近所需要的技术指标:③实现所设计的H(z),IIR数字滤波器设计的最通用的方法是借助于模拟滤波器的设计方法。所以IIR数字低通滤波器的设计步骤是:①按一定规则将给出的数字滤波器的技术指标转换为模拟低通滤波器的技术指标;②根据转换后的技术指标设计模拟低通滤波器G(s):③再按一定规则将G(s)转换成H(z)。
3
在此过程中,我们用到了很多MATLAB中的函数,如设计切比雪夫低通滤波器的函数afd_chebl、由直接型转换为级联型的函数dir2cas、双线性变换的函数bilinear等。其中afd _chebl用于实现用模拟指标设计一个低通模拟滤波器,bilinear用于利用双线性变换法将模拟低通滤波器转换为数字低通滤波器。
3 运行环境
硬件环境:PC机,windows2000及其以上, CPU ,内存,硬盘 软件环境:Windows 7操作系统 Matlab软件
4 开发工具和编程语言
MATLAB 软件,编程语言为DSP设计语言
5 详细设计
在本次课程设计中,我们用到了很多关于函数调用的程序,下面我将详细的介绍一下本次课程设计中用到的部分程序。
实验源程序代码: %归一化低通滤波器的技术指标 clc; clear all
Ap=0.08;%通带最大衰减由AP=-20lg(1-p)得 As=60; %阻带最小衰减由AP=-20lg(s) 得 Wp=0.25*pi;%通带截频 Ws=0.4*pi; %阻带截频 wp=tan(Wp/2); ws=tan(Ws/2); ws1=1 %归一化 wp1=wp/ws
%用MTALAB算法设计归一化切比雪夫II型低通模拟滤波器
[N,Wn]=cheb2ord(ws1,wp1,Ap,As,'s');%估计滤波器的阶数(N:阶数,wn:阻带截止频率)
4
wn1=Wn/pi;
[BT,AT]=cheby2(N,60,Wn,'s');%计算低通滤波器系统函数多项式系数 subplot(2,2,1);
[Z,P,K]=cheby2(N,0.08,Wn,'s'); [H,W]=zp2tf(Z,P,K); figure(1); [P,Q]=freqs(H,W); freqs(H,W); figure(2); subplot(1,1,1);
fk=0:12000/512:12000;wk=2*pi*fk; Hk=freqs(BT,AT,wk);
plot(fk/1000,20*log10(abs(Hk)));grid on xlabel('Frequency(Hz)') ylabel('Magnitude Response')
%用双线性变换法将H(s)转换成数字滤波器H(z),即 [num,den]=bilinear(BT,AT,0.5)%复变量映射s-z [z,p,k]=tf2zp(num,den); %显示传输函数
disp('分子系数:');disp(num); disp('分母系数:');disp(den); %计算增益响应
w=linspace(0,pi,2048); %w = 0:pi/255:pi; h = freqz(num,den,w);
g =20*log10(abs(h)/max(abs(h))); %绘制增益响应 figure;
plot(w/pi,g);grid on;%绘制切比雪夫低通滤波器幅频特性 axis([0 1 -100 1]);
5
xlabel('\\omega/\\pi'); ylabel('增益/dB');
title('切比雪夫2型低通滤波器幅频响应曲线'); figure;
zplane(z,p); %绘制传输函数零极点 title('传输函数的零极点');
subplot (1, 1, 1) , plot (w/pi, angle (h) /pi) ; grid; xlabel('Normalized frequency'); ylabel('相位响应'); axis([0 1 -1 1]);
6 调试分析
编写程序有一定难度,起初是不会编写,经查找资料最终一步步编写出来,调试是不断出错,更多的错误是:函数未定义,函数功能调用错误,好几次因为输入法错误而导致运行失败,不过经过耐心的学习,最终还是调试出了比较理想的结果。
7 测试结果
图 二 代码运行结果
6
图 三 切比雪夫2型模拟低通滤波器幅频曲线和相频曲线
图 四 切比雪夫2型模拟低通滤波器幅值相应
7
图 五 切比雪夫2型数字低通滤波器幅频相应曲线
图 六 切比雪夫2型数字低通滤波器相位相应曲线
8
8参考文献
[1]程佩青著,《数字信号处理教程》,清华大学出版社,2001
[2]《数字信号处理实验指导书(MATLAB版)》Sanjit K. Mitra著,电子工业出版社,2005年1月
[3]郭仕剑等,《MATLAB 7.x数字信号处理》,人民邮电出版社,2006年 [4]胡广书,《数字信号处理 理论算法与实现》,清华大学出版社,2003年 [5]刘泉,阙大顺编 数字信号处理原理与实现,电子工业出版社,2005年6 月
[6]苏金明, 王永利编 Matlab7.0使用指南, 电子工业出版社,2004年11月 [7]薛定宇 陈阳泉编 基于matlab/simulink的系统仿真技术与应用,清华大学出版社 2002年
9
心得体会
本次课程设计中,我的任务是用双线性变换法设计切比雪夫2型低通数字滤波器,并应用MATLAB软件进行仿真分析。这是数字信号处理的知识与软件应用相结合的一次训练,我受益匪浅。
通过本次课程设计,我对平时所学的知识有了更深入的了解,对MATLAB的应用也较以前熟练,知识与应用相结合提高了我的学习热情,在实验中,我确实遇到了一些问题,但通过我们的共同努力,最终还是解决了问题,收获了宝贵的经验。我相信,在下一阶段的学习中,我会取得更优异的成绩。
10
因篇幅问题不能全部显示,请点此查看更多更全内容