卷积、相关(matlab)

您所在的位置:网站首页 用matlab求自相关函数 卷积、相关(matlab)

卷积、相关(matlab)

2023-10-22 01:30| 来源: 网络整理| 查看: 265

本次博客主要是**图示化卷积**过程,能够进一步加深学者在学习过程中对数学卷积的理解。首先,再次回顾

一下利用MATLAB产生指数序列 x[k]=Kαku[k],

a=input('a='); K=input('K='); N=input('N='); k=0:N-1; x=K*a.^k; stem(k,x); xlabel('Time');ylabel('Amplitude'); title(['\alpha=',num2str(a)]); 本博客中令a,K,N分别为0.8,2,31;实验产生的图形为

离散序列的卷积和相关是数字信号处理中的基本运算,MATLAB提供了计算卷积和相关的函数conv和xcorr,调用方式是: y = conv (x, h) y = xcorr (x, h) x, h:分别为参与卷积和相关运算的两个序列; y:返回值是卷积或相关的结果;

下面利用MATLAB函数 conv 计算x = [−0.5, 0, 0.5, 1],h = [1, 1, 1]这两个序列的卷积

x = [-0.5, 0, 0.5, 1]; kx = -1:2; subplot(311),stem(kx,x); h = [1, 1, 1]; kh = -2:0; subplot(312),stem(kh,h); y = conv (x, h); k = kx(1)+kh(1) : kx(end)+kh(end); subplot(313),stem (k, y); xlabel ('k'); ylabel ('y');

在此处要注意一下k的取值范围:

k =

-3 -2 -1 0 1 2

接下来再利用MATLAB函数 xcorr 计算x = [−0.5, 0, 0.5, 1],h = [1, 1, 1]这两个序列的相关。

x = [-0.5, 0, 0.5, 1]; kx = 0:3; subplot(311),stem(kx,x); h = [1, 1, 1, 1]; kh = 0:3; subplot(312),stem(kh,h); y = xcorr (x, h); k = kx(1)-kh(end) : kx(end)-kh(1); subplot(313),stem (k, y); xlabel ('k'); ylabel ('y'); ![](https://img2018.cnblogs.com/blog/1546658/202002/1546658-20200222001256455-1008028989.jpg)

在此处要注意一下k的取值范围:

k =

-3 -2 -1 0 1 2 3 再利用MATLAB函数 xcorr 计算x =[1, 1, 1],h = [−0.5, 0, 0.5, 1]这两个序列的相关(即交换上面

那个例子俩序列的顺序)

自相关

利用MATLAB函数 xcorr 计算x = [−0.5, 0, 0.5, 1]的自相关

x = [-0.5, 0, 0.5, 1]; kx = 0:3; subplot(311),stem(kx,x); h= [-0.5, 0, 0.5, 1]; kh = 0:3; subplot(312),stem(kh,h); y = xcorr (x, h); k = kx(1)-kh(end) : kx(end)-kh(1); subplot(313),stem (k, y);

同理可得x = [1,1,1, 1]的自相关

结果分析部分 从数字信号处理的角度方面来看,自相关运算可以用卷积运算来代替;在此我就不摆复杂公式了,简单的列举

几个结论;

自相关函数:r[-n]=r[n] 偶对称序列,关于x=0对称;可以用xcorr[-n]=xcorr[n]表示;

r[n]在n=0处的数值最大;

互相关函数xcorr[X,Y]=-xcorr[Y,X],可见xcorr[X,Y]与xcorr[Y,X]互为其翻转序列。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3