卷积的循环矩阵求解方法

通常我们求解一维卷积或者二维卷积都是采用模板平移的方法,今天我们介绍一种新的求解方法,可以一次性求出所有的结果。

一维卷积

卷积定义

对于两个长度分别为m和n的序列x(i)和g(i)有,

h(i)=x(i)g(i)=jx(j)g(ij)

上式给出了长度为N=m+n-1的输出序列。称为一维情况下的卷积公式。

循环矩阵

参考百度百科:
在线性代数中,循环矩阵是一种特殊形式的 Toeplitz矩阵,它的行向量的每个元素都是前一个行向量各元素依次右移一个位置得到的结果。由于可以用离散傅立叶变换快速解循环矩阵,所以在数值分析中有重要的应用。

定义

形式为




的 矩阵 C 就是循环矩阵。

性质

循环矩阵的性质:
1. 循环矩阵遵循代数运算法则。对于两个循环矩阵 A 与 B 来说,A + B 也是循环矩阵。AB 也是循环矩阵,并且 AB=BA。
2. 循环矩阵的特征向量矩阵是同样维数的离散傅立叶变换矩阵,因此循环矩阵的特征值可以很容易地通过快速傅立叶变换计算出来。

循环矩阵求解卷积

按照定义,卷积后的序列长为N=m+n-1;
于是分别用0扩充序列x,g,分别为:

xp(i)={x(i)01xmm<iN

gp(i)={g(i)01xnn<iN

由于是用g去卷积f,所以构造g的循环矩阵:
G=gp(1)gp(2)gp(N)gp(N)gp(1)gp(N1)gp(N1)gp(2)gp(N2)gp(2)gp(3)gp(1)

h=Gxp=gp(1)gp(2)gp(N)gp(N)gp(1)gp(N1)gp(N1)gp(2)gp(N2)gp(2)gp(3)gp(1)xp(1)xp(2)xp(N)

则h就是卷积后的向量。

二维卷积

卷积定义



循环矩阵求解方法




举例






参考文献

  1. 北大高级遥感数字图像处理(硕士生课程)
  2. 离散卷积与自相关


打赏

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/258813.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Windows 10 开发日记(五)-- 当Binding遇到异步 -- 解决方案

前文再续&#xff0c;上一章提出了问题&#xff0c;本章提出了三种解决方案&#xff1a; 解决方案一&#xff1a;手动进行异步转换,核心思想:将binding做的事情放入CodeBehind FilterItemControl.XAML: <Grid><Image x:Name"FilterImage" Stretch"Unif…

fseek

int fseek( FILE *stream, long offset, int origin );第一个参数stream为文件指针第二个参数offset为偏移量&#xff0c;正数表示正向偏移&#xff0c;负数表示负向偏移第三个参数origin设定从文件的哪里开始偏移,可能取值为&#xff1a;SEEK_CUR、 SEEK_END 或 SEEK_SETSEEK_…

static_cast, dynamic_cast, const_cast探讨【转】

首先回顾一下C类型转换&#xff1a; C类型转换分为&#xff1a;隐式类型转换和显式类型转换 第1部分. 隐式类型转换又称为“标准转换”&#xff0c;包括以下几种情况&#xff1a;1) 算术转换(Arithmetic conversion) : 在混合类型的算术表达式中, 最宽的数据类型成为目标转换类…

RANSAC算法注记

今天学习了一下RANSAC随机样本一致性算法&#xff0c;其在图像融合、特征点匹配方面有很强大的应用。网上已经有很多人写了关于这方面的文档&#xff0c;就不再造轮子了。特此罗列出来&#xff0c;以供后续参考。 我的数学之美&#xff08;一&#xff09;——RANSAC算法详解 …

python字典格式_python – 格式self,这是一个字典

在这种情况下如何使格式(自我)工作&#xff1f;class Commit:number Nonesha Nonemessage Noneidentity Nonedef __init__(self, raw, number):r raw.commits[number]self.number numberself.sha r[sha]self.message r[message]self.identity raw.identities[r[identi…

委托的BeginInvoke和EndInvoke

刚刚搞明白了C#的异步调用&#xff0c;写下来&#xff0c;方便后续调用。 异步主要是解决UI假死的问题&#xff0c;而开辟出一个新的线程&#xff0c;处理大数据。 1.既然是委托的调用&#xff0c;那么先定义个委托&#xff1a; public delegate bool CheckUpdateFile(); 2.定义…

PMP 第七章 项目成本管理

估算成本 制定预算 控制成本 1.成本管理计划的内容和目的是什么? 包括对成本进行估算 预算和控制的各过程&#xff0c;从而确保项目在批准的预算内完工。 2.直接成本、间接成本、可变成本、固定成本、质量成本的内容分别是什么?成本估算的工具有哪些? 成本估算工具 1…

您的请求参数与订单信息不一致_[淘客订单检测]淘宝客订单检测接口,淘客订单查询API...

功能1.输入交易的订单编号&#xff0c;即可查询该订单是否为淘宝客订单。有意向请联系卫星weixiaot168。2.查询结果 0:不是淘宝客订单&#xff1b;1:是。3.根据淘宝官方的后台数据&#xff0c;进行检测&#xff0c;数据真实且有效。4.有效防止佣金损失&#xff0c;降低商家补单…

DebugView输出调试信息

在写windows程序时&#xff0c;需要输出一些调试信息&#xff0c;这里介绍一种极其方便的方法。即使用OutputDebugString 在Debug模式下输出调试信息&#xff0c;在Release模式下不输出。 我们可以在VS的集成平台上输出调试信息&#xff0c;也可以使用DebugView来查看调试信息…

Linux上实现ssh免密码登陆远程服务器

0.说明平常使用ssh登陆远程服务器时&#xff0c;都需要使用输入密码&#xff0c;希望可以实现通过密钥登陆而免除输入密码&#xff0c;从而可以为以后实现批量自动部署主机做好准备。环境如下&#xff1a;IP地址操作系统服务器端10.0.0.128/24CentOS 6.5 x86客户端10.0.0.129/2…

【强连通分量+概率】Bzoj2438 杀人游戏

Description 一位冷血的杀手潜入 Na-wiat&#xff0c;并假装成平民。警察希望能在 N 个人里面&#xff0c;查出谁是杀手。 警察能够对每一个人进行查证&#xff0c;假如查证的对象是平民&#xff0c;他会告诉警察&#xff0c;他认识的人&#xff0c; 谁是杀手&#xff0c; 谁是…

serialversionuid的作用_为什么阿里Java规约要求谨慎修改serialVersionUID字段

serialVersionUID简要介绍serialVersionUID是在Java序列化、反序列化对象时起作用的一个字段。Java的序列化机制是通过判断类的serialVersionUID来验证版本一致性的。在进行反序列化时&#xff0c;JVM会把传来的字节流中的serialVersionUID与本地相应实体类的serialVersionUID进…

fatal error LNK1169: 找到一个或多个多重定义的符号 的解决方案

昨天&#xff0c;尝试一个项目&#xff0c;遇到了如下的问题。先来还原一下&#xff1a; 头文件test.h #pragma once #include <Eigen/Core> #include <iostream>using namespace Eigen; using namespace std;class point2 { public: point2(int x1,int y1):x(x…

常用工具说明--搭建基于rietveld的CodeReview平台(未测试)

为什么要codereview . 整个团队的编码风格是统一的。 . 有高手能对自己的代码指点一二&#xff0c;从而提高编码水平。 . 减少低级错误的出现 . 约束自己写高质量的代码&#xff0c;因为是要给人看的。 我们对codereview的需求 . 很轻松可以发布自己写的代码。 . 很轻松的可以与…

输入的优化

读入整型时&#xff0c;输入优化可以节省不少时间 1 typedef type long long 2 // 这里以long long为例 3 type read() { 4 type x0; int f1; 5 char chgetchar(); 6 while(ch<0||ch>9) {if(ch-) f-1; chgetchar();} 7 while(ch>0&&ch<9) …

python股票分析系统_熬了一晚上,小白用Python写了一个股票提醒系统

码农小马七夕节去相亲了&#xff0c;见了一个不错的姑娘&#xff0c;长的非常甜美&#xff01;聊着聊着很投缘&#xff01;通过介绍人了解到&#xff0c;对方也很满意&#xff5e;&#xff5e;想着自己单身多年的生活就要结束啦&#xff0c;心里满是欢喜&#xff0c;美美哒&…

有关eigen库的一些基本使用方法

目录 介绍安装Demo矩阵、向量初始化C数组和矩阵转换矩阵基础操作点积和叉积转置、伴随、行列式、逆矩阵计算特征值和特征向量解线性方程最小二乘求解稀疏矩阵介绍 Eigen是一个轻量级的矩阵库,除了稀疏矩阵不成熟&#xff08;3.1有较大改进&#xff09;以外,其他的矩阵和向量操作…

汇编程序:将字符串中所有大写字符转为小写

【任务】 编写程序&#xff0c;将数据区中定义的以0作为结束符的一个字符串中所有的大写字符&#xff0c;全部转换为小写。 【参考解答】 assume cs:cseg, ds:dseg, ss:sseg sseg segment stackdw 100h dup (?) sseg ends dseg segmentdb YanTai123University, 0 d…

从零开始编写自己的C#框架(1)——前言

记得十五年前自学编程时&#xff0c;拿着C语言厚厚的书&#xff0c;想要上机都不知道要用什么编译器来执行书中的例子。十二年前在大学自学ASP时&#xff0c;由于身边没有一位同学和朋友学习这种语言&#xff0c;也只能整天混在图收馆里拼命的啃书。而再后来也差不多&#xff0…

Bash内置命令

Bash有很多内置命令&#xff0c;因为这些命令是内置的&#xff0c;因此bash不需要在磁盘上为它们定位&#xff0c;执行速度更快。 1&#xff09;列出所有内置命令列表$enable 2&#xff09;关闭内置命令test$enable -n test 3&#xff09;打开内置命令test$enable test 4&…