序列的matlab实现样本_第1页
序列的matlab实现样本_第2页
序列的matlab实现样本_第3页
序列的matlab实现样本_第4页
序列的matlab实现样本_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

离散信号时域分析的MATLAB实现—、实验目的熟悉MATLAB编程方法、常用语句和可视化绘图技术;掌握序列时域运算的MATLAB编程方法。二、实验原理在用MATLAB表示离散信号并将其可视化时,由于矩阵元素个数是有限的,因此无法表示无限长序列;另外,离散信号无法进行符号运算。在MATLAB中,绘制离散序列波形图的专用命令为stem()。其格式有:stem(k,f)在图形窗11中,绘制出样值顶部为空心圆的序列Rk)波形图。stem(虬在图形窗11中,绘制出样值顶部为实心圆的序列Rk)波形图。下面介绍离散序列的MATLAB表示、基本运算(相加、相乘、平移、反转、尺度变换)、卷积和的实现及其图形显示方法。单位序列邳)单位序列的定义:必)=a必)=ak=o

[0,k手0卜.面为绘制&k・k。)波形图的子程序:functionimpseq(kl.k2,k0)%单位序列5(k・k0),k0为时移量

k=kl:k2;%kl,k2为序列的起止序列号k=kl:k2;%kl,k2为序列的起止序列号x=zeros(l,n);x(LkO-kl+l)=l; %在kO时刻信号赋值为1图11-1stem(k.x/fiir)图11-1axis([kljk2,O,l』Dtitle(,单位序列d(k・kO)')输入如下命令,则可获得单位序列3A.3)的波形图,如图11-1所示。impseq(・l,5,3)单位阶跃序列加单位序列的定义:*)=卜.面为绘制4k・k。)波形图的MATLAB子程序。functionstepseq(kl.k2,k0)%单位阶跃序列,kO为时移虽k=kl:kO-l;%kljc2为序列的起止序列号kk=length(k);x=zeros(l,kk);%k0前信号赋值为0stem(k.x;fiir) %绘出kl-kO-1的波形(0值)holdon图11-2n=k0:k2;图11-2im=length(n);x=ones(14m);%kO后信号赋值为1steni(n5x;fiir)%绘出kO〜k2的波形(1值)holdoffaxis([kl,k2.0J.l])title(,单位阶跃序列)运行如下命令,则可获得单位序列El・3)的波形图,如图11-2所示。stepseq(-1,10,3)序列的相加(减1相乘运算对序列向量/i(k).归k)相加或相乘,可以通过补零的方式使/;«)、人(k)成为具有相同维数的序列向量s】(k)、5z(k),然后对Si(k)、s?(k)相加或相乘。因此,序列向量/l(k)、技k)的维数可以不同。以下函数可实现序列向量/l(k)、人㈤的相加或相乘运算。function[£k]=sigadd(fl.kl,f2,k2)%实现序列fl.f2的相加,相减,相乘,可据实际需要作选择%fl,kl;f2,k2是参加运算的序列向量及其时间向量%f.k作为返回的和(差,积)序列及其时间向量%将fhf2转换成等长序列sl.s2k=niui(mm(kl)4nui(k2)):max(niax(kl)aiiax(k2));s1=zeros(1Jength(k));s2=s1;%初始化序列s1(find((k>=min(k1))&(k<=max(k1))=l))=fl;s2(find((k>=min(k2))&(k<=max(k2))==1))=f2;仁sl+s2; %序列相加%f=sl-s2;%序列相减

%f=sl.*s2;%序列相乘stem(k.f;fiir)axis([(min(min(kl),min(k2))・l),(niax(max(kl),max(k2))+l),(mm(f)-0.5),(max(f)-0.5)])例IE.己知序列.座编写M文件求心i必。解:运行如下M文件,可实现.1妁,结果如图11.1所示。kl=-l:3;fl=[.32312];k2=-l:l;kk=length(k2);f2=ones(Lkk);subplot(2,2J);stem(kl,f1 (k)f);subplot(2,2,2);stem(k2,f2,,filT);title(12(k));subplot(2,2,3);[f,k]=sigadd(fljkl,f2,k2);title(fl(k)+f2(k),)若要实现序列/i(k)、K(k)的相乘或相减运算,只需将xlyunxuan(fl,kLf2,k2)子程序中的相乘或相减语句设置为有效即可O序列的平移、反转(1)序列的平移序列的平移可以看作是将序列的时间序号向量平移,而对应原时间序号的序列样值不变。要将序列左移灯个单位时,则将时间序号向量都减小加个单位;若要右移加个单位时,则将时间序号向量都增大加个单位。实现序列平移的子函数如下:fiinction[x,n]=sigshift(f,k.kO) %实现序列平移:x(k)=Rk-kO)

n=k+2;x=f;subplot(1,2,1);stem(k,f,'fiir);title('f(k)');xlabel(k');subplot(1,2,2);stem(n,x/fiir);title(,f(k-kO),);xlabel(rkt);例11・2.己知指数序列愁,绘出川.2)的波形图。图11-2解:运行如下M文件,可得如图11.2所示的结果。图11-2k=0:5;仁(0.5).八k; %定义序列f(k)[x,k]=sigshift(f,k,2) %调用平移子函数(2)序列的反转序列的反转可用MATLAB中的fliplr函数实现。以下是实现序列反转及其结果可视化的函数。function[xji]=sigfbld(fk) %实现序列反转:x(k)-f(.k)x=fliplr(f);n=-flipk(k);subplot(1,2,1);stem(k.f/fiir);titlef^k)');xlabel(k);subplot。,2,2);stem(n,x/fiir);title(rf(-k)t);xlabel(,k,);序列的卷积运算序列万(k)、人(k)的卷枳和运算Rk)=/l(k)杉(k),可由MATLAB的conv()函数实现,调用格式为:f=conv(fhf2)如:已知序列:—如:已知序列:—,-,运行如下M文件可求其卷枳和:kl=-2:2;fl=ones(ljength(k1));k2=0:3;f2=2.Ak2;f=conv(fhf2)结果为:f=1 3 7 15 15 14 12 8可见,conv()函数不需要给定/业)、人(k)的非零样值的时间序号,也不返回卷积和序列Ak)的时间序号;此外,conv()假定/i(k)、人(k)都是从k=0开始,这就限制了它的应用范I乳因此,要对从任意k值开始的序列进行卷积和运算,同时正确标识出函数conv()的计算结果各量/,还须构造序列/l(k)、人(k)和/(k)的对应序号向量。下面是求序列/l(k)、人(k)卷积和的实用函数dconv(),它可■实现序号向量的返回。fiinctioii[f.k]=dconv(fl.kl,f2,k2)%求卷积和:f(k)=fl(k)*f2(k)f=conv(flSI)k0=kl(l)+k2(l); %计算序列f非零样值的起点位置kOk3=length(kl)+leiigth(k2)-2; %计算序列f非零样值的宽度k=k0:k0+k3; %确定序列f非零样值的序号向量subplot(2,2,l);stem(kl,fl「fHr);title(Tl(k),);xlabel(k);subplot(2,2,2);stem(k2,f2.'fiir);title(,f2(k)');xlabel('k');subplot(2,2,3);stem(k.f.'fiir);title('f(k)=fl(k)*f2(k),);xlabel('k');

h=get(gca,'position');h(3)=2.5*h(3);set(gca/position\h)例11-3.己知序歹U: 孑七,二'求其卷税和。图11-3解:运行如下M文件图11-3kl=-2:2;fl=0.5.*kl;%定义序列fl(k)k2=0:3;f2=2.'、k2;%定义序列f2(k)[f,k]=dconv(fl,kl,f2,k2);%求卷积和图形结果则如图11・3所示,文本结果如下:Columns1tluough64.0000-1.0000 -2.5000 -5.0000 -9.5000 -2.00004.0000Columns7tluough88.0000 8.0000离散信号相关函数的计算在数字信号处理中,广泛用到信号的相关运算。两个序列的互相关用来度量这两个序列的相似程度。给定两个长度相同、能量受限的序列x(k)和y(k),它们的互相关函数是另一个序列,定义为:

其中,〃称为滞后参数。当x(k)=y(k)时,称为x(k)的自相关函数,它提供了序列位置不同基准情况下自相似程度的度量。由于信号的自相关函数与信号的功率谱密度是一对傅里叶变换对,这为信号的功率谱计算提供了另一重要途径。由互相关的定义式可知,x(k)和y(k)的互相关函数可以由序列x(n)和y(-n)的卷枳和求得,实现互相关函数correlation(x,kl,y,k2)运算的程序如下:function[Rxy.n]=conelation(x,kl5yk2)[y0,k0]=sigfold(y,k2);%y(k)反转,生成y(-k)[Rxy,n]=dcouv(x,kl,yO,kO);holdoffsubplot(3,l,l);stem(kl,x,'fill');xlabel(k');ylabel(x(k));subplot。』,2);steni(k2,y,fir);xlabel(k);ylabel(T(k));subplot(3,l,3);stemQLRxy.'flll');xlabel(,n');ylabel(Rxy(n)');例114设一必)=0235上3马为原型序列,y(k)为x(k)加入噪声干扰并移位后的序列:y(k)=x(k-1)+w(k)其中,w(k)为具有零均值和单位方差的高斯序列。计算序列y(k)和x(k)的互相关。解:运行如下M文件,可得如图11.4的结果。kl=・3:3;x=[2351-13!];%生成x(k)[y2.k2]=sigsluft(x,kl,1);%生成x(k-l)w=randn(Llength(y2));%模拟噪声信号w(k)

kw=k2;[y,k]=sigadd(y2,k2,w,kw);%生成y(k)-x(k.1)+w(k)[Rxyai]=conelation(x,k1,y,k)%互相关运算三.实验内容与步骤1.编写1.编写M文件,绘制复指数序列在二^2<范围内町)的实部、虚部、模值和相角的波形图。已知序列人伙)如图H.5(A)所示,编写M文件,绘出如下序列的波形:(1)/;(■奸2),(2)亍02同.1)。己知序列h(k)、Rk)如图11-5所示,编写M文件,求离散卷积和方的湖,并绘出其波形。4-编写M文件,求如图11-5所示序列/!(灯、技k)的互相关函数。(b)(b)图11-5四.实验报告要求列出M文件和运行结果。总结运用函数stem、conv、fliplr以及相关子函数等进行序列表示、运算(相加、相乘、平移、反转、卷积和、相关)和可视化的实现方法。连续信号又称为模拟信号,其信号存在于整个时间范I韦I内,包括单位冲激信号,单位阶跃信号,斜坡信号,实指数信号,正弦信号,指数调制正弦信号,等等。以下我们将这几种常见的连续信号用MATLAB实现。1、单位冲激信号【例1】t=l/A=l/50M,单位脉冲8(t)的MATLAB实现程序如下:cleai-alltl=-0.5:0.001:l;K=3;nl=length(tl);u=zeios(Lnl);t2=-0.5:0.001:0;n2=length(t2);u(n2)=K;plot(tl.u)2、任意函数【例2]脉冲序列:f(n)=0.48(n-2)+0.86(n-l)+1.26(n)+1.56(n+l)+l.08(11+2)+0.76(11+3),其MATLAB实现程序如下:clearallt=-2:l:3;N=length(t);x=zeios(l,N);x(l)=0.4;x(2)=0.8;x(3)=1.2;x(4)=1.5;x(5)=1.0;x(6)=0.7;stem(t.x)axis([-2.23.201.7])3、 单位阶跃函数【例3】单位阶跃函数的MATLAB实现程序:clearallt=-2:0.001:3;t0=0;u=stepfun(tjO);plot(t,u)axis®4-0.21.2])4、 斜坡函数【例4】斜坡函数:g(t)=3(t-l),其MATLAB实现程序如下:clearallt=0:0.001:3;B=3;to=l;u=stepfun(t,tO);n=length(t);fbri=l:nu(i>B*u(i)*(t(i)-tO);endplot(t,u)axis([-0.23.1-0.26.2])5、实指数函数【例5】实指数函数:f(t)=3exp(0.5t),其实现程序:clearallt=0:0.001:3;B=3;A=3;a=0.5;u=A*exp(a*t);plot(t

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论