卷积、相关(matlab)

卷积、相关


本次博客主要是 图示化卷积过程,能够进一步加深学者在学习过程中对数学卷积的理解。首先,再次回顾一下利用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');

在这里插入图片描述
在此处要注意一下k的取值范围:

k =

    -3    -2    -1     0     1     2     3

再利用MATLAB函数 xcorr 计算x =[1, 1, 1],h = [−0.5, 0, 0.5, 1]这两个序列的相关(即交换上面那个例子俩序列的顺序)

在这里插入图片描述可见,xcorr(x,h)=xcorr(h,x).
自相关
利用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]互为其翻转序列。

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Matlab中,可以使用conv()函数进行卷积积分计算。conv()函数用于计算离散序列卷积和,但是可以通过构造函数conv()来实现连续信号的卷积积分。使用conv(x,h)可以计算序列x和h的卷积,其中假定两个序列都是从n=0开始,卷积结果序列Y的长度为两个序列长度之和减1。 举个例子,如果要计算两个指数信号f1(t) = e^(-6t)和f2(t) = e^(-3t)的卷积,可以使用以下代码: t=0:0.01:1; y1 = exp(-6*t); y2 = exp(-3*t); y = conv(y1,y2); l1 = length(y1); l2 = length(y2); l = length(y); subplot(3,1,1); plot(t, y1); subplot(3,1,2); plot(t, y2); t1 = 0 :0.01:2; subplot(3,1,3); plot(t1, y); 卷积神经网络(CNN)是一种神经网络结构,用于解决图像识别系统和分类问题。CNN在图像和视频识别、推荐系统和自然语言处理等领域有着广泛的应用。在Matlab中,可以使用卷积操作来实现卷积神经网络的计算。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [《信号与系统》3.5.3卷积积分的 Matlab实现](https://blog.csdn.net/qq_32589131/article/details/104907265)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [卷积神经网络教程 (CNN) 使用 TensorFlow 在 Python 中开发图像分类器](https://download.csdn.net/download/wly476923083/88230143)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq-120

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值