MATLAB中矩阵序列、指数exp序列、序列卷积、序列相关等函数的使用

        产生不同种离散信号的基本函数主要有:exp--指数函数; sin/cos--正余弦函数;square--方波函数; sawtooth--锯齿波函数。

 一、矩阵函数画图

普通矩阵序列画图如下:

k=[-2:2];
xk=[0,1,1,2,3];
stem(k,xk,'filled');%画茎秆图(序列图),在k的指定位置画x[k]

指数函数画图如下:

a=input('a=');
K=input('K=');
N=input('N=');
k=0:N-1;
y=K*a.^k;
stem(k,y);%以k为横坐标,y为纵坐标,显示离散序列,连线的话时plot函数
xlabel('Time');ylabel('Amplitute');
title(['a=',num2str(a)]);

二、序列的卷积

序列卷积的数学公式:y[k]=x[n]*h[n]=\sum_{n=-\infty }^{\infty }x[n]h[k-n]

%卷积函数:conv(x,h),x与h为参与卷积计算的序列


x=[-0.5,0,0.5,1];%输入序列
kx=-1:2;%序列每个点的序号
h=[1,1,1];%输入序列
kh=-2:0;%序列每个点的序号

y=conv(x,h);%求卷积
k_sta= kx(1)+kh(1);%两个序列的第一个点的序号相加,为卷积后序列的第一个点的序号
k_end= kx(end)+kh(end);%两个序列的最后一个点的序号相加,为卷积后序列的最后一个点的序号
k=k_sta:k_end;%卷积后序列的范围

stem(k,y);%序列画图
xlabel('k');ylabel('y');

运行程序后得到的结果:

三、序列的互相关

 序列相关的互相关公式:

y[k]=\sum_{n = -\infty }^{\infty }x[n]h[k+n]

        =\sum_{n=-\infty }^{\infty }x[n-k]h[n]

        =\sum_{n=-\infty }^{\infty }x[-(k-n)]h[n]

        =x[-n]*h[n]]

即,序列x与序列h的互相关函数,为x[-n]与序列h的卷积。

matlab代码如下:

%相关函数,xcorr(x,h),x与h为参与相关计算的序列

x=[-0.5,0,0.5,1];%x序列
kx=0:3;%%序列每个点的序号
h=[1,1,1,1];%h序列
kh=0:3;%%序列每个点的序号

y=xcorr(h,x);%相关函数,Rxh,相关函数x与h位置不可互换
k_sta= kh(1)-kx(end);%x序列x的最大序号的负数,与序列h的第一个序号相加
k_end= kh(end)-kx(1);%x序列x的最小序号的负数,与序列h的最大序号相加
k=k_sta:k_end;

stem(k,y);%序列画图
xlabel('k');ylabel('y');

运行后结果:

因序列x[n]与h[n]的互相关为x[-n]与h[n]的卷积,因此使用matlab编写上述信号的卷积验证结果是否一致。

%x[-n]与h[n]卷积

x=[1,0.5,0,-0.5];%输入序列
kx=-3:0;%序列每个点的序号
h=[1,1,1,1];%输入序列
kh=0:3;%序列每个点的序号

y=conv(x,h);%求卷积
k_sta= kx(1)+kh(1);%两个序列的第一个点的序号相加,为卷积后序列的第一个点的序号
k_end= kx(end)+kh(end);%两个序列的最后一个点的序号相加,为卷积后序列的最后一个点的序号
k=k_sta:k_end;%卷积后序列的范围

stem(k,y);%序列画图
xlabel('k');ylabel('y');

 

 序列x与序列h的互相关函数,为x[-n]与序列h的卷积,验证成功。

  • 3
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值