数字信号处理课程课程设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
吉首大学信息科学与工程学院
课程设计报告书
课程:数字信号处理教程
课题:基于MATLAB的巴特沃斯低通滤波器以切贝雪夫低通滤波器的设计
姓名:
学号:
专业:通信工程
年级: 2012级
指导教师:
基地指导教师:
2014年12 月
一、项目介绍与设计目的
1.通过实验加深对巴特沃斯低通滤波器以及切贝雪夫低通滤波器基本原理的理解。
2.学习编写巴特沃斯低通滤波器和切比雪夫的MATLAB仿真程序。
3.滤波器的性能指标如下:通带截止频率fp=3kHz,通带最大衰减Rp=2dB,阻带截止
频率fst=6kHz,阻带最小衰减As=30db
二、设计方案
1.项目环境要求
MATLAB 软件
2.设计内容
一.理论设计:
模拟巴特沃思低通滤波器的设计
1.有技术指标可求的设计参数
Ωp=6000πrad/s; Ωst=12000πrad/s;
Rp=2db; As=30 db
2.求N;
=5.369
取N=6
3.确定参数
=1971.11
4.求系统函数
Han(s)=1/(1+3.8637033S+7.4641016S^2+9.141620S^3+7.4641016S^4+3.8637033S^5+S^6)
5.去归一化
H(s)=Han(s/Ωc)
=0.7648/(0.7648+3.0910s^5+6.2424s^4+7.9947S^3+6.6300S^2+0.6949)
化简可得
Ha(s)
=5.8650*10^25/(s^6+7.6158*10^4s^5+2.9000*10^9s^4+7.0010*10^13s^3+1.1267*10*18s^ 2+1.1496*10^32s+5.8650*10^25)
切比雪夫低通滤波器
1.
ε=1/(10^0.1As)=0.031
N>=arcch[]/arch()
取N=4
系统函数为:
Ha(s)
=0.0316s^4+3.5954*10^8S^2+5.1099*10^17/(S^4+6.6533*10^4S^3+2.2247*10^9S^2+4.365 9*10^13S+5.1099*10^17)
二.程序设计
(1)巴特沃斯低通滤波器
程序:
clc,clear all;
OmegaP=2*pi*3000;OmegaS=2*pi*6000;Rp=2;As=30;
N=ceil(log10((10^(As/10)-1)/(10^(Rp/10)-1))/(2*log10(OmegaS/OmegaP)))
OmegaC=OmegaP/((10^(Rp/10)-1)^(1/(2*N)));
[z0,p0,k0]=buttap(N);
p=p0*OmegaC;a=real(poly(p))
k=k0*OmegaC^N;b0=real(poly(z0));
b=k*b0
w0=[OmegaP,OmegaS];
[H,w]=freqs(b,a);
Hx=freqs(b,a,w0);
dbHx=-20*log10(abs(Hx)/max(abs(H)))
plot(w/(2*pi)/1000,20*log10(abs(H)));
xlabel('f(kHz)');ylabel('dB');axis([-1,12,-55,1])
set(gca,'xtickmode','manual','xtick',[0,1,2,3,4,5,6,7,8,9,10]);
Set(gca,'ytickmode','maunal','ytick',[-50,-40,-30,-2,-10,0]);grid;
输出结果
N=6
b=5.8650e+25
a=1 7.5158e+04 2.9000e+09 7.0010e+13 1.1267e+18 1.1496e+22 5.8650e+25 dbHx=2.0000 33.7692
在matlab中显示如下:
程序运行结果如下
故系统函数为:
Ha(s)
=5.8650*10^25/(s^6+7.6158*10^4s^5+2.9000*10^9s^4+7.0010*10^13s^3+1.1267*10*18s^ 2+1.1496*10^32s+5.8650*10^25)
(2)切贝雪夫型低通滤波器
程序:
clc,clear all;
OmegaR=2*pi*3000;OmegaS=2*pi*6000;Rp=2;As=30;
g=sqrt((10^(As/10)-1)/(10^(Rp/10)-1));
OmegaR=OmegaS/OmegaP
N=ceil(log10(g+sqrt(g*g-1))/log10(OmegaR+sqrt(OmegaR*OmegaR-1))) OmegaC=OmegaS;
[z0,p0,k0]=cheb2ap(N,As);
a0=real(poly(p0))
aNn=a0(N+1);p=p0*OmegaC;a=real(poly(p))
aNu=a(N+1);b0=real(poly(z0));M=length(b0);
bNn=b0(M);z=z0*OmegaC;b=real(poly(z));
bNu=b(M);k=k0*(aNu*bNn)/(aNn*bNu);
b=k*b
w0=[OmegaP,OmegaS];
[H,w]=freqs(b,a);
Hx=freqs(b,a,w0);
dbHx=-20*log10(abs(Hx)/max(abs(H)))
plot(w/(2*pi)/1000,20*log10(abs(H)));
xlabel('f(kHz)');ylabel('dB');axis([-1,12,-55,1])
set(gca,'xtickmode','manual','xtick',[0,1,2,3,4,5,6,7,8,9,10]);
Set(gca,'ytickmode','maunal','ytick',[-50,-40,-30,-20,-10,0]);grid; 输出结果:
N=4
b=0.0316 0 3.5954e+08 0 5.1099e+17
A=1 6.6533e+04 2.2247e+09 4.3659e+13 5.1099e+17