clear;clc;%清除数据区,指令区
nf仁1:
10;
lf1=length(nf1);%f1序列长度
f仁ones(1,lf1);%f1序列
nf2=1:
15;
lf2=length(nf2);%f2长度
f2=exp(-0.1.*nf2);%f2序列f3=fliplr(f2);%f2翻转h=[zeros(1,lf2+1),f2,zeros(1,lf1-1)];%f2补零
u=[zeros(1,lf2+1),f1,zeros(1,lf2-1)];%f1补零
nf3=-lf2:
lf1+lf2-1;
%求卷积
fork=0:
lf1+lf2%卷积的动态显示过程
P=[zeros(1,k),f3,zeros(1,lf1+lf2-k)];%序列补零并且进行循环移位
y1=p.*u;%求乘积
yk=sum(y1);%各点之和,即一个点卷积结果
y(k+1)=yk;%将卷积结果存入y序列
z=[zeros(1,lf2-1),y,zeros(1,lf2+lf1-k)];%y序列进行补零后的卷积序列%绘图
subplot(5,1,1);stem(nf3,u,'filled');title('u(n)');ylabel('u(n)');
subplot(5,1,2);stem(nf3,h,'filled');title('h(n)');ylabel('h(n)');
subplot(5,1,3);stem(nf3,p,'filled');title('翻转移位');ylabel('h(n-k)');
subplot(5,1,4);stem(nf3,y1,'filled');title('乘积');ylabel('u(n)*h(n)');
subplot(5,1,5);stem(nf3,z,'filled');title('卷积结果');ylabel('y(n)');
ifk==0disp('开始卷积'),pause;
End
Ifk==1f1+1disp/(暂停''pause;
Elsepause(0.5)
End
end
2.1.3仿真图形
图2-2卷积动态
2.1.4仿真结果分析:
2、u(n)的长度为10,h(n)的长度为15,卷积后的长度Ny=Nu+Nh-1=24.有图分析知,y(n)的长度为24点,满足卷积定理。
2.2用双线性变换法设计IIR数字滤波器
2.2.1
双线性变换法的基本知识
1)双线性变换法是将整个s平面映射到整个z平面,其映射关系为
双线性变换法克服了脉冲响应不变法从s平面到z平面的多值映射的缺点,消除了
频谱混叠现象。
但其在变换过程中产生了非线性的畸变,在设计IIR数字滤波器的过程
中需要进行一定的预修正。
2)设计中有关双线性变换法的子函数。
Bilinear
功能:
双线性变换——将s域(模拟域)映射到z域(数字域)的标准方法,将模拟滤波器变换成离散等效滤波器。
调用格式:
[numd,dend]=bilinear(num,den,Fs);将模拟域传递函数变换为数字域传递函数,Fs为取样频率。
[numd,dend]=bilinear(num,den,Fs,Fp);将模拟域传递函数变换为数字域传递函数,Fs为取样频率,Fp为通带截止频率。
[zd,pd,kd]=bilinear(z,p,k,Fs);将模拟域零极点增益系数变换到数字域,Fs为取样频率。
[zd,pd,kd]=bilinear(z,p,k,Fs,Fp);将模拟域零极点增益系数变换到数字域,Fs为取样频率,Fp为通带截止频率。
[Ad,Bd,Cd,Dd]=bilinear(A,B,C,D,Fs);将模拟域状态变量系数变换到数字域,Fs为取样频率。
3)用MATLAB双线性变换法进行IIR数字滤波器设计的步骤:
(1)输入给定的数字滤波器设计指标;
2
(2)根据公式-tan(—)进行预修正,将数字滤波器指标转换成模拟滤波器设计指
T2
标;
(3)确定模拟滤波器的最小阶数和截止频率;
(4)计算模拟低通原型滤波器的系统传递函数;
(5)利用模拟域频率变换法,求解实际模拟滤波器的系统传递函数;
(6)用双线性变换法将模拟滤波器转换为数字滤波器。
2.2.2采用双线性变换法设计一个巴特沃斯数字低通滤波器,
要求:
wp=0.2,Rp=1dB;ws=0.3,As=15dB,滤波器采样频率Fs=100Hz。
2.2.3自编matlab程序
wp=0.2*pi;%滤波器的通带截止频率
ws=0.3*pi;%滤波器的阻带截止频率Rp=1;As=15;%输入滤波器的通阻带衰减指标ripple=10A(-Rp/20);Attn=10(As/20);
Fs=100;T=1/Fs;
Omgp=(2/T)*tan(wp/2);%原型通带频率预修正
Omgs=(2/T)*tan(ws/2);%原型阻带频率预修正
[n,0mgc]=buttord(Omgp,Omgs,Rp,As,'s');%计算阶数n和3dB截止频率[z0,p0,k0]=buttap(n);%归一化原型设计
ba=k0*real(poly(z0));%求原型滤波器系数b
aa=real(poly(p0));%求原型滤波器系数a[ba1,aa1]=lp2lp(ba,aa,Omgc);%变换为模拟低通滤波器系数b,a[bd,ad]=bilinear(ba1,aa1,Fs)%用双线性变换法求数字滤波器系数b,a[sos,g]=tf2sos(bd,ad);%由直接型变换为级联型[H,w]=freqz(bd,ad);
dbH=20*log10((abs(H)+eps)/max(abs(H)));%化为分贝值subplot(2,2,1),plot(w/pi,abs(H));
ylabel('|H|');title('幅度响应');axis([0,1,0,1.1]);
set(gca,'XTickMode','manual','XTick',[0,0.25,0.4,1]);set(gca,'YTickMode','manual','YTick',[0,Attn,ripple,1]);gridsubplot(2,2,2),plot(w/pi,angle(H)/pi);
ylabel('\phi');title('相位响应');axis([0,1,-1,1]);
set(gca,'XTickMode','manual','XTick',[0,0.25,0.4,1]);set(gca,'YTickMode','manual','YTick',[-1,0,1]);gridsubplot(2,2,3),plot(w/pi,dbH);title('幅度响应(dB)');
ylabel('dB');xlabel('频率(\pi)');axis([0,1,-40,5]);set(gca,'XTickMode','manual','XTick',[0,0.25,0.4,1]);set(gca,'YTickMode','manual','YTick',[-50,-15,-1,0]);gridsubplot(2,2,4),zplane(bd,ad);
2.2.4仿真波形
225仿真结果分析
二阶环节级联结构的分子分母系数矩阵sos
12.0181.01841-1.01060.35827
11.98160.981941-1.26860.70513
增益g=0.00073782
FP^1dB,As三15dB由N=6可知,设计的巴特沃斯个6阶的系统,原型H(s)在s=-%处有六个零点,映射到z=-1处。
3、由幅度相应图可看出,通带有富余量,这是由于用最小阻带频率指标计算的结果。
4、计算过程:
W=0.2nRp=1dBWs=0.3nAs=15dB
Omgp=(2/T)*tan(wp/2)=200tan0.1n=64.9839
Omgs=(2/T)*tan(ws/2)=200tan0.15n=101.9051
入sp=Omgs/Omgp=1.568
如7d0as/10-1)/(10ap/10-1)=10.875
N=lgksp/lg入sp=5.3056
N取6
Omgc=Omgs10°.1as-1)-1/2N=76.6229
222
G=1/(p+0.5176p+1)(p+1.4142p+1)(p+1.9319p+1)
-11
P=S/Omgcs=2/T(1-Z)(1+Z)
H(z)=(0.0007+0.0044^+0.0111Z2+0.0148z-3+0.0111Z4+0.0044z-5+0.0007z-6)/
(1.0000-3.1836Z1+4.6222Z-2-3.7795z-3+1.8136z-4-0.4800N5+0.0544z-6)
本题所设计的滤波器是一个六阶滤波器,由于MATLAB精度有限,表现的sos有误差,
把它们调整到精确值后,滤波器的级连型系统函数应该为
H(z)=0.00073782(1+z-1)-6/[(1-0.90437^10.21552^2)(1-1.0106z-1+0.35827z-2)(1-1.2686z-1+0.70513z2)]
四、总结
通过本次课程设计,我学会了用Simulink建模的方法和调试过程,验证了低通抽样定理,实现PCM编码及13折线量化,通过MATLAB实现卷积过程的动态,实现用双线性变换法设计IIR数字滤波器。
学会了用simulink建立模型来完成仿真过程,全新的接触了另外一种结合书本学习的方法,通过建立模型后对其参数进行设置,得到我们所需的结果,在接受MATLAB后,另外一种编程完成仿真过程,通过对程序的不断调试和更改,最后完成了本次课设的任务。
了解了仿真技术与通信仿仿真的基本概念,知道了仿真的基本步骤和应该注意的问题,对simulink中的模块的基本了解及其作用,然后对MATLAB工作环境的认知,本次课程设计需要掌握通信原理和数字信号处理的理论知识,通过老师的讲解及到图书馆
查阅各种有关的资料,掌握了利用simulink来建模实现抽样定理及13折线编码,建模锻炼了我的动手和独立思考的能力。
学会了利用MATLAB进行双线性变换法设计FIR
数字低通滤波器,在进行编程和调试的过程会遇到各种各样的问题,通过自己的思考,
向同学老师请教逐次解决。
通过本次课程设计,加深理解和巩固通信原理、数字信号处理课上所学的有关基本概念、基本理论和基本方法,锻炼了我的分析问题和解决问题的能力,同时培养良好的独立工作习惯和科学素质,初步掌握了MATALB的使用为今后的学习打下良好的基础。
五、参考文献
[1]李贺冰等.Simulink通信仿真教程.北京:
国防工业出版社,2006.
[2]刘舒帆等.数字信号处理实验(MATLAB版).西安:
西安电子科技大学出版社,2008.
[3]党宏社.信号与系统实验(MATLAB版).西安:
西安电子科技大学出版社,2007.
[4]郭文彬等.通信原理一一基于Matlab的计算机仿真•北京:
北京邮电大学出版社,2006.
课程设计成绩评定表
成
绩评疋
项目
比例
得分
平时成绩(百分制记分)
30%
业务考核成绩(百分制记分)
70%
总评成绩(百分制记分)
100%
评定等级
优良中及格不及格
指导教师(签名):
20年月曰