基于matlab的循环卷积,【 MATLAB 】【 MATLAB 】DFT的性质讨论(三)序列的循环卷积及其 MATLAB 实现...
这篇博文要将的是循环卷积,循环卷积和线性卷积还是有很大区别的,我们都知道,两个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 实现...相关推荐
- 【 MATLAB 】【 MATLAB 】DFT的性质讨论(三)序列的循环卷积及其 MATLAB 实现
这篇博文要将的是循环卷积,循环卷积和线性卷积还是有很大区别的,我们都知道,两个N点序列之间的线性卷积会得出一个更长的序列,不得不再一次要将区间限制在 0 <= n <= N -1.因此代替 ...
- 【 MATLAB 】DFT的性质讨论(二)序列的循环移位及其 MATLAB 实现(频域方法)
上篇博文:[ MATLAB ]DFT的性质讨论(二)序列的循环移位及其 MATLAB 实现(时域方法) 提到了对序列x(n)做循环移位后的DFT形式为: 上篇博文已经讨论过了第一种实现循环移位的方法, ...
- 【 MATLAB 】DFT的性质讨论(二)序列的循环移位及其 MATLAB 实现(时域方法)
如果一个N点序列在任一方向上移位,那么其结果都不在是位于 0 < = n <= N-1之间.因此,需要进行下面的操作: 为了形象化,可以设想将序列x(n)放在一个圆上,现在将这个圆旋转k个 ...
- 【 MATLAB 】DFT性质讨论(一)线性、循环反转、共轭与实序列的对称性的MATLAB实现
上篇博文通过在理论上讨论了DFT的三个性质:[ MATLAB ]DFT性质讨论(一)线性.循环反转与共轭 分别讨论: 一.线性 给出一个例子,给出x1和x2,x3 = 0.3*x1+0.8*x2; 之 ...
- matlab中idfs,【 MATLAB 】离散傅里叶变换(DFT)以及逆变换(IDFT)的MATLAB实现
刚刚写过一篇用MATLAB实现离散傅里叶级数的博文,如下: 离散傅里叶变换不是一种神奇的东西,它和离散傅里叶级数关系很紧密,紧密到使用MATLAB编写离散傅里叶变换以及逆变换的函数一模一样,只需改个名 ...
- 【 MATLAB 】离散傅里叶变换(DFT)以及逆变换(IDFT)的MATLAB实现
刚刚写过一篇用MATLAB实现离散傅里叶级数的博文,如下: [ MATLAB ]离散傅里叶级数(DFS)及 IDFS 的 MATLAB 实现 离散傅里叶变换不是一种神奇的东西,它和离散傅里叶级数关系很 ...
- 【LSSVM分类】基于matlab灰狼算法优化LSSVM分类(多输入多分类)【含Matlab源码 1558期】
⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[LSSVM分类]基于matlab灰狼算法优化LSSVM分类(多输入多分类)[含Matlab源码 1558期] 获取代码方式2: 付费专栏 ...
- 【车牌识别】基于matlab GUI BP神经网络车牌识别(带面板+语音播报)【含Matlab源码 1220期】
⛄一.BP车牌识别简介(附课程作业报告) 车牌识别系统设计与实现 车牌识别系统主要分为三部分:车牌图像预处理.特征提取以及基于BP神经网络对特征进行训练和分类,流程图如图1所示. 图1 车牌识别系统组 ...
- 基于电容电流前馈与电网电压全前馈的单相LCL并网逆变器谐波抑制MATLAB仿真(电压比例反馈及一二次微分反馈)
基于电容电流前馈与电网电压全前馈的单相LCL并网逆变器谐波抑制MATLAB仿真(电压比例反馈及一二次微分反馈)资源-CSDN文库https://download.csdn.net/download/w ...
最新文章
- Linux shell命令总结
- Android热更新实现方式
- xp安装mysql5.5.28_Windows XP系统安装MySQL5.5.28图解
- 2012 Multi-University Training Contest 3
- 某项目网络实施中的几个关键点解析
- Scikit-learn 秘籍 翻译完成
- 网工年薪100w+,你在哪个阶段?
- 用css sprites(图像拼合技术)优化css加快网站速度[转]
- 微型计算机常用的分区格式,教你分出整数的硬盘分区
- boost::lexical_cast 学习小记
- 华为nova6se怎么升级鸿蒙,华为EMUI11支持哪些手机
- react笔记_07组件实例化对象的三大属性
- 霓虹灯(light)
- The server time zone value 'EDT' is unrecognized or represents more than one time zone.
- TVS管 具体原理和作用
- 什么是渲染? 通俗易懂的理解
- 记录在阿L做外包的日子,给正在(金三银四)的你一点经验
- 各大厂软件测试面试题+答案纯干货
- NXP(Freescale) QorIQ T2080 Memory Map分析
- c语言括号表示法画树怎么画,树的画法分类讲解
热门文章
- dpdk pci设备初始化
- LeetCode 每日一题 2022/7/25-2022/7/31
- 2012第三届国信蓝点杯全国软件设计大赛编程大题
- java实施工程师的求职信_软件工程师英文求职信样本 .doc
- 掌柜星新零售解决方案为母婴亲子行业商家助力
- 10月23日,相约全球边缘计算大会·上海站
- 付费云存储,微信的登云梯还是蜀道难?
- 2022国内电子邮箱营销平台哪家好,邮件群发软件有何优点,案例分享
- 【“让Lync飞”起来】实现Lync Server 2010企业版部署环境
- SEAM IN ACTION有空就翻翻