线性卷积和圆周卷积

文章目录

  • 【 1. 线性卷积 】
    • 1.1 图解分析
    • 1.2 矩阵相乘实现线性卷积
    • 1.3 圆周卷积实现线性卷积
    • 1.4 实例:线性卷积的两种实现方法
  • 【 2. 圆周卷积 】
    • 2.1 图解分析
    • 2.2 矩阵相乘实现圆周卷积
    • 2.3 频域点乘实现圆周卷积
    • 2.4 实例:圆周卷积两种实现方法
  • 【 3. 线性卷积和圆周卷积的等价 】
  • 【 4. 卷积定理 】
    • 4.1 时域卷积定理
    • 4.2 频域卷积定理

【 1. 线性卷积 】

  • f(n) 的长度为 P,g(n) 的长度为 Q,则 f ( n ) ∗ g ( n ) f(n)*g(n) f(n)g(n) 的长度为 L=P+Q-1。
    线性卷积: f ( n ) ∗ g ( n ) = ∑ k = 0 L − 1 f ( k ) g ( n − k ) = ∑ k = 0 L − 1 g ( k ) f ( n − k ) = g ( n ) ∗ f ( n ) 线性卷积:f(n)*g(n)=\sum\limits_{k=0}^{L-1}f(k)g(n-k)=\sum\limits_{k=0}^{L-1}g(k)f(n-k)=g(n)*f(n) 线性卷积:f(n)g(n)=k=0L1f(k)g(nk)=k=0L1g(k)f(nk)=g(n)f(n)

1.1 图解分析

  • 假设 f(n) 和 g(n) 如下图所示:
    f(n)=[3,1,4,5],n=0,1,2,3
    g(n)=[1,2,3],n=0,1,2
    在这里插入图片描述
  • 将 g(n) 和 h(n) 变换坐标为 g(k) 和 f(k)。 g(k) 翻转为 g(-k),再向右滑动 n 变为 g(-(k-n))=g(n-k),然后将对应相同位置的 g(n-k) 和 f(k) 相乘,最后将所有的乘积结果求和得到卷积结果 g ( n ) ∗ f ( n ) g(n)*f(n) g(n)f(n)
    y(0)=1x3+2x0+3x0=3
    y(1)=1x1+2x3+3x0=7
    y(2)=1x4+2x1+3x3=15
    y(3)=1x5+2x4+3x1=16
    y(4)=1x0+2x5+3x4=22
    y(5)=1x0+2x0+3x5=15
    在这里插入图片描述

1.2 矩阵相乘实现线性卷积

  • 假设求信号 R(长度为P) 和信号 G(长度为Q) 的 线性卷积,则将两个信号都尾补零到长度 L(L=P+Q-1),然后按照如下矩阵相乘的方式进行线性卷积的运算。

{ r 1 0 0 ⋯ 0 r 2 r 1 0 ⋯ 0 r 3 r 2 r 1 ⋯ 0 ⋮ ⋮ ⋮ ⋮ ⋮ r L r L − 1 ⋯ r 2 r 1 } × { h 1 h 2 h 3 ⋮ h L } \begin{Bmatrix}r_1&0&0&\cdots&0\\ r_2&r_1&0&\cdots&0\\ r_3&r_2&r_1&\cdots&0\\ \vdots&\vdots&\vdots&\vdots&\vdots\\ r_L&r_{L-1}&\cdots& r_2&r_1\end{Bmatrix}\times \begin{Bmatrix} h_1\\h_2\\h_3\\\vdots\\h_L \end{Bmatrix} r1r2r3rL0r1r2rL100r1

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

题目:吃奶酪

问题描述: 解题思路: 枚举每种吃奶酪顺序,并计算其距离,选择最小的距离即答案。v数组:记录顺序。 注意点:1. 每次用于min的s需要重置为0。 2. 实数包括小数,所以结构体内x,y为double类型。 3. 第…

基数排序简记

今天手敲 基数排序 代码的时候发现结果不对,这里简记一下原因。 第一版代码(错误) public void radixSort(int[] arr) {// 1. 获取 arr 的最大位数int maxDigit Arrays.stream(arr).max().getAsInt();int maxLen String.valueOf(maxDigit…

赵本山:吃恐龙没?范伟:我想吃我吃的着吗?!

赵本山:吃恐龙没?范伟:我想吃我吃的着吗?! ——小品《升职》(中2)的台词 (接上) 赵本山:据我多年的破案经验 一般罪犯心理这个时候都是手舞足蹈抓耳挠腮 …

算法导论 总结索引 | 第三部分 第十二章:二叉搜索树

1、搜索树数据结构 支持 许多动态集合操作,包括 SEARCH、MINIMUM、MAXIMUM、PREDECESSOR、SUCCESSOR、INSERT 和 DELETE 等。使用搜索树 既可以作为一个字典 又可以作为一个优先队列 2、二叉搜索树上的基本操作 所花费的时间 与这棵树的高度成正比。对于有n个结点的…

Android应用程序构成

binder Android应用程序是由Activity、 Service、 Broadcast Receiver和 Content Provider四种类型的组件构成的, 它们有可能运行在同一个进程中, 也有可能运行在不同的进程中。 此外, 各种系统组件也运行在独立的进程中, 例如&a…

如何基于nginx组建多个子目录网站

华子目录 实验要求实验步骤 实验要求 组建多个子目录网站www.openlab.com,该网站有2个子目录www.openlab.com/sxhkt和www.openlab.com/zywww.openlab.com/sxhkt使用http读取www.openlab.com/zy使用https读取 实验步骤 准备工作 [rootserver ~]# setenforce 0[ro…

Matlab|基于多目标粒子群算法的微电网优化调度

目录 1 主要内容 2 部分代码 3 效果图 4 下载链接 1 主要内容 本程序为《基于多目标粒子群算法的微电网优化调度》-王金全文章的方法复现,考虑因素较文章复杂,除了考虑基本机组、储能等的出力,还考虑了弃风和弃光,很值得大家…

Docker Compose如何安装

Docker Compose的安装通常依赖于你的操作系统。以下是在不同操作系统中安装Docker Compose的方法: Linux 系统 //下载最新版本的Docker Compose sudo curl -L "https://github.com/docker/compose/releases/download/v2.5.1/docker-compose-$(uname -s)-$(un…

大厂可视化平台之百度SugarBI:让数据价值一“幕”了然。

百度Sugar是百度智能云推出的敏捷BI和数据可视化平台,可以说是生产力具。 它旨在解决报表和大屏的数据BI分析和可视化问题,同时也是为了解放数据可视化系统的开发人力。百度Sugar基于百度Echarts提供丰富的图表组件,使得用户可以开箱即用、零…

spring框架学习记录(1)

前半个月一直在应付期中考试,快被折磨似了orz 文章目录 SpringIoC(Inversion of Control) 控制反转与DI(Dependency Injection)依赖注入bean相关bean配置bean实例化bean的生命周期 依赖注入相关依赖注入方式依赖自动装配 容器创建容器获取bean Spring IoC(Inversi…

Linux进程——Linux下常见的进程状态

前言:在进程学习这一块,我们主要学习的就是PCB这个进程控制块,而PBC就是用来描述进程的结构体,而进程状态就是PCB结构体中的一个变量。 本篇主要内容: 操作系统中的进程状态Linux下的进程状态 在开始之前,我…

Redis学习笔记(基础)

Redis学习笔记(基础) 一、Nosql概述1.1、为什么使用Nosql1.2、什么是Nosql1.3、阿里巴巴演进分析1.4、NoSQL的四大分类 二、 Redis入门2.1、概述2.2、Windows使用Redis2.3、linux安装2.4、redis-benchmark性能测试2.5、Redis基础知识 三、五大数据类型3.…

Linux专栏08:Linux基本指令之压缩解压缩指令

博客主页:Duck Bro 博客主页系列专栏:Linux专栏关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞👍收藏⭐评论✍ Linux基本指令之压缩解压缩指令 编号:08 文章目录 Linu…

初始Java篇(JavaSE基础语法)(7)抽象类和接口(上)

找往期文章包括但不限于本期文章中不懂的知识点: 个人主页:我要学编程(ಥ_ಥ)-CSDN博客 所属专栏:JavaSE 目录 抽象类 抽象类的概念: 抽象类语法 抽象类特性 抽象类的作用 接口 接口的概念: 语法规则 接口…

ssm104园区停车管理系统+jsp

园区停车管理系统的设计与实现 摘 要 网络技术和计算机技术发展至今,已经拥有了深厚的理论基础,并在现实中进行了充分运用,尤其是基于计算机运行的软件更是受到各界的关注。加上现在人们已经步入信息时代,所以对于信息的宣传和管…

Atlassian Jira 信息泄露漏洞(CVE-2019-3403) 排查思路

Atlassian Jira: 企业广泛使用的项目与事务跟踪工具,被广泛应用于缺陷跟踪、客户服务、需求收集、流程审批、任务跟踪、项目跟踪和敏捷管理等工作领域。 简述: 近日发现多个内网IP触发的Atlassian Jira 信息泄露漏洞的告警。 告警的检测规…

C语言:内存操作函数memcpy、memmove、memset和memcpy的使用和模拟实现

一&#xff1a;memcpy的使用和模拟 memcpy使用时需要包含的头文件为#include<string.h> void* memcpy(void* destination,const void* source,size_t num) 函数memcpy从source的位置开始向后复制num个字节的数据到destination指向的内存位置&#xff08;特别注意的是…

Python | Leetcode Python题解之第66题加一

题目&#xff1a; 题解&#xff1a; class Solution:def plusOne(self, digits: List[int]) -> List[int]:n len(digits)for i in range(n - 1, -1, -1):if digits[i] ! 9:digits[i] 1for j in range(i 1, n):digits[j] 0return digits# digits 中所有的元素均为 9retu…

「C++ 内存管理篇 04」动态二维数组

目录 一. 使用calloc/free开辟和释放二维数组 二、 使用new/delete开辟和释放二维数组 一. 使用calloc/free开辟和释放二维数组 让一个二级指针变量存放动态开辟的一级指针数组的起始地址&#xff0c;然后让这些一级指针指向动态开辟的基本类型的数组&#xff1a; // 开辟一个大…

【C++】模拟实现string

文章目录 前言成员变量成员函数构造函数浅拷贝深拷贝构造函数实现 析构函数赋值重载 迭代器begin & endrbegin & rend 空间管理函数元素访问元素修改字符串运算流提取 & 流插入流提取流插入 总结 前言 模拟实现不是为了写得和库里面一样好。而是为了更好的了解底层…