这篇博文要将的是循环卷积,循环卷积和线性卷积还是有很大区别的,我们都知道,两个N点序列之间的线性卷积会得出一个更长的序列,不得不再一次要将区间限制在 0 <= n <= N -1。因此代替线性移位的是应该考虑循环移位,循环移位我们上面已经讨论了两篇博文:

包含循环移位的卷积运算称为循环卷积,给出:

下面我们根据循环卷积的表达式来使用MATLAB实现循环卷积:

我们的思路是对位于[0,N-1]内的每个n产生一个

序列,并作为矩阵的行,然后将循环卷积的公式作为一个矩阵乘法来实现,这需要一个for循环。

直接给出函数:

function y = circonvt(x1,x2,N)

% N-point circular convolution between x1 and x2:(time - domain)

% ________________________________________________________________

% y = circonvt(x1,x2,N)

% y = output sequence containing the circular convolution

% x1 = input sequence of length N1 <= N

% x2 = input sequence of length N2 <= N

% N = size of circular buffer

% Method y(n) = sum(x1(m)*x2((n-m) mod N))

% Check for length of x1 and x2

%

if length(x1) > N

error('N must be >= the length of x1')

end

if length(x2) > N

error('N must be >= the length of x2')

end

x1 = [x1,zeros(1,N - length(x1))];

x2 = [x2,zeros(1,N - length(x2))];

m = 0:1:N-1;

x2 = x2( mod(-m,N) + 1 );

H = zeros(N,N);

for n=1:N

H(n,:)=cirshftt(x2,n-1,N);

end

y = x1 * H';

验证:

clc

clear

close all

x1 = [1,2,2];

x2 = [1,2,3,4];

y = circonvt(x1,x2,4)

y =

15    12     9    14

不信你就手算,确实是这样的。

这里只是提供了实现循环卷积的一种方法。

不出意外,我应该还会接着写几种方法来实现循环卷积,包括频域方法。

明天又要有任务了,不知道还有没有时间接着写了,真是有毒,每次写到DFT都会有事。

定位走起!

本文同步分享在 博客“李锐博恩”(CSDN)。

如有侵权,请联系 support@oschina.cn 删除。

本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

基于matlab的循环卷积,【 MATLAB 】【 MATLAB 】DFT的性质讨论(三)序列的循环卷积及其 MATLAB 实现...相关推荐

  1. 【 MATLAB 】【 MATLAB 】DFT的性质讨论(三)序列的循环卷积及其 MATLAB 实现

    这篇博文要将的是循环卷积,循环卷积和线性卷积还是有很大区别的,我们都知道,两个N点序列之间的线性卷积会得出一个更长的序列,不得不再一次要将区间限制在 0 <= n <= N -1.因此代替 ...

  2. 【 MATLAB 】DFT的性质讨论(二)序列的循环移位及其 MATLAB 实现(频域方法)

    上篇博文:[ MATLAB ]DFT的性质讨论(二)序列的循环移位及其 MATLAB 实现(时域方法) 提到了对序列x(n)做循环移位后的DFT形式为: 上篇博文已经讨论过了第一种实现循环移位的方法, ...

  3. 【 MATLAB 】DFT的性质讨论(二)序列的循环移位及其 MATLAB 实现(时域方法)

    如果一个N点序列在任一方向上移位,那么其结果都不在是位于 0 < = n <= N-1之间.因此,需要进行下面的操作: 为了形象化,可以设想将序列x(n)放在一个圆上,现在将这个圆旋转k个 ...

  4. 【 MATLAB 】DFT性质讨论(一)线性、循环反转、共轭与实序列的对称性的MATLAB实现

    上篇博文通过在理论上讨论了DFT的三个性质:[ MATLAB ]DFT性质讨论(一)线性.循环反转与共轭 分别讨论: 一.线性 给出一个例子,给出x1和x2,x3 = 0.3*x1+0.8*x2; 之 ...

  5. matlab中idfs,【 MATLAB 】离散傅里叶变换(DFT)以及逆变换(IDFT)的MATLAB实现

    刚刚写过一篇用MATLAB实现离散傅里叶级数的博文,如下: 离散傅里叶变换不是一种神奇的东西,它和离散傅里叶级数关系很紧密,紧密到使用MATLAB编写离散傅里叶变换以及逆变换的函数一模一样,只需改个名 ...

  6. 【 MATLAB 】离散傅里叶变换(DFT)以及逆变换(IDFT)的MATLAB实现

    刚刚写过一篇用MATLAB实现离散傅里叶级数的博文,如下: [ MATLAB ]离散傅里叶级数(DFS)及 IDFS 的 MATLAB 实现 离散傅里叶变换不是一种神奇的东西,它和离散傅里叶级数关系很 ...

  7. 【LSSVM分类】基于matlab灰狼算法优化LSSVM分类(多输入多分类)【含Matlab源码 1558期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[LSSVM分类]基于matlab灰狼算法优化LSSVM分类(多输入多分类)[含Matlab源码 1558期] 获取代码方式2: 付费专栏 ...

  8. 【车牌识别】基于matlab GUI BP神经网络车牌识别(带面板+语音播报)【含Matlab源码 1220期】

    ⛄一.BP车牌识别简介(附课程作业报告) 车牌识别系统设计与实现 车牌识别系统主要分为三部分:车牌图像预处理.特征提取以及基于BP神经网络对特征进行训练和分类,流程图如图1所示. 图1 车牌识别系统组 ...

  9. 基于电容电流前馈与电网电压全前馈的单相LCL并网逆变器谐波抑制MATLAB仿真(电压比例反馈及一二次微分反馈)

    基于电容电流前馈与电网电压全前馈的单相LCL并网逆变器谐波抑制MATLAB仿真(电压比例反馈及一二次微分反馈)资源-CSDN文库https://download.csdn.net/download/w ...

最新文章

  1. Linux shell命令总结
  2. Android热更新实现方式
  3. xp安装mysql5.5.28_Windows XP系统安装MySQL5.5.28图解
  4. 2012 Multi-University Training Contest 3
  5. 某项目网络实施中的几个关键点解析
  6. Scikit-learn 秘籍 翻译完成
  7. 网工年薪100w+,你在哪个阶段?
  8. 用css sprites(图像拼合技术)优化css加快网站速度[转]
  9. 微型计算机常用的分区格式,教你分出整数的硬盘分区
  10. boost::lexical_cast 学习小记
  11. 华为nova6se怎么升级鸿蒙,华为EMUI11支持哪些手机
  12. react笔记_07组件实例化对象的三大属性
  13. 霓虹灯(light)
  14. The server time zone value 'EDT' is unrecognized or represents more than one time zone.
  15. TVS管 具体原理和作用
  16. 什么是渲染? 通俗易懂的理解
  17. 记录在阿L做外包的日子,给正在(金三银四)的你一点经验
  18. 各大厂软件测试面试题+答案纯干货
  19. NXP(Freescale) QorIQ T2080 Memory Map分析
  20. c语言括号表示法画树怎么画,树的画法分类讲解

热门文章

  1. dpdk pci设备初始化
  2. LeetCode 每日一题 2022/7/25-2022/7/31
  3. 2012第三届国信蓝点杯全国软件设计大赛编程大题
  4. java实施工程师的求职信_软件工程师英文求职信样本 .doc
  5. 掌柜星新零售解决方案为母婴亲子行业商家助力
  6. 10月23日,相约全球边缘计算大会·上海站
  7. 付费云存储,微信的登云梯还是蜀道难?
  8. 2022国内电子邮箱营销平台哪家好,邮件群发软件有何优点,案例分享
  9. 【“让Lync飞”起来】实现Lync Server 2010企业版部署环境
  10. SEAM IN ACTION有空就翻翻