数字滤波器课程设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计
课程设计名称:数字信号处理课程设计
专业班级:电信1203
学生姓名:刘海峰
学号: 201216020307
指导教师:乔丽红
课程设计时间:2015/07/01-2015/07/06
电子信息工程专业课程设计任务书
说明:本表由指导教师填写,由教研室主任审核后下达给选题学生,装订在设计(论文)首页
一. 技术要求
⏹双线性变换法设计切比雪夫II型数字IIR低通滤波器,
⏹要求通带边界频率为400Hz,
⏹阻带边界频率分别为500Hz,
⏹通带最大衰减1dB,
⏹阻带最小衰减40dB,
⏹抽样频率为2000Hz,
二. 设计原理
IIR滤波器的设计包括三个步骤:①给出所需要的滤波器的技术指标;
②设计一个H(z)使其逼近所需要的技术指标:③实现所设计的H(z),IIR数字滤波器设计的最通用的方法是借助于模拟滤波器的设计方法。所以IIR数字低通滤波器的设计步骤是:①按一定规则将给出的数字滤波器的技术指标转换为模拟低通滤波器的技术指标;②根据转换后的技术指标设计模拟低通滤波器G(s):③再按一定规则将G(s)转换成H(z)。
在此过程中,我们用到了很多MATLAB中的函数,如设计切比雪夫低通滤波器的函数afd_chebl、由直接型转换为级联型的函数dir2cas、双线性变换的函数bilinear等。其中afd _chebl用于实现用模拟指标设计一个低通模拟滤波器,bilinear用于利用双线性变换法将模拟低通滤波器转换为数字低通滤波器。
三.程序流程图
四:源代码(完美版)
%归一化低通滤波器技术指标
clc;
clear all;
Ap=1; %最大通带衰减
As=40; %最小阻带衰减
W=2000; %抽样周期
Wp=400; %通带边界频率
Ws=500; %阻带边界频率
wp=2*pi*Wp/W; %归一化通带边界频率
ws=2*pi*Ws/W; %归一化阻带边界频率
Wp1=tan(wp/2); %模拟低通滤波器通带边界频率
Ws1=tan(ws/2); %模拟低通滤波器阻带边界频率
%归一化切比雪夫II型低通模拟滤波器
[N,Wn]=cheb2ord(Wp1,Ws1,Ap,As,'s'); %确定滤波器阶数和频率尺度缩放因子
[BT,AT]=cheby2(N,As,Wn,'s');%传输函数的系数
[Z,P,K]=cheb2ap(N,As);%最小阻带衰减为As(DB)的N阶归一化模拟切比雪夫2型低通滤波器的零点、极点和增益因子
[H,W]=zp2tf(Z,P,K);%传输函数有理化形式
figure;
[P,Q]=freqs(H,W);
freqs(H,W);%模拟滤波器的H(jw)的复频域响应.拉普拉斯格式.(自动挑选200个频率点来计算频率响应)
figure;
subplot(1,1,1);
fk=0:12000/512:12000;
wk=2*pi*fk;
Hk=freqs(BT,AT,wk);%挑选wk个频率点来计算频率响应
plot(fk/1000,20*log10(abs(Hk)));grid on;
xlabel('频率')
ylabel('增益衰减')
%用双线性变换法将H(s)转换成数字滤波器H(z)
[num,den]=bilinear(BT,AT,0.5);%复变量映射
[z,p,k]=tf2zp(num,den);
%显示传输函数
disp('分子系数:');disp(num);
disp('分母系数:');disp(den);
%计算增益响应
w=0:pi/255:pi;
h=freqz(num,den,w);
g=20*log10(abs(h)); %计算增益衰减
figure;
plot(w/pi,g);grid on; %绘制切比雪夫低通滤波器幅频特性
axis([0 1 -100 1]);
xlabel('\omega/\pi');
ylabel('增益/dB');
title('切比雪夫2型低通滤波器幅频响应曲线');
figure;
zplane(z,p); %绘制极零图
axis([-2 2 -2 2]);
title('零极点图');
figure;
subplot(1,1,1),
plot (w/pi, angle(h)/pi);grid on;
xlabel('归一化角频率');
ylabel('相位响应'); %绘制切比雪夫低通滤波器相频特性
axis([0 1 -1 1]);
%输入信号技术指标
f1=300;f2=600;
t=0:0.0005:1;
x1=sin(2*pi*f1*t); %X1信号
x2=sin(2*pi*f2*t); %X2信号
x=x1+x2; %X信号
figure;
subplot(2,1,1);
plot(x1);grid on; %绘制X1波形图
axis([0,50*pi,-3,3]);
xlabel('t');ylabel('x1');
title('x1的波形');
subplot(2,1,2);
plot(x2);grid on; %绘制X2波形图
axis([0,50*pi,-3,3]);
xlabel('t');ylabel('x2');
title('x2的波形');
figure;
subplot(2,1,1);
plot(x);grid on; %绘制X波形图
axis([0,50*pi,-3,3]);
xlabel('t');ylabel('x');
title('输入x的波形');
y=filter(num,den,x); %X信号通过切比雪夫II数字低通滤波器输出Y
subplot(2,1,2)
plot(y);grid on; %绘制输出Y的波形图
axis([0,50*pi,-3,3]);
xlabel('t');ylabel('y');