77matlab大作业

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

MATLAB大作业MATLAB在数字信号处理中的应用-------IIR数字滤波器的设计班级:姓名:学号:【摘要】数字滤波器根据其冲激响应函数的时域特性,可分为两种,即无限长冲激响应(IIR)数字滤波器和有限长冲激响(FIR)数字滤波器。实现IIR滤波器的阶次较低,所用的存储单元较少,效率高,精度高,而且能够保留一些模拟滤波器的优良特性,因此应用很广。本实验将编程序调用MATLAB滤波器设计函数ellipord和ellip分别设计三个椭圆滤波器,再调用滤波器实现函数filter,用三个滤波器分别对信号产生函数mstg产生的信号st进行滤波,分离出st中的三路不同载波频率的调幅信号y1(n),y2(n),y3(n),并绘图显示y1(n),y2(n),y3(n)的时域波形,观察分离效果。【关键字】IIR滤波器ellipordellip1.研究内容(1)调用信号产生函数mstg产生由三路抑制载波调幅信号相加构成的复合信号st,该函数还会自动绘图显示st的时域波形和幅频特性曲线,如图1所示。由图可见,三路信号时域混叠无法在时域分离。但频域是分离的,所以可以通过滤波的方法在频域分离,这就是本实验的目的。(2)要求将st中三路调幅信号分离,通过观察st的幅频特性曲线,分别确定可以分离st中三路抑制载波单频调幅信号的三个滤波器(低通滤波器、带通滤波器、高通滤波器)的通带截止频率和阻带截止频率。要求滤波器的通带最大衰减为1dB,阻带最小衰减为40dB(3)编程序调用MATLAB滤波器设计函数ellipord和ellip分别设计这三个椭圆滤波器。(4)调用滤波器实现函数filter,用三个滤波器分别对信号产生函数mstg产生的信号st进行滤波,分离出st中的三路不同载波频率的调幅信号y1(n)、y2(n)和y3(n),并绘图显示y1(n)、y2(n)和y3(n)的时域波形,观察分离效果。2.用到的MATLAB背景知识椭圆滤波器逼近理论是复杂的纯数学问题。只要给定滤波器指标,通过调用MATLAB信号处理工具箱提供的椭圆滤波器设计函数,就很容易得到椭圆滤波器系统函数和零极点位置。MATLAB信号处理工具箱提供椭圆滤波器设计函数ellipap,ellipord,ellip。其调用格式如下:(1)[z,p,k]=ellipap(N,Rp,As)用于计算N阶归一化模拟低通椭圆滤波器的零点向量z,极点向量p和增益因子k。Rp和As分别为通带最大衰减和阻带最小衰减。返回长度为N的列向量z和p分别给出N个极点的位置。(2)[N,wpo]=ellipord(wp,ws,Rp,As)用于计算满足指标的椭圆数字滤波器的最低阶数N和通带边界频率wpo,指标要求由参数(wp,ws,Rp,As)给定。(3)[N,wpo]=ellipord(wp,ws,Rp,As,’s’)用于计算满足指标的椭圆模拟滤波器的最低阶数N和通带边界频率wpo。(4)[B,A]=ellip(N,Rp,wpo,’ftype’)当wpo是表示滤波器通带边界频率的标量,而且缺省参数ftype时,该格式返回N阶低通椭圆数字滤波器系统函数的分子和分母多项式系数向量B和A,滤波器通带波纹为RpdB;当ftype=high时,返回N阶高通椭圆数字滤波器系统函数向量B和A,当wpo是表示带通滤波器通带边界频率的二元向量,而且缺省参数ftype时,该格式返回2N阶带通椭圆数字滤波器系统函数的分子和分母多项式系数向量B和A,滤波器通带波纹为RpdB。当ftype=stop时,返回2N阶带阻椭圆数字滤波器系统向量B和A。二元向量参数wpo表示阻带上下边界频率。(5)[B,A]=ellip(wp,Rp,wpo,’ftype’,’s’)计算椭圆模拟滤波器系统函数系数向量B和A。当然,其中的边界频率均为实际模拟角频率值。3.实现过程描述(1)信号产生函数mstg的产生functionst=mstg%产生信号序列向量st,并显示st的时域波形和频谱%st=mstg返回三路调幅信号相加形成的混合信号,长度N=800N=800;%N为信号st的长度Fs=10000;T=1/Fs;Tp=N*T;%采样频率Fs=10kHz,Tp为采样时间t=0:T:(N-1)*T;k=0:N-1;f=k/Tp;fc1=Fs/10;%第1路调幅信号的载波频率fc1=1000Hzfm1=fc1/10;%第1路调幅信号的载波频率fm1=100Hzfc2=Fs/20;%第2路调幅信号的载波频率fc2=500Hzfm2=fc2/10;%第2路调幅信号的载波频率fm2=50Hzfc3=Fs/40;%第3路调幅信号的载波频率fc3=250Hzfm3=fc3/10;%第3路调幅信号的载波频率fm3=25Hzxt1=cos(2*pi*fm1*t).*cos(2*pi*fc1*t);%产生第1路调幅信号xt2=cos(2*pi*fm2*t).*cos(2*pi*fc2*t);%产生第2路调幅信号xt3=cos(2*pi*fm3*t).*cos(2*pi*fc3*t);%产生第3路调幅信号st=xt1+xt2+xt3;%三路调幅信号相加fxt=fft(st,N);%计算信号st的频谱subplot(3,1,1)plot(t,st);grid;xlabel('t/s');ylabel('s(t)');axis([0,Tp/8,min(st),max(st)]);title('(a)s(t)的波形');subplot(3,1,2)stem(f,abs(fxt)/max(abs(fxt)),'.');grid;title('(b)s(t)的频谱')axis([0,Fs/5,0,1.2]);xlabel('f/Hz');ylabel('幅度')(2)高通滤波器的设计fp=800;fs=700;Fs=10000;wp=2*fp/Fs;ws=2*fs/Fs;%求归一化频率rp=1;rs=40;%设计指标N=2000;st=mstg;T=1/Fs;Tp=N*T;t=0:T:(N-1)*T;k=0:N-1;f=k/Tp;[N1,wpo]=ellipord(wp,ws,rp,rs);%调用ellipord计算椭圆DF阶数N和通带截止频率wp[B,A]=ellip(N1,rp,rs,wpo,'high');%调用ellip计算椭圆带通DF系统函数系数向量B和Ay1=filter(B,A,st);%滤波器软件实现fyt=fft(y1,N);figure(3);subplot(3,1,1);plot(t,y1);grid;xlabel('t/y1');ylabel('y1(t)');axis([0,Tp/8,min(y1),max(y1)]);title('(a)y1(t)的波形');subplot(3,1,2);stem(f,abs(fyt)/max(abs(fyt)),'.');grid;title('(b)y1(t)的频谱');axis([0,Fs/5,0,1.2]);xlabel('f/Hz');ylabel('幅度')(3)带通滤波器的设计fpl=400;fpu=600;fsl=350;fsu=650;Fs=10000;wp=[2*fpl/Fs,2*fpu/Fs];ws=[2*fsl/Fs,2*fsu/Fs];%求归一化频率rp=1;rs=40;%设计指标N=2000;st=mstg;T=1/Fs;Tp=N*T;t=0:T:(N-1)*T;k=0:N-1;f=k/Tp;[N2,wpo]=ellipord(wp,ws,rp,rs);%调用ellipord计算椭圆DF阶数N和通带截止频率wp[B,A]=ellip(N2,rp,rs,wpo);%调用ellip计算椭圆带通DF系统函数系数向量B和Ay2=filter(B,A,st);%滤波器软件实现figure(4);subplot(4,1,1);plot(t,y2);grid;xlabel('t/y2');ylabel('y2(t)');axis([0,Tp/8,min(y2),max(y2)]);title('(a)y2(t)的波形');subplot(4,1,2);stem(f,abs(fyt)/max(abs(fyt)),'.');grid;title('(b)y2(t)的频谱')axis([0,Fs/5,0,1.2]);xlabel('f/Hz');ylabel('幅度')(4)低通滤波器的设计fp=280;fs=450;Fs=10000;wp=2*fp/Fs;ws=2*fs/Fs;%求归一化频率rp=1;rs=40;%设计指标N=2000;st=mstg;T=1/Fs;Tp=N*T;t=0:T:(N-1)*T;k=0:N-1;f=k/Tp;[N3,wpo]=ellipord(wp,ws,rp,rs);%调用ellipord计算椭圆DF阶数N和通带截止频率wp[B,A]=ellip(N3,rp,rs,wpo);%调用ellip计算椭圆带通DF系统函数系数向量B和Ay3=filter(B,A,st);%滤波器软件实现fyt=fft(y3,N);figure(2);subplot(2,1,1);plot(t,y3);grid;xlabel('t/y3');ylabel('y3(t)'),axis([0,Tp/8,min(y3),max(y3)]);title('(a)y3(t)的波形')subplot(2,1,2);stem(f,abs(fyt)/max(abs(fyt)),'.');grid;title('(b)y3(t)的频谱')axis([0,Fs/5,0,1.2]);xlabel('f/Hz');ylabel('幅度')4.结论分析发现,st的每个频率成分都是25Hz的整数倍。采样频率Fs=10kHz=25×400Hz,即在25Hz的正弦波的1个周期中采样400点。所以,当N为400的整数倍时一定为st的整数个周期。通过这次大作业的设计,让我又体会到了自学的重要性,学到关于如何在MATLAB软件上实现数字滤波器的设计与实现对现实数字波形的滤波处理。熟悉用双线性变换法设计IIR数字滤波器的原理与方法,学会调用MATLAB信号处理工具箱中滤波器设计函数在设计的整个过程中,经历了课题的确定,关于课题资料的搜索,课题的设计和课题设计报告的完成。每一步都要我们自己决定,通过我们的思考准确的将其确立下来。一开始是盲目搜索,都不知道MATLAB在数字信号中能做都有哪些,然而,通过数字信号处理的简单学习,再加上借助网络的力量,才使我们了解到MATLAB还具有那么强大的功能,为我们数字信号处理带来的很大的方便。通过搜索资料的过程中,我们了解到学到了很多在课堂内没有学到的东西,让我们才懂得,有了MATLAB,数字信号处理变得简单了不少,也让我们了解到MATLAB在数字信号处理中的重要性。不仅是在数字信号处理中的应该,还有在自动控制中的应用等。在这个过程中,也让我们更好的懂得了如何充分的利用网络资源来真正的满足我们的需求,而不是一味的玩游戏,聊天等。当然,通过这次作业也让我们看到了一个不一样的自己,平时的自己总是悠闲地感觉无所事事,起初的自己都只会喊着难,做不了之类的泄气话。但真正当自己做起来的时候,无论前方困难有多少困难,我们都要往过扛,品尝到最终胜利的果实!因此,在今后的学习中,我们一定会继续提高自己的自学能力,努力提高自身能力,奋力成为一位有用的人才!5.参考文献(1)《MATLAB实用教程》第三版,郑阿奇主编(2)《数字信号处理》第三版,高西全主编(3)《MATLAB基础及在信号与系统中的应用》,周扬主编(4)《MATLAB辅助现代工程数字信号处理》,李益华主编(5)《IIR数字滤波器的探讨与实现》,饶志强主编

1 / 9
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功