傅里叶级数、傅里叶变换、小波变换、离散余弦变换的理解

目录

    • 1. 傅里叶级数
    • 2.傅里叶变换

1. 傅里叶级数

功能:能把任意周期性函数展开成一系列正弦、余弦函数的和。

公式:

f ( x ) = a 0 2 + ∑ n = 1 ∞ ( a n cos ⁡ ( 2 π n x T ) + b n sin ⁡ ( 2 π n x T ) ) 傅里叶系数 a n = 2 T ∫ x 0 x 0 + T f ( x ) ⋅ cos ⁡ ( 2 π n x T ) d x , n ∈ { 0 } ⋃ N b n = 2 T ∫ x 0 x 0 + T f ( x ) ⋅ sin ⁡ ( 2 π n x T ) d x , n ∈ N \begin{gathered} f(x)=\frac{a_0}2+\sum_{n=1}^{\infty}\left(a_n\cos(\frac{2\pi nx}T)+b_n\sin(\frac{2\pi nx}T)\right) \\ \text{傅里叶系数} \\ a_{n}=\frac{2}{T}\int_{x_{0}}^{x_{0}+T}f(x)\cdot\cos(\frac{2\pi nx}{T})dx,n\in\{0\}\bigcup\mathbb{N} \\ b_{n}={\frac{2}{T}}\int_{x_{0}}^{x_{0}+T}f(x)\cdot\sin({\frac{2\pi nx}{T}})dx,n\in\mathbb{N} \end{gathered} f(x)=2a0+n=1(ancos(T2πnx)+bnsin(T2πnx))傅里叶系数an=T2x0x0+Tf(x)cos(T2πnx)dx,n{0}Nbn=T2x0x0+Tf(x)sin(T2πnx)dx,nN

比如下图的一个函数能够被一系列周期为2 π \pi π的正弦函数展开:
在这里插入图片描述
加加减减后周期仍是2 π \pi π,调整正弦、余弦函数前面的系数(振幅)就可以慢慢逼近原函数了。

下面我们尝试把周期变成更一般的T,则正弦、余弦函数可写成:
s i n ( 2 π n T x ) c o s ( 2 π n T x ) \begin{array}{l}sin(\frac{2\pi n}Tx)\\\\cos(\frac{2\pi n}Tx)\end{array} sin(T2πnx)cos(T2πnx)

前面的系数( a n , b n a_n, b_n an,bn)我们可以通过几何的角度进行理解:

首先要有个先验知识就是正弦、余弦函数可以看成无限维的向量,并且两个向量的内积为0,即正弦余弦函数是正交的。
在这里插入图片描述
无限维向量内积:
在这里插入图片描述
因此傅里叶变换可看成是由一组正交基构成的:
在这里插入图片描述
每个正交向量就是:{1,0,0},{0,cos(2pi n/T x),0},{0,0,sin(2pin/Tx)}

在这里插入图片描述
那么如何求系数呢 就是这些坐标:
例如:其中c1,c2是坐标
在这里插入图片描述
在这里插入图片描述
扩展到傅里叶:
在这里插入图片描述
bn类似的。

2.傅里叶变换

在这里插入图片描述
随着函数周期变大,频域上的点会越来越密集,若一个非周期函数,则频域图中的点连续:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
而傅里叶变换就是求出当周期无穷大时,对应的这个连续的频域图曲线。

首先把傅里叶级数用欧拉公式换一下:
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
F(w)就是频域曲线。
另外还可以再改造一下,把前面系数移进去:

F ( w ) = ∫ − ∞ + ∞ f ( x ) ⋅ e − j 2 π w x d x F(w)=\int_{-\infty}^{+\infty}f(x)\cdot e^{-j2\pi wx}dx F(w)=+f(x)ej2πwxdx

同理可得二维傅里叶变换:
F ( u , v ) = ∫ − ∞ + ∞ ∫ − ∞ + ∞ f ( x , y ) ⋅ e − j 2 π ( u x + v y ) d x d y F(u, v)=\int_{-\infty}^{+\infty}\int_{-\infty}^{+\infty}f(x,y)\cdot e^{-j2\pi (ux+vy)}dxdy F(u,v)=++f(x,y)ej2π(ux+vy)dxdy
二维傅里叶反变换:
f ( x , y ) = ∫ − ∞ + ∞ ∫ − ∞ + ∞ F ( u , v ) ⋅ e j 2 π ( u x + v y ) d u d v f(x, y)=\int_{-\infty}^{+\infty}\int_{-\infty}^{+\infty}F(u,v)\cdot e^{j2\pi (ux+vy)}dudv f(x,y)=++F(u,v)ej2π(ux+vy)dudv

二维离散傅里叶变换:
F ( u , v ) = ∑ m = 0 M − 1 ∑ n = 0 N − 1 f ( x , y ) ⋅ e − j 2 π ( u x / M + u y / N ) F(u, v) = \sum_{m=0}^{M-1} \sum_{n=0}^{N-1} f(x, y) \cdot e^{-j 2\pi(ux/M + uy/N)} \ F(u,v)=m=0M1n=0N1f(x,y)ej2π(ux/M+uy/N) 

f ( x , y ) = 1 M N ∑ u = 0 M − 1 ∑ v = 0 N − 1 F ( u , v ) ⋅ e j 2 π ( u x / M + u y / N ) \ f(x, y) = \frac{1}{MN} \sum_{u=0}^{M-1} \sum_{v=0}^{N-1} F(u, v) \cdot e^{j 2\pi(ux/M + uy/N)} \  f(x,y)=MN1u=0M1v=0N1F(u,v)ej2π(ux/M+uy/N) 

  1. 小波变换

暂时放个链接在这小波变换

  1. 离散余弦变换
    离散余弦变换其实就是傅里叶变换的实数部分
    F ( u , v ) = λ ( u ) λ ( v ) ∑ x = 0 N 1 − 1 ∑ y = 0 N 2 − 1 f ( x , y ) cos ⁡ ( π u 2 x + 1 2 N 1 ) cos ⁡ ( π v 2 y + 1 2 N 2 ) λ ( ω ) = { 1 N , i f ω = 0 2 N , o t h e r w i s e \begin{aligned}F(u,v)&=\lambda(u)\lambda(v)\sum_{x=0}^{N_1-1}\sum_{y=0}^{N_2-1}f(x,y)\cos\left(\pi u\frac{2x+1}{2N_1}\right)\cos\left(\pi v\frac{2y+1}{2N_2}\right)\\\\\lambda(\omega)&=\begin{cases}\sqrt{\frac1N},&\mathrm{if~}\omega=0\\\sqrt{\frac2N},&\mathrm{otherwise}&\end{cases}\end{aligned} F(u,v)λ(ω)=λ(u)λ(v)x=0N11y=0N21f(x,y)cos(πu2N12x+1)cos(πv2N22y+1)= N1 ,N2 ,if ω=0otherwise

f ( x , y ) = ∑ u = 0 N 1 − 1 ∑ v = 0 N 2 − 1 λ ( u ) λ ( v ) F ( u , v ) cos ⁡ ( π u 2 x + 1 2 N 1 ) cos ⁡ ( π v 2 y + 1 2 N 2 ) \begin{aligned}f(x,y) & =\sum_{u=0}^{N_1-1}\sum_{v=0}^{N_2-1}\lambda(u)\lambda(v)F(u,v)\cos\left(\pi u\frac{2x+1}{2N1}\right)\cos\left(\pi v\frac{2y+1}{2N2}\right)\end{aligned} f(x,y)=u=0N11v=0N21λ(u)λ(v)F(u,v)cos(πu2N12x+1)cos(πv2N22y+1)

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

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

相关文章

网络安全|2024年需要重点关注的10种DNS攻击类型

目前,针对域名系统(DNS)的攻击已经成为企业组织数字化发展中的一个严重问题,每年都有数千个网站成为此类攻击的受害者。据最近的研究数据显示,2023年企业组织与DNS攻击相关的损失同比增加了49%,这些损失不仅…

即时设计:一键查看设计稿与页面差异,让设计师的工作更便捷高效

设计稿走查 在设计工作中,对设计稿和实际页面进行对比是必不可少的环节。然而,传统的对比方式往往耗时耗力,无法精确测量差异。为了解决这个问题,我们推出了一款强大的工具,它可以通过图片对比,轻松查看设…

使用results.csv文件数据绘制mAP对比图

yolov5每次train完成(如果没有中途退出)都会在run目录下生成expX目录(X代表生成结果次数 第一次训练完成生成exp0 第二次生成exp1…以此类推)。expX目录下会保存训练生成的weights以及result.txt文件,其中weights是训练…

Redis第3讲——跳跃表详解

一、什么是跳跃表 跳跃表(skiplist)是一种随机化的数据结构,由William Pugh在论文《Skip lists: a probabilistic alternative to balanced trees》中提出。它通过在每个节点中维持多个指向其它节点的指针,从而达到快速访问节点的…

Zabbix 监控介绍

1、功能概述 通常所说的监控,会模糊地包含以上下个细分领域的内容: 应用性能监控(Application Performance Monitoring)业务交易监控(Business Transaction Monitoring)网络性能监控(Network …

华为云CES监控与飞书通知

华为云负载均衡连接数监控与飞书通知 在云服务的日常运维中,持续监控资源状态是保障系统稳定性的关键步骤之一。本文通过一个实际案例展示了如何使用华为云的Go SDK获取负载均衡器的连接数,并通过飞书Webhook发送通知到团队群组,以便运维人员…

福利来袭,.NET Core开发5大案例,30w字PDF文档大放送!!!

千里之行,始于足下,若想提高软件编程能力,最最重要的是实践,所谓纸上得来终觉浅,绝知此事要躬行。根据相关【艾宾浩斯遗忘曲线】研究表明,如果不动手实践,记住的东西会很快忘记。 为了便于大家查…

C#设计模式之观察者模式

前言 观察者(Observer)模式也称发布-订阅(Publish-Subscribe)模式,定义了对象间一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。 观察者模式的图解如下所示…

小程序测试和APP测试的区别

今天看了一下关于如何测试小程序的教学视频,里面讨论了一个很经典的面试题:小程序测试和APP测试的区别,包括在之前的面试过程中也确实是遇到过这个问题,所以这次打算把它记录下来,也算是知识巩固了。 首先从测试的内容…

android7以上 代码安装APK

一、所需权限 <!--请求安装APK的权限--> <uses-permission android:name"android.permission.REQUEST_INSTALL_PACKAGES" /> <!--写如外部存储的权限--> <uses-permission android:name"android.permission.WRITE_EXTERNAL_STORAGE"…

【DevOps-03】Build阶段-Maven安装配置

一、简要说明 下载安装JDK8下载安装Maven二、复制准备一台虚拟机 1、VM虚拟复制克隆一台机器 2、启动刚克隆的虚拟机,修改IP地址 刚刚克隆的虚拟机 ,IP地址和原虚拟的IP地址是一样的,需要修改克隆后的虚拟机IP地址,以免IP地址冲突。 # 编辑修改IP地址 $ vi /etc/sysconfig…

内存管理的概念-第四十一天

目录 前言 内存空间的分配与回收 内存空间的扩展 地址转换 存储保护 上下限寄存器 重定位寄存器和界地址寄存器 本节思维导图 前言 操作系统作为系统资源的管理者&#xff0c;当然也需要对内存进行管理&#xff0c;要管理什么呢&#xff1f; 操作系统复杂内存空间的分…

Lazada商品详情API(lazada.item_get)进行商品的实时更新

一、引言 在数字时代&#xff0c;电商平台如Lazada成为了商品交易的重要场所。为了保持竞争力&#xff0c;实时更新商品信息变得至关重要。Lazada提供的商品详情API&#xff08;lazada.item_get&#xff09;为开发者提供了一个高效的方式来获取并更新商品数据。本文将深入探讨…

SpringBoot全局Controller返回值格式统一处理

一、Controller返回值格式统一 1、WebResult类 在 Controller对外提供服务的时候&#xff0c;我们都需要统一返回值格式。一般定义一个 WebResult类。 统一返回值&#xff08;WebResult类&#xff09;格式如下&#xff1a; {"success": true,"code": 2…

express+mongoDB开发入门教程之mongoose使用讲解

系列文章 node.js express框架开发入门教程 expressmongoDB开发入门教程之mongoDB安装expressmongoDB开发入门教程之mongoose使用讲解 文章目录 系列文章前言一、Mongoose是什么&#xff1f;二、Mongoose安装三、Mongoose在express项目中使用步骤一、连接mongoDB数据库步骤二、…

模拟器怎么代理IP?代理IP对手机设置模拟器有哪些影响?

一、代理IP的基本概念和作用流冠代理IP是一种网络服务&#xff0c;可以帮助用户隐藏自己的真实IP地址&#xff0c;通过代理服务器进行网络请求&#xff0c;从而保护用户的隐私和安全。在模拟器中&#xff0c;代理IP的作用也是如此&#xff0c;可以帮助模拟器隐藏真实的IP地址&a…

javascript 常见工具函数(一)

1.将JSON数据根据相同值&#xff0c;进行归类划分&#xff1a; var arr [{ time: "1", img: "22222" }, { time: "2", img: "555" }, { time: "1", img: "888888" }, { time: "2", img: "4444&q…

MySQL Too many connections报错

MySQL 时不时出现Too many connections报错&#xff0c;重启MySQL就好了 但是过段时间又出现 一、解决方案&#xff1a; 1.修改mysql最大连接数 set global max_connections500; 以上是修改立即生效的&#xff0c;重启MySQL就会还原回去 在MySQL配置文件修改 max_connection…

力扣刷题-二叉树-二叉搜索树中的搜索

700 二叉搜索树中的搜索 给定二叉搜索树&#xff08;BST&#xff09;的根节点和一个值。 你需要在BST中找到节点值等于给定值的节点。 返回以该节点为根的子树。 如果节点不存在&#xff0c;则返回 NULL。 例如&#xff0c; 在上述示例中&#xff0c;如果要找的值是 5&#x…

UDP单播

CMakeLists.txt文件中添加如下行&#xff1a; link_libraries(ws2_32) 1.发送端 #include <iostream> #include <winsock2.h> #include <cstdio>#pragma comment(lib, "Ws2_32.lib") // Link with ws2_32.libint main() {1.Initialize winsock…