线性和循环卷积

此示例说明如何建立线性卷积和循环卷积之间的等效关系。

线性卷积和循环卷积是本质不同的运算。然而,在某些条件下,线性卷积和循环卷积是等效的。建立这种等效关系具有重要意义。对于两个向量 x 和 y,循环卷积等于二者的离散傅里叶变换 (DFT) 之积的逆 DFT 变换。了解线性卷积和循环卷积等效的条件,可让您使用 DFT 来高效地计算线性卷积。

包含 N 个点的向量 x 和包含 L 个点的向量 y 的线性卷积长度为 N + L - 1。

为了使 x 和 y 的循环卷积与之等效,在进行 DFT 之前,必须用零填充向量,使长度至少为 N + L - 1。对 DFT 的积求逆后,只保留前 N + L - 1 个元素。

创建两个向量 x 和 y,并计算两个向量的线性卷积。

x = [2 1 2 1];

y = [1 2 3];

clin = conv(x,y);

输出长度为 4+3-1。

用 0 填充两个向量,使长度为 4+3-1。求出两个向量的 DFT,将其相乘,并求乘积的逆 DFT。

xpad = [x zeros(1,6-length(x))];

ypad = [y zeros(1,6-length(y))];

ccirc = ifft(fft(xpad).*fft(ypad));

填零后的向量 xpad 和 ypad 的循环卷积等效于 x 和 y 的线性卷积。保留 ccirc 的所有元素,因为输出长度为 4+3-1。

绘制线性卷积的输出和 DFT 之积的逆,以显示二者等效。

subplot(2,1,1)

stem(clin,'filled')

ylim([0 11])

title('Linear Convolution of x and y')

subplot(2,1,2)

stem(ccirc,'filled')

ylim([0 11])

title('Circular Convolution of xpad and ypad')

将向量填充到长度为 12,并使用 DFT 之积的逆 DFT 求得循环卷积。仅保留前 4+3-1 个元素,以产生与线性卷积等效的结果。

N = length(x)+length(y)-1;

xpad = [x zeros(1,12-length(x))];

ypad = [y zeros(1,12-length(y))];

ccirc = ifft(fft(xpad).*fft(ypad));

ccirc = ccirc(1:N);

Signal Processing Toolbox™ 软件提供了函数 cconv,该函数返回两个向量的循环卷积。您可以通过以下代码使用循环卷积来求 x 和 y 的线性卷积。

ccirc2 = cconv(x,y,6);

cconv 内部使用的就是上例中基于 DFT 的步骤。

matlab怎么实现循环,线性和循环卷积 - MATLAB Simulink - MathWorks 中国相关推荐

  1. matlab对信号积分,对信号求积分 - Simulink - MathWorks 中国

    说明 Integrator 模块输出其输入信号相对于时间的积分值. Simulink® 将 Integrator 模块作为具有一种状态的动态系统进行处理.模块动态由以下方程指定: {x˙(t)=u(t ...

  2. 线性最小二乘法拟合 matlab程序,曲线拟合的线性最小二乘法及其MATLAB程序

    1 曲线拟合的线性最小二乘法及其MATLAB 程序 例7.2.1 给出一组数据点),(i i y x 列入表7–2中,试用线性最小二乘法求拟合曲线,并用(7.2),(7.3)和(7.4)式估计其误差, ...

  3. matlab 低级图形错误,解决低级图形问题 - MATLAB Simulink - MathWorks 中国

    选择适合您的系统的渲染器实现 MATLAB 显示所用的图形渲染器实现是硬件加速.基础硬件加速还是软件.默认情况下,MATLAB 会尝试使用硬件加速实现(如果您的图形硬件支持).您可以通过切换到软件实现 ...

  4. matlab出现无限循环警告,[求助] 关于matlab无限循环的问题

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 各路大神,求助啊啊啊啊~ 以下是我的代码: n=0 for i=1:length(NAXLES) if CODE(i)==0 n=n+1 GVM1(n)= ...

  5. 初始化稀疏矩阵 matlab,访问稀疏矩阵 - MATLAB Simulink - MathWorks 中国

    稀疏矩阵运算中的索引 由于稀疏矩阵是以压缩稀疏列格式存储的,因此为稀疏矩阵进行索引的相关成本与为满矩阵进行索引的相关成本不同.在只需更改稀疏矩阵中的若干元素时,这类成本可忽略不计,因此,在这类情况下, ...

  6. matlab表达式,表达式 - MATLAB Simulink - MathWorks 中国

    数组运算符 如果矩阵不用于线性代数运算,则成为二维数值数组.数组的算术运算按元素执行.这意味着,加法和减法运算对数组和矩阵都是相同的,但乘法运算不相同.MATLAB 的乘法数组运算表示法中包含点,也就 ...

  7. matlab怎么没有编辑器,实时编辑器介绍 - MATLAB Simulink - MathWorks 中国

    添加人口统计数据 将实时脚本划分为多个节.每一节均可以包含文本.代码和输出.MATLAB 代码显示为灰色背景,输出显示为白色背景.要创建新的节,请转至实时编辑器选项卡,然后点击分节符按钮. 添加 19 ...

  8. 如何用MATLAB绘制真值表,编写真值表 - MATLAB Simulink - MathWorks 中国

    编写真值表 在创建新真值表后,您就可以对它进行编写以根据您的设定执行.要编写真值表,您需要添加条件.决策和动作.有关创建真值表的详细信息,请参阅使用真值表对组合逻辑建模. 真值表仅在 Simulink ...

  9. matlab memory 代数环,代数环概念 - MATLAB Simulink - MathWorks 中国

    代数环求解器的工作原理 当模型中包含代数环时,Simulink 在每个时间步使用非线性求解器解算代数环.求解器执行迭代以确定代数约束的解(如果存在).因此,有代数环的模型的运行速度可能比没有代数环的模 ...

最新文章

  1. R语言使用caret包构建gbdt模型(随机梯度提升树、Stochastic Gradient Boosting )构建回归模型、通过method参数指定算法名称
  2. 进程——Windows核心编程学习手札系列之四
  3. 从 Word2Vec 到 BERT
  4. python中bar的用法_python使用matplotlib绘图 -- barChart
  5. 洛谷 深基 第4部分 基础数学与数论(19-21课)
  6. 深入理解 C 语言的函数调用过程
  7. 简单介绍Spring是什么?
  8. 非参数统计的Python实现—— Friedman 秩方差分析
  9. [Linux基础]读书笔记-老男孩核心系统命令实战1
  10. 数学建模——论文排版
  11. 物联网定位系统:GPS、WiFi、基站、RFID…
  12. Python制作牛奶冻
  13. 性能第二讲:性能优化-每个程序员都应该知道的数字
  14. python安装you—get_解决you-get安装中的一些小问题(升级pip,安装报错怎么办)...
  15. 网站另类推广玩法心得
  16. 世界杯---人生就是一届又一届世界杯
  17. Linux(Ubuntu)配置防火墙
  18. CSS3属性之text-overflow:ellipsis详解
  19. 内容超出div,设置滚动条
  20. Allegro DFM Ravel Rule工具使用指导书

热门文章

  1. 用计算机解决逻辑推理问题,逻辑推理问题解决.doc
  2. 思科 计算机网络 第一章测试考试
  3. 使用内连接查询选修了Java程序基础_使用内连接 查询选修了“java程序基础”课程的学生学号、姓名、课程号、课程名和期末成绩_学小易找答案...
  4. 网众无盘服务器架设,网众无盘6.0服务器负载控制教程
  5. 爬取搜狗输入法的医学词库 下载.scel格式文件
  6. Fine-grained Detection —— JP-MT、WS-DAN
  7. 计算机毕业设计asp.net的酒店管理系统(源码+系统+mysql数据库+Lw文档)
  8. 12种淘宝收藏加购方法 如何提高淘宝收藏加购?
  9. 全新万能PDF转换器官方免费下载
  10. win2008 r2 安装sqlserver 2000