基于MATLAB的数字信号处理的模拟与仿真.docVIP

基于MATLAB的数字信号处理的模拟与仿真.doc

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于MATLAB的数字信号处理的模拟与仿真

基于MATLAB 的数字信号处理的模拟与仿真 王靖斌 山东农业大学信息科学与工程学院,山东泰安(371018) 摘 要:本文介绍了数字信号处理中各种算法基本原理,包括Z 变换、DFT 变换及其快速 算法FFT 等信号变换算法和包括IIR 与FIR 数字滤波器的设计与实现,详细论述了利用 MATLAB 软件对信号变换和设计数字滤波器的原理﹑ 步骤和实现方法,并给出了基于 MATLAB 的模拟与仿真。文章最后给出了实验结果,并就其结果做了进一步的解释和说明。 关键词:Z 变换,离散傅立叶变换DFT,数字滤波器,系统结构仿真 1.引言 数字信号处理(Digital Signal Processing,DSP)是一门交叉性的学科,它的理论基础涉 及信息、通信、雷达、航空航天及生物医药等众多学科领域,其成果又为这些学科的发展起 着重要的促进作用。 MATLAB 是数字信号处理技术实现的重要手段。MATLAB 提供了信号处理工具箱, MATLAB 信号处理工具箱随着信号处理理论与方法的发展而发展,同时又为信号处理理论 与方法的实现与工程应用提供了有效的帮助。本文基于MATLAB 实现了数字信号处理的信 号变换模拟与滤波器设计仿真。 2.信号变换的各种算法 2.1 Z 变换的算法原理及MATLAB 实现 若序列为x(n),则z 变换为 这种变换将离散系统的差分方程转化为简单的代数方程。以一个简单的差分方程为例, 用MATLAB 实现z 变换: 系统的差分方程为: y(n)-2y(n-1)+3y(n-2)=4u(n)-5u(n-1)+6u(n-2)-7u(n-3) 其初始条件为x(-1)=1,x(-2)=-1,y(-1)=-1,y(-2)=1,求系统的输出y(n). MATLAB 程序如下所示: clear all; close all; clc; b=[4,-5,6,-7]; a=[1 -2 3]; x0=[1 -1]; y0=[-1 1]; xic=filtic(b,a,y0,x0) bxplus=1; axplus=[1 -1]; ayplus=conv(a,axplus) byplus=conv(b,bxplus)+conv(xic,axplus) [R,P,K]=residuez(byplus,ayplus) Mp=abs(P) Ap=angle(P)*180/pi N=100; n=0:N-1; xn=ones(1,N); yn=filter(b,a,xn,xic); plot(n,yn) 运行结果如下: xic = -16 16 -7 ayplus = 1 -3 5 -3 byplus = -12 27 -17 0 R = -5.5000 - 1.0607i -5.5000 + 1.0607i -1.0000 P = 1.0000 + 1.4142i 1.0000 - 1.4142i 1.0000 K = 0 Mp = 1.7321 1.7321 1.0000 Ap = 54.7356 -54.7356 0 输出相应曲线如下图所示 图1.差分方程的输出结果 2.2 离散傅立叶变换(DFT) 2.2.1 DFT 的算法原理及MATLAB 实现 对N 点有限长序列x(n),其正变换为 其逆变换为 下面用MATLAB 实现傅立叶变换及其逆变换: 离散傅立叶变换的MATLAB 实现 function[Xk]=dft(xn,N) Xk=在0=k=N-1 间的DFT 系数数组 xn=N 点有限长度序列 N=DFT 的长度 n=[0:1:N-1]; %n的行向量 k=[0:1:N-1]; %k的行向量 WN=exp(-j*2*pi/N); %Wn因子 nk=n*k; %产生一个含nk 值的N 乘N 维矩阵 WNnk=WN.^nk; %DFT矩阵 Xk=xn*WNnk; %DFT 系数的行向量 离散傅立叶逆变换的MATLAB 实现: Function[xn]=idft(Xk,N) xn=在0=k=N-1 间的N 点有限长度序列 Xk=在0=k=N-1 间的DFT 系数数组 N=DFT 的长度 n=[0:1:N-1]; k=[0:1:N-1]; WN=exp(-j*2*pi/N); nk=n*k; WNnk=WN.^(-nk); xn=(Xk*WNnk)/N; 以一个有限序列为例,计算它的傅立叶变换: 若x(n)=sin(nΠ/4)是一个N=32 的有限序列,实现它的傅立叶变换的MATLAB 程序如下: clear all; close all; clc; N=32; n=0:N-1; xn=cos(pi*n/6); k=0:N-1; WN=exp(-j*2*pi/N); nk=n*k; WNnk=WN.^nk; Xk=xn*WNnk; figu

文档评论(0)

tangtianbao1 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档