再论图像变化和频率的关系。

我之前是做了一些探讨,但是没说清楚,现在再看这个问题。

我先提出这个问题。

以以为点列为例,先写成傅里叶级数的形式,不过这里不是三角函数形式,而是指数形式,是一样的。

对f(n)求导,就可以观察变化率了。但是我暂且不这样做,因为我先从直观感受出发。如果f(n+1)-f(n)较大说明了这个位置的像素变化快,那么在三角函数中该如何显示呢?把上图的指数函数看成是三角函数,所以差值f'(n)是跟频率有关,也跟三角级数的幅值F(k)有关。在连续函数的傅里叶级数求导中,如下图所示:

n跟频率有关,确实也说明了这一点。但是问题是在连续函数中,n是无数多个,而f'(x)的值是确定的,到底是多少个频率nk影响了f'(k)的值呢?连续的不好解决,现在看离散的级数的情况。

由于这里是有限个点,所以问题变简单了。

N个频率,只有一个频率k使得Fk*e^{i*2\pi *n*k/N}的绝对值最接近f'(n),然后其余N-1个F(k)作向量加法等于f'(n)。但是这样想无助于问题,那就利用方程组的思想吧。

已知有N个不同频率的正弦函数ck(n)和余弦函数sk(n)建立方程组

\sum_{k=0}^{N-1}Fk*[ck(n)+i*sk(n)]=fn

这样看不方便,用指数函数代替,设为en(k)=ck(n)+i*sk(n),即是

\sum_{k=0}^{N-1}Fk*en,k=fn,写成矩阵形式: E*(F0,F1,...,F(N-1))'=(f0,f1,...,f(N-1))'。

Fk的下标k表示频率,fn的下标n表示位置。

情况本身是这样的,首先是取了fn的N个点,然后由于N确定了矩阵E。所以可以求出来唯一解Fk。

但是问题是若f(m+1)-f(m)较大,则可能只是存在极少数比如l个的kl,跟这个差值非常接近。

E中的(n,k)元是第n行第k列元素,代表在复平面上x轴上的单位向量逆时转旋转2\pikn/N个角度,

可以看出来这是个对称矩阵。我不分析了,网上有傅里叶变换的矩阵分析,是范德蒙矩阵,还是个正交矩阵,也是对称矩阵。

设En表示矩阵的行向量, n是空间域的位置。

现在计算f(n+1)-f(n)=[E(n+1)-E(n)]*F

En看不出来是什么,但是矩阵E具有对称性,所以En(k)=E(k,n), 设Ek=E(k,n),实际上Ek代表的是在空间域上频率为k的一位置n为定义域的正弦函数和余弦函数对。

所以f(n+1)-f(n)=[E(n+1)-E(n)]*F表示: 当f(n)分解为三角函数的时候,变化率为两个相邻的正弦函数和余弦函数对的差值和F的内积。而三角函数早就已经固定了。

反正正弦函数与余弦函数都是在一个周期内,等分成了N个点。

f(n+1)-f(n)=[E(n+1)-E(n)]*E^(-1)*f', 由于E是对称矩阵,且是正定矩阵,则E^(-1)=E。

所以f(n+1)-f(n)=f(n+1)-f(n)。这只能说明我没有推到错误。但是k呢?我希望看到的是关于k的函数。由于对称性En已可以理解为在频率为n的时候,不同位置的三角函数值,Fk的k也可以理解为位置上的权重。所以也可以理解为不同频率上的差值的向量的内积。

所以到底是理解为在位置n和n+1处的两个相同频率的三角函数的差值,还是理解为在频率为n+1和n处的两个相同位置的三角函数的差值。为了不累加频率,那只能理解为Fk是关于位置的权重。但是依然没用。我需要的是在频率为n的时候,减少该频率的F(n)的值或者F(n)附近的值,就能改变位置n的或者附近的变化率。(利用数学工具都无法说明,那我只能从算法看了。)

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

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

相关文章

【大语言模型LLM】-使用大语言模型搭建点餐机器人

关于作者 行业:人工智能训练师/LLM 学者/LLM微调乙方PM发展:大模型微调/增强检索RAG分享国内大模型前沿动态,共同成长,欢迎关注交流… 大语言模型LLM基础-系列文章 【大语言模型LLM】-大语言模型如何编写Prompt?【大语言模型LL…

C语言—字符指针,指针数组和数组指针详解

字符指针 在指针的类型中我们知道有一种指针类型为字符指针 char* ; int main() {char ch w;char *pc &ch;*pc w;return 0; }还有一种使用方式如下: int main() {const char* pstr "hello world.";//这里是把一个字符串放到pstr指针变量里了吗…

chrome浏览器查看css样式

样式的查看 1.匹配器为灰色文本: 表示非当前选择器 2.样式有划线标识:CSS属性无效或未知 / 属性值无效 / 被其他属性覆盖的属性 3.属性以浅色文本显示且有感叹号提示:属性虽然有效,但由于CSS逻辑而没有任何影响 转自:…

笔试狂刷系列--Day1

大家好,我是LvZi,今天开启新的章节笔试狂刷系列 一.两个数组的交集 1. 题⽬链接: 两个数组的交集 思路分析: 查找两个数组的公共元素,一开始可能想到使用Set,先遍历第一个数组,存储nums1中所有的元素,接着遍历nums2中的所有元素,判断是否在Set之中,但是发现在遍历第二个数组…

神经网络中的神经元和激活函数介绍

文章目录 1、什么是人工神经网络 2、什么是神经元 3、什么是激活函数 线性激活函数 Sigmoid激活函数 双曲正切激活函数 修正线性单元(ReLU)激活函数 Leaky ReLU激活函数 Softmax激活函数 1、什么是人工神经网络 神经网络能够利用多层神经元学习复杂的模…

使用docker打包当前服务器的neo4j环境

Docker 是一个开源的应用容器引擎,它允许开发者将应用程序及其依赖打包到一个可移植的容器中,这样应用程序就可以在任何支持Docker的平台上运行,而无需担心环境差异。 当运行一个Docker容器时,它会加载一个镜像并运行它。Docker在容器内部创建一个隔离的环境,这个环境被称…

Redis学习-Redis的九种数据结构

String (字符串) 虽然redis是用C语言编写,但是redis中的string是redis自己实现的字符串结构,叫Simple Dynamic String简称(SDS),因为redis做为中间件会接受不同语言编写的程序传过来的字符串&a…

Oracle Hint 语法详解

什么是Hint Hint 是 Oracle 提供的一种 SQL 语法,它允许用户在 SQL 语句中插入相关的语法,从而影响 SQL 的执行方式。 因为 Hint 的特殊作用,所以对于开发人员不应该在代码中使用它,Hint 更像是 Oracle 提供给 DBA 用来分析诊断问…

Python中pyside2出现的pyside2 qt platform plugin could be in错误及其解决方法

系统平台:Win10 64bit python版本: python 3.8 使用pip install pyside2安装 pyside2 这是找不到QT平台的插件,这是环境变量QT_QPA_PLATFORM_PLUGIN_PATH出现错误 具体解决方法: 我们可以在每一段程序开始之前设定环境变量&…

pytorch与深度学习

ChatGPT PyTorch是一个由Facebook AI Research Team开发的开源深度学习库,它提供了一个灵活的环境和丰富的API,用于快速且方便地构建、训练和部署深度学习模型。PyTorch在科学界和工业界都收到了广泛的使用,其中包括了学术研究、小型项目和大…

第50篇:算法的硬件实现<一>

Q:本期我们来开始介绍如何使用算法状态机(ASM)图在硬件开发板上实现算法。 A:算法状态机 (Algorithmic State Machine,ASM) 图是描述数字系统控制单元的工作流程图,主要用来描述控制单元的时序操作特性&am…

功能测试用例设计思路

我们为什么要写好一份测试用例呢?测试同学应该都知道测试用例的重要性,测试用例就是我们测试的依据,也是测试过程中不能缺少的测试文档。 一、用例编写规范目的: 1、提高测试用例的可读性,可执行性、合理性。 2、测试…

Spring(下)

接上篇,从第八个问题讲起 八.Spring工厂创建复杂对象 1.什么是复杂对象 简单对象就是可以直接new出来的,也就是直接调用构造方法创建 所以复杂对象就是不能直接通过调用构造方法创建。就比如JDBC中的Connection 2.三种方法 (1&#xff…

4月阿里offer被毁,我该怎么进字节?

在校招求职的浪潮中,有些故事总是让人唏嘘不已。比如最近在社交平台上广泛讨论的一个话题:“4月阿里offer被毁,我该怎么进字节?”这不仅反映了当下职场的变动性,也映射了求职者在面对突如其来的变故时的无助与挣扎。 …

基于springboot实现精准扶贫管理系统项目【项目源码+论文说明】计算机毕业设计

基于SpringBoot实现精准扶贫管理系统演示 摘要 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了精准扶贫管理系统的开发全过程。通过分析精准扶贫管理系统管理的不足,创建了一个计算机管理精准扶贫管理系…

docker-003镜像制作

步骤 使用docker commit提交容器使之成为镜像以ubuntu安装vim后的容器为例 1 ubuntu安装vim 启动容器 docker run -it --nameubuntu-vim ubuntu /bin/bash安装vim apt-get update apt-get install vim2 提交容器作为镜像 查看容器 docker ps -a提交容器作为镜像 命令格式&…

随机森林计算指标重要性—从决策树到随机森林Python实现

文章目录 前言一、节点二、决策树2.1 案例分析——优良的水稻2.2 案例分析——家庭财富水平 三、随机森林三、Python代码实现3.1 关键问题3.1.1 节点的表示3.1.2 决策树的表示** 根节点划分左右子树的依据 **3.1.3 随机森林的构造与重要性的表示 3.2 节点类3.2 决策树类3.2.1 初…

阿里云OSS对象存储的使用和快速入门

一、介绍 云存储是一种通过互联网连接的服务,允许用户将数据存储在远程的云服务器上,而不是存储在本地设备上。这些数据可以包括文件、数据库、备份等各种类型的信息。云存储服务提供商通常会管理和维护这些存储设施,并提供用户可以访问、管…

c语言中的数组

数组 数组是一种构造类型,是由基本类型构造而成。当我们想用一群变量来描述同一类相同的东西时候,比如100个年龄变量,我们可以这样int age1;int age2;int age3;……int age 100;这样即不方便书写&#xff…

【公司UI自动化学习】

公司课程链接:https://l.jd.com/student/project/project.du?project_id697509403 公司的课程,是给一个学习方向。 一、 PC自动化 1)什么项目适合 2)PC自动化介入时间点 3)自动化率: 频繁改动的&…