資源描述:
《matlab表示離散序列》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、信號(hào)分類(lèi)(7.10)tf=6;t=0:0.1:tf;x1=sqrt(t)+cos(t);T=0.5;n=0:tf/T;x2=sqrt(n*T)+cos(n*T);deltax=0.5;xq=round(x2/deltax)*deltax;subplot(1,2,1)plot(t,x1,':')holdongridonplot(n*T,x2,'o')stem(n*T,xq,'*')gridonlegend(連續(xù)信號(hào)xa','離散時(shí)間信號(hào)x','數(shù)字信號(hào)xq')subplot(1,2,2)stairs(n*T,xq)grid
2、onlegend('將數(shù)字信號(hào)采樣保持','恢復(fù)的連續(xù)信號(hào)曲線')set(gcf,'color','w')序列的分類(lèi)表示方法(7.11)1.單位脈沖序列function[x,n]=impseq(np,ns,nf)ifns>np
3、ns>nf
4、np>nferror('輸入位置參數(shù)不滿(mǎn)足ns<=np<=nf')elsen=[ns:nf];x=[(n-np)==0];end2單位階躍序列function[x,n]=stepseq(np,ns,nf)n=[ns:nf];x=[(n-np)>=0];end3基本脈沖序列ns=0;nf
5、=10;np=3;ns3=-2;[x1,n1]=impseq(np,ns,nf);[x2,n2]=stepseq(np,ns,nf);n3=ns3:nf;x3=exp((-0.2+0.5*j)*n3);subplot(2,2,1);stem(n1,x1);title('單位脈沖序列');subplot(2,2,3),stem(n2,x2,'.');title('單位階躍序列')subplot(2,2,2),stem(n3,real(x3),'x');line([-5,10],[0,0])title('復(fù)指數(shù)序列'),yl
6、abel('實(shí)部')subplot(2,2,4),stem(n3,imag(x3),'filled');line([-5,10],[0,0])ylabel('虛部')序列的運(yùn)算和變換1序列和function[y,n]=seqadd(x1,n1,x2,n2)n=min(min(n1),min(n2)):max(max(n1),max(n2));y1=zeros(1,length(n));y1=y2;y1(find((n>=min(n1))&(n<=max(n1))==1))=x1;y2(find((n>=min(n2))&
7、(n<=max(n2))==1))=x2;y=y1+y2;end2序列積function[y,n]=seqmult(x1,n1,x2,n2)n=min(min(n1),min(n2)):max(max(n1),max(n2));y1=zeros(1,length(n));y1=y2;y1(find((n>=min(n1))&(n<=max(n1))==1))=x1;y2(find((n>=min(n2))&(n<=max(n2))==1))=x2;y=y1.*y2;end3序列位移function[y,ny]=seqsh
8、ift(x,nx,k)y=x;ny=nx+k;end4折疊function[y,ny]=seqfold(x,nx)y=fliplr(x);ny=fliplr(nx);end序列運(yùn)算例題n1=[-4:5];x1=1.5*impseq(-1,-4,5)-impseq(3,-4,5);subplot(2,2,1);stem(n1,x1,'.')n2=0:20;x2=n2.*[stepseq(0,0,20)-stepseq(8,0,20)]-10*exp(-0.3*(n2-10)).*[stepseq(10,0,20)-step
9、seq(16,0,20)];subplot(2,2,2);stem(n2,x2,'.')n3=0:30;x3=cos(0.07*pi*n3)+0.2*randn(size(n3));n4=n2;x4=x2.^2;subplot(2,2,3);stem(n3,x3,'.');subplot(2,2,4);stem(n4,x4,'.');序列求和過(guò)程ns1=-2;x1=[0,1,2,3,4,3,2,1,0];nf1=ns1+length(x1)-1;nx1=ns1:nf1;ns2=2;x2=[2,2,0,0,0,-2,-2]
10、;nf2=ns2+length(x2)-1;nx2=ns2:nf2;ny=min(ns1,ns2):max(nf1,nf2);y1=zeros(1,length(ny));y2=y1;y1(find((ny>=ns1&ny<=nf1)==1))=x1;y2(find((ny>=ns2&ny<=nf2)==1))=x2