matlab使用教程(40)—二维傅里叶变换和多项式插值

1使用 FFT 进行多项式插值

        使用快速傅里叶变换 (FFT) 来估算用于对一组数据进行插值的三角函数多项式的系数。

1.1数学中的 FFT

        FFT 算法通常与信号处理应用相关,但也可以在数学领域更广泛地用作快速计算工具。例如,通常通过解算简单的线性系统来计算用于对一组数据进行插值的 n 次多项式的系数c i:
        在 19 世纪初研究小行星轨道时,卡尔·弗里德里希·高斯发现了一种数学捷径,即通过将问题分解为多个较小的子问题,然后将结果合并来计算多项式插值的系数。他的方法等同于估算其数据的离散傅里叶变换。

1.2 小行星数据插值

        在高斯的论文中,他描述了一种估算小行星智神星轨道的方法。他从以下 12 个二维数据点 x y 开始。
x = 0:30:330;
y = [408 89 -66 10 338 807 1238 1511 1583 1462 1183 804];
plot(x,y,'ro')
xlim([0 360])

        高斯使用以下形式的三角函数多项式为小行星的轨道建模。
        使用 fft 计算多项式的系数。
m = length(y);
n = floor((m+1)/2);
z = fft(y)/m;
a0 = z(1); 
an = 2*real(z(2:n));
a6 = z(n+1);
bn = -2*imag(z(2:n));
        在原始数据点上绘制插值多项式。
hold on
px = 0:0.01:360;
k = 1:length(an);
py = a0 + an*cos(2*pi*k'*px/360) ...+ bn*sin(2*pi*k'*px/360) ...+ a6*cos(2*pi*6*px/360); 
plot(px,py)

2二维傅里叶变换

        fft2 函数将二维数据变换为频率空间。例如,您可以变换二维光学掩膜以揭示其衍射模式。

2.1二维傅里叶变换原理

        以下公式定义 m×n 矩阵 X 的离散傅里叶变换 Y。
        计算 X 的二维傅里叶变换等同于首先计算 X 每列的一维变换,然后获取每行结果的一维变换。换言之,命令 fft2(X) 等同于 Y = fft(fft(X).').'

2.2二维衍射模式

        在光学领域,傅里叶变换可用于描述平面波入射到带有小孔的光学掩膜上所产生的衍射模式 [1]。本示例对光学掩膜使用 fft2 函数来计算其衍射模式。
        创建用于定义带有小圆孔的光学掩膜的逻辑数组。
n = 2^10; % size of mask
M = zeros(n);
I = 1:n; 
x = I-n/2; % mask x-coordinates 
y = n/2-I; % mask y-coordinates
[X,Y] = meshgrid(x,y); % create 2-D mask grid
R = 10; % aperture radius
A = (X.^2 + Y.^2 <= R^2); % circular aperture of radius R
M(A) = 1; % set mask elements inside aperture to 1
imagesc(M) % plot mask
axis image

        使用 fft2 计算掩膜的二维傅里叶变换,并使用 fftshift 函数重新排列输出,从而使零频率分量位于中央。绘制生成的衍射模式频率。蓝色指示较小的幅值,黄色指示较大的幅值。
DP = fftshift(fft2(M));
imagesc(abs(DP))
axis image

        为增强小幅值区域的细节,需绘制衍射模式的二维对数。极小的幅值会受数值舍入误差影响,而矩形网格则会导致径向非对称性。
imagesc(abs(log2(DP)))
axis image

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

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

相关文章

24/04/11总结

IO流(First edition): IO流&#xff1a;用于读入写出文件中的数据 流的方向&#xff08;输入指拿出来,输出指写进去) 输入流:读取 输出流:写出 操作文件类型 字节流:所有类型文件 字符流:纯文本 字节流: InputStream的子类:FileInputStream:操作本地文件的字节输入流 OutputSt…

ssm036基于Java的图书管理系统+jsp

图书管理系统设计与实现 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本图书管理系统就是在这样的大环境下诞生&#xff0c;其可以帮助管理者在短时间内处…

数位排序-自定义比较函数

数位排序 4653. 数位排序 - AcWing题库 题目大意&#xff1a;输入两个数&#xff0c;n,m。 将1~n的数&#xff0c;按照以下规则排序&#xff1a; ​ 当两个数各个数位之和不同时&#xff0c;将数位和较小的排在前面&#xff0c;当数位之和相等时&#xff0c;将数值小的排在…

光伏电站运维管理系统功能全面详解

一、系统概述 光伏电站运维管理系统是一款专为光伏电站设计的综合性管理平台。该系统集成了先进的数据监测、故障诊断、运维任务管理、设备信息管理、用户权限管理以及系统维护与升级等功能&#xff0c;旨在提供全面、高效、智能的光伏电站运维服务&#xff0c;确保电站安全、…

java国产化云HIS基层医院系统源码 SaaS模式

目录 ​ 云HIS开发环境 功能模块介绍&#xff1a; 1、门诊模块 2、住院模块 3、药房、药库模块 ​编辑 4、电子病历模块 5、统计报表模块 6、系统管理模块 系统优势 云his之电子病历子系统功能 云 his 系统是运用云计算、大数据、物联网等新兴信息技术&#xff0c;按…

【C++初阶】C++简单入门(长期维护)

本篇博客是对C的一些简单知识分享&#xff0c;有需要借鉴即可。 C简单入门目录 一、C前言1.C的概念&#xff1a;2.C发展历程3.C如何学&#xff1f; 二、C入门1.C关键字(C98标准)2.命名空间3.C输入&输出①概念说明②使用说明③特征说明④细节拓展⑤cout与cin的意义 4.缺省参…

JavaScript_注释数据类型

JavaScript_语法_注释&数据类型&#xff1a; 1.2注释&#xff1a; 1.单行注释&#xff1a;//注释内容 2.多行注释&#xff1a;/*注释内容*/ 1.3数据类型&#xff1a; 1.原始数据类型(基本数据类型)&#xff1a;&#xff08;只有这五种&#xff09; 1.number&#xff1a;数字…

参花期刊投稿发表论文

《参花》是由国家新闻出版总署批准&#xff0c;吉林省文化和旅游厅主管&#xff0c;吉林省文化馆主办的正规文学类期刊。文学是用语言塑造形象反映社会生活的一种语言艺术&#xff0c;是自觉、独立而又面向整个社会的艺术&#xff0c;是文化中极具强烈感染力的重要组成部分&…

经典机器学习模型(八)梯度提升树GBDT详解

经典机器学习模型(八)梯度提升树GBDT详解 Boosting、Bagging和Stacking是集成学习(Ensemble Learning)的三种主要方法。 Boosting是一族可将弱学习器提升为强学习器的算法&#xff0c;不同于Bagging、Stacking方法&#xff0c;Boosting训练过程为串联方式&#xff0c;弱学习器…

如何在 7 天内掌握C++?

大家好&#xff0c;我是小康&#xff0c;今天我们来聊下如何快速学习 C 语言。 本篇文章适合于有 C 语言编程基础的小伙伴们&#xff0c;如果还没有学习过 C&#xff0c;请看这篇文章先入个门&#xff1a;C语言快速入门 引言&#xff1a; C&#xff0c;作为一门集面向过程和…

【Python】科研代码学习:十七 模型参数合并,safetensors / bin

【Python】科研代码学习&#xff1a;十七 模型参数合并&#xff0c;safetensors / bin 前言解决代码知识点&#xff1a;safetensors 和 bin 的区别&#xff1f;知识点&#xff1a;save_pretrained 还会新增的文件知识点&#xff1a;在保存模型参数时&#xff0c;大小发生了成倍…

华纳云:如何选择适合自己需求的备份服务器?

备份服务器是企业和个人保障数据安全和灾难恢复的重要设备之一&#xff0c;而选择适合自己需求的备份服务器是确保数据备份效果的关键一步。以下是一些关于如何选择适合需求的备份服务器的指南&#xff1a; 1. 确定数据量和备份频率&#xff1a; 首先&#xff0c;您需要确定您的…

面试经典150题——移除元素

面试经典150题 day2 题目来源我的题解方法一 双指针 题目来源 力扣每日一题&#xff1b;题序&#xff1a;27 我的题解 方法一 双指针 使用两个指针left和right分别指向最终数组的末尾和最终数组不需要的元素的最左侧。当nums[left]等于val&#xff0c;则将nums[right]替换nu…

mysql数据库死锁 处理方法

MySQL数据库死锁是一个常见的问题&#xff0c;通常发生在多个事务试图以不同的顺序锁定资源时。当两个或多个事务相互等待对方释放资源&#xff0c;就形成了死锁。以下是关于MySQL数据库死锁的删除方法&#xff0c;以及针对代码开发问题和报错问题的解答。 一、MySQL数据库死锁…

基于单链表的通讯录C语言实现

关于单链表的详细了解请见博主的另一篇博客&#xff0c;本文旨在对单链表进行应用&#xff0c;采用C语言编写。 http://t.csdnimg.cn/iBpFa 一、驱动层 1.1 SList.h #pragma once#include<stdio.h> #include<stdlib.h> #include<assert.h> #include"…

pytest教程-25-生成覆盖率报告插件-pytest-cov

领取资料&#xff0c;咨询答疑&#xff0c;请➕wei: June__Go 上一小节我们学习了pytest多重断言插件pytest-assume,本小节我们讲解一下pytest生成覆盖率报告插件pytest-cov。 测量代码覆盖率的工具在测试套件运行时观察你的代码&#xff0c;并跟踪哪些行被运行&#xff0c;…

10:00面试,10:08就出来了,问的问题有点变态。。。

从小厂出来&#xff0c;没想到在另一家公司又寄了。 到这家公司开始上班&#xff0c;加班是每天必不可少的&#xff0c;看在钱给的比较多的份上&#xff0c;就不太计较了。没想到8月一纸通知&#xff0c;所有人不准加班&#xff0c;加班费不仅没有了&#xff0c;薪资还要降40%…

【我的小工具】生成React页面类

有了数据表的结构信息&#xff0c;就能生成React 的页面类&#xff0c;快捷方便。 生成界面如下&#xff1a; 生成的React FrmUser.js页面如下&#xff1a; 只需再写里面的操作逻辑代码。

Claude使用教程

claude 3 opus面世后&#xff0c;网上盛传吊打了GPT-4。网上这几天也已经有了许多应用&#xff0c;但竟然还有很多小伙伴不知道国内怎么用gpt&#xff0c;也不知道怎么去用这个据说已经吊打了gpt-4的claude3。 今天我们想要进行的一项尝试就是—— 用claude3和gpt4&#xff0c…

C语言操作符详解(三)

一、表达式求值 1.1整型提升 C语言中整型算术运算总是至少以缺省整型类型的精度来进行的。 为了获得这个精度&#xff0c;表达式中的字符和短整型操作数在使用之前被转换为普通整型&#xff0c;这种转换称为整型提升。 如何进行整型提升呢&#xff1f; 1. 有符号整数提升是按…