数字信号处理实验 matlab 离散序列(一)

单位冲激序列

function dwxl(k1,k2,k0)  %定义函数
k=k1:k2;                 
n=length(k);
f=zeros(1,n);
f(1,-k0-k1+1)=1;           %在k0时刻,信号赋值为1
stem(k,f,'filled')         %以实心的方式
axis([k1,k2,0,1.5])        %限制X,Y轴范围 
title('单位序列')

单位阶跃序列

function jyxl(k1,k2,k0) 
k=k1:-k0-1;
kk=-k0:k2;
n=length(k);
nn=length(kk);
u=zeros(1,n);
uu=ones(1,nn);
stem(kk,uu,'filled')
hold on
stem(k,u,'filled')
hold off
axis([k1,k2,0,1.5])
title('单位阶跃序列')

正弦序列

k=0:40;
subplot(2,1,1)
stem(k,cos(k*pi/8),'filled')
title('cos(k*pi/8)')
subplot(2,1,2)
stem(k,cos(2*k),'filled')
title('cos(2*k)')

图像:在这里插入图片描述
指数序列

function dszs(c,a,k1,k2)  %幅度 底数 起始序号 终止序号  
k=k1:k2;
x=c*(a.^k);
stem(k,x,'filled')
hold on
plot([k1,k2],[0,0])
hold off

离散序列相加

function[f,k]=lsadd(f1,f2,k1,k2)
k=min(min(k1),min(k2)):max(max(k1),max(k2));
s1=zeros(1,length(k));
s2=s1;
s1(find((k>=min(k1))&(k<=max(k1))==1))=f1;
s2(find((k>=min(k2))&(k<=max(k2))==1))=f2;
f=s1+s2;
stem(k,f,'filled')
axis([(min(min(k1),min(k2)-1)),(max(max(k1),max(k2))+1),(min(f)-0.5),(max(f)+0.5)])

离散序列相乘

function[f,k]=lsmul(f1,f2,k1,k2)
k=min(min(k1),min(k2)):max(max(k1),max(k2));
s1=zeros(1,length(k));
s2=s1;
s1(find((k>=min(k1))&(k<=max(k1))==1))=f1;
s2(find((k>=min(k2))&(k<=max(k2))==1))=f2;
f=s1.*s2;
stem(k,f,'filled')
axis([(min(min(k1),min(k2)-1)),(max(max(k1),max(k2))+1),(min(f)-0.5),(max(f)+0.5)])

离散序列反褶

function[f,k]=lsfz(f1,k1)
f=fliplr(f1);
k=-fliplr(k1);
stem(k,f,'filled')
axis([min(k)-1,max(k)+1,min(f)-0.5,max(f)+0.5])

离散序列平移

function[f,k]=lsyw(ff,kk,k0)
k=kk+k0;
f=ff;
stem(k,f,'filled')
axis([min(k)-1,max(k)+1,min(f)-0.5,max(f)+0.5])

离散序列的倒相变换

function[f,k]=lsdx(ff,kk)
k=kk;
f=-ff;
stem(k,f,'filled')
axis([min(k)-1,max(k)+1,min(f)-0.5,max(f)+0.5])

例题:
在这里插入图片描述
实现代码

k=-4:5
f=[0,0,1,2,3,3,3,3,0,0]
stem(k,f,'filled')
subplot(2,3,1)
axis([min(k)-1,max(k)+1,min(f)-0.5,max(f)+0.5])
title('f(k)');
subplot(2,3,2)
[f1,k1]=lsyw(f,k,2);
g=[zeros(1,4),ones(1,6)]  %g=jyxl(-2,3,0)报错
lsmul(f1,g,k1,k)
title('f(k-2)u(k)');
subplot(2,3,3)
[f2,k2]=lsfz(f,k);
title('f(-k)');
subplot(2,3,4)
[f3,k3]=lsyw(f2,k2,-2);
title('f(-k+2)');
subplot(2,3,5)
[g1,k4]=lsyw(g,k,2)
lsmul(f1,g1,k1,k4)
title('f(k-2)u(k-2)');

图像:
在这里插入图片描述


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部