从傅立叶变换到奥运五环

傅立叶变换的本质

离散傅立叶变换的本质就是用一系列的正弦(或者余弦)函数的和来拟合一个周期函数f(t)。公式如下:

f(t) = \frac{a_0}{2}+\sum_{k=1}^{n}(a_ksin(\frac{2\pi k}{T}t)+b_kcos(\frac{2\pi k}{T}t))        (1)

其中T是f(t)的周期,即f(t+T)=f(t)对任意t成立。cos(\frac{2\pi k}{T}t)sin(\frac{2\pi k}{T}t)的周期是\frac{T}{k}。换句话说,后两者的频率是f(t)的频率的k倍。这说明,我们在拟合任意一个周期函数时,只需要考虑整数倍频率的三角函数,而不需要考虑任意倍数的三角函数。

更进一步,我们能不能在正弦和余弦之间只保留一个呢?还真行,因为:

a_ksin(\frac{2\pi k}{T}t)+b_kcos(\frac{2\pi k}{T}t)                (2)

=\sqrt{a_k^2+b_k^2}\times (\frac{a_k}{\sqrt{a_k^2+b_k^2}}sin(\frac{2\pi k}{T}t)+\frac{b_k}{\sqrt{a_k^2+b_k^2}}cos(\frac{2\pi k}{T}t))

=r_k\times sin(\frac{2\pi k}{T}t+\alpha_k)

其中r_k=\sqrt{a_k^2+b_k^2}\alpha_k= arctan(b_k, a_k)。值得注意的是,这个转换在a_kb_k等于0或者都等于0时仍然成立。

因此,我们只需要正弦函数就能够拟合任意周期函数。其中参数r_k\alpha_k分别被称为正弦函数的振幅和偏移。也就是说,虽然三角函数少了一个,但参数数量并没有增加。

类似地,我们可以很容易地把公式(2)转换为一个具有振幅和偏移的余弦函数。我们把这两种变换分别称为正弦傅立叶变换余弦傅立叶变换

正弦和余弦傅立叶变换意味着什么

再来看看下面两个公式,告诉我,你会想到什么?

r_k\times cos(\frac{2\pi k}{T}t+\alpha_k)        (3)

r_k\times sin(\frac{2\pi k}{T}t+\alpha_k)        (4)

没错,我们会想到点的极坐标。r_k就是旋转半径的长度,t是旋转时间。\frac{2\pi k}{T}是角速度,是一个常量。\alpha_k则是旋转起始角度。公式(3)和(4)可以用来分别计算直角坐标系下点的横坐标和纵坐标。

总结一下,我们得到以下两个公式:

f_x(t)=a_0^x+\sum_{k=1}^{n} r_k^x\times cos(\frac{2\pi k}{T}t+\alpha_k^x)        (5)

f_y(t)=a_0^y+\sum_{k=1}^{n} r_k^y\times sin(\frac{2\pi k}{T}t+\alpha_k^y)        (6)

其中函数f_xf_y分别用来计算点的横、纵坐标。t的取值范围是[0, T]。

应用

公式(5)和(6)提示我们:直角坐标系下,在一幅由一定顺序的点组成的图像中,每个点的横、纵坐标可以分开来计算,互不干扰。并且,每一个这样的坐标——不管是横坐标还是纵坐标——都可以转化为一组固定的半径和起始角度的组合,即r_k\alpha_k。每一对半径和起始角度又对应了一个以整数倍频率旋转着的圆。把这些圆的圆心按频率从低到高首尾相连,就可以构成一幅有趣的动画,该动画不仅重现了原图像,更揭示了傅立叶变换的本质。

根据这个想法,我们用Python写了一些程序,利用快速傅立叶变换(参见函数numpy.fft.fft)、OpenCV(参见包cv2)和图像io(参见包imageio)实现了一些有趣的动画,能够绘画出我们事先指定的图像。结果如下。

甚至可以绘画0~9十个数字。

最后给大家看的是奥运五环:

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

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

相关文章

推荐10个最受欢迎的 Vue.js UI 库

在2024年,随着Vue.js的不断普及和发展,这个轻量级、易于学习的JavaScript框架在前端开发者中的受欢迎程度日益上升。Vue.js之所以受到青睐,很大一部分原因是其庞大的生态系统,特别是众多的UI库,这些库提供了预先构建的组件和工具,帮助开发者快速高效地构建出既美观又响应…

Python算法深度探索:从基础到进阶

引言 本文将引导您从Python的基础算法出发,逐步深入到更复杂的算法领域。我们将探讨数组操作、图算法以及机器学习中的常用算法,并通过实例和代码展示它们在实际应用中的价值。 1. 基础算法:数组操作 数组操作是算法实现中非常基础且重要的一…

Editing While Playing 使用 Easyx 开发的 RPG 地图编辑器 tilemap eaitor

AWSD移动画布 鼠标右键长按拖拽 鼠标左键长按绘制 可以边拖拽边移动画布边绘制。 F1 导出 DLC F2 导入DLC author: 民用级脑的研发记录 1309602336qq.com 开发环境: 内置 easyx 的 devc 5.11 或者 VS 2022 TDM GCC 4.9.2 64-bit c11及以上都可运行 windows 环境运行…

算法-16-并查集

并查集简介 并查集:一开始,把a,b,c放入并查集,a自己一个集合,b自己一个,c自己一个 提供的方法 1.boolean isSameSet(a,b),判断ab是否在同一个集合 2.void union(a,b),把a所…

Hadoop-Yarn-ResourceManagerHA

在这里先给屏幕面前的你送上祝福,祝你在未来一年:技术步步高升、薪资节节攀升,身体健健康康,家庭和和美美。 一、介绍 在Hadoop2.4之前,ResourceManager是YARN集群中的单点故障 ResourceManager HA是通过 Active/St…

163基于matlab的不同目标函数的盲源信号分离基于负熵的

基于matlab的不同目标函数的盲源信号分离基于负熵的;基于负熵的改进算法; 基于峭度的;基于互信息的;基于非线性PCA的。输出解混前后信号结果。程序已调通,可直接运行。 163 负熵、峭度、互信息、PCA 信号处理 (xiaohon…

牛客——递归实现组合型枚举(枚举,dfs)

链接:登录—专业IT笔试面试备考平台_牛客网 来源:牛客网 题目描述 从 1~n 这 n 个整数中随机选出 m 个,输出所有可能的选择方案。n>0n \gt 0n>0, 0≤m≤n0 \leq m \leq n0≤m≤n, n(n−m)≤25n(n-m)\leq 25n(n−m)≤25。 输入描述…

LeetCode Python - 17.电话号码的字母组合

目录 题目答案运行结果 题目 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 示例 1: 输入:digits…

HGAME 2024 WEEK2 Web方向题解 全

---------【WEEK-2】--------- What the cow say? 题目描述:the cow want to tell you something 注意title,Python的flask漏洞可多呢 版本310 先测一下SSTI 正常情况下 SSTI测试 变量渲染测试,被waf了,说明方向对了 单单过滤…

企业人力资源大数据分析解决方案

一、 背景痛点 随着企业发展和市场竞争的加剧,传统的人力资源管理模式已经无法满足企业的需求。而大数据技术的出现,为企业提供了新的解决方案,能够更好地应对市场变化和人力资源挑战。 二、基本人力分析应用 整个人力资源体系是承接集团战略的重要部分,通过对人力资源战…

《小强升职记:时间管理故事书》阅读笔记

目录 前言 一、你的时间都去哪儿了 1.1 你真的很忙吗 1.2 如何记录和分析时间日志 1.3 如何找到自己的价值观 二、无压工作法 2.1 传说中的“四象限法则 2.2 衣柜整理法 三、行动时遇到问题怎么办? 3.1 臣服与拖延 3.2 如何做到要事第一? 3.…

文生图提示词:肖像风格

人物与肖像 --肖像风格 Portrait Styles 覆盖了从技术和媒介到时代和地域特征的广泛肖像风格,展示了人物肖像艺术的多样性和丰富性。 Realistic 现实主义 Abstract 抽象 Impressionistic 印象主义 Expressionistic 表现主义 Surrealistic 超现实主义 Photorealistic…

快速搭建PyTorch环境:Miniconda一步到位

快速搭建PyTorch环境:Miniconda一步到位 🌵文章目录🌵 🌳一、为何选择Miniconda搭建PyTorch环境?🌳🌳二、Miniconda安装指南:轻松上手🌳🌳三、PyTorch与Minic…

kali无线渗透之wps加密模式和破解12

WPS(Wi-Fi Protected Setup,Wi-Fi保护设置)是由Wi-Fi联盟推出的全新Wi-Fi安全防护设定标准。该标准推出的主要原因是为了解决长久以来无线网络加密认证设定的步骤过于繁杂之弊病,使用者往往会因为步骤太过麻烦,以致干脆不做任何加密安全设定&…

JVM工作原理与实战(三十八):JIT即时编译器原理

专栏导航 JVM工作原理与实战 RabbitMQ入门指南 从零开始了解大数据 目录 专栏导航 前言 一、JIT即时编译器 二、HotSpot中的JIT编译器 三、JIT优化技术 1.方法内联 2.逃逸分析 四、JIT优化建议 总结 前言 JVM作为Java程序的运行环境,其负责解释和执行字节…

FPGA_简单工程_拨码开关

一 框图 二 波形图 三 代码 3.1 工程代码 module bomakiaguan (input [15:0] switch, // 输入16路拨码开关output reg [15:0] led // 输出16个LED灯 );always (switch) beginled < switch; // 将拨码开关的值直接赋给LED灯 end // 将拨码开关的值直接赋给LED灯 endmodu…

2023全球云计算市场份额排名

关注卢松松&#xff0c;会经常给你分享一些我的经验和观点。 最近Synergy研究院发布了最新的全球云计算市场份额排名。 亚马逊依旧是以31%的的市场份额排名第一&#xff0c;微软azure24%排名第二&#xff0c;Google云11%排名第三&#xff0c;阿里云4%排名第四。腾讯云和IBM、…

Java常用类与基础API--String的构造器与常用方法

文章目录 一、String的常用API-1&#xff08;1&#xff09;构造器1、介绍2、举例 &#xff08;2&#xff09;String与其他结构间的转换1、基本数据类型、包装类 --> 字符串2、字符串 --> 基本数据类型、包装类3、字符串 --> 字符数组4、字符数组 --> 字符串5、字符…

一个人被锁死在公司底层的根本原因

一、现代社会对员工角色的认知 随着经济全球化和科技进步,现代社会对员工的认知发生了深刻的变化。传统上,员工被视为公司的执行者和生产者,承担着重复性、机械性的工作。然而,随着知识经济和服务型经济的兴起,员工角色逐渐从“执行者”转变为“创造者”和“合作者”。员…

【从0到1学Python】第四讲:Python中的各种“量”(三)

不要着急&#xff01;我们在下一讲就会开始编写如假包换的程序了。 这一讲我们了解一下六种常见类型的量的常用方法&#xff0c;以及不同类型之间的关系。 所谓“方法&#xff08;methods&#xff09;”&#xff0c;我的理解是对于某一个类型的量的某种操作或判断。比如说&…