FT(Fourier Transform)在滤波上的应用

news/2024/9/20 8:15:00

数学真的是一个神奇的科学,美妙之处无法言语形容。

傅里叶变换的推导见博客:

对于非周期的函数就是周期T趋于0,将一般非周期的函数写作傅里叶级数的形式:

f(t)=\frac{1}{2\pi }\int_{-\infty }^{+\infty }\int_{-\infty}^{+\infty}f(t)\ e^{-i\omega t}dt\ e^{i\omega t}\ d\omega

其中:F(\omega )=\int_{-\infty}^{+\infty}f(t)\ e^{-i\omega t}dt就是FT(Fourier Transform)。

其中:f(t)=\frac{1}{2\pi }\int_{-\infty }^{+\infty }F(\omega )\ e^{i\omega t}\ d\omega就是IFT(inverse Fourier transform)。

傅里叶变换其中一个最主要的应用就是滤波上,关于滤波最主要的就是首选要确定他的频率是什么他的频谱是什么,然后找到我们不想要的这部分把它过滤掉就行了。

下面举个例子:

0、我们简单的图形:

(1)函数形式是cosx

(2)函数形式是cos10x

 函数形式0.1cos10x

(3)函数形式是cos100x

放大看一下:

 函数形式0.1cos100x

 1、比如说我们现在有一个这样的图形,函数形式是\cos x+0.1\cos10x+0.1\cos100x

 我们看到他是一个非常乱的图形,因为他有cos100x,他是震动很快的。

把上述图像放大:

 下图中绿色的是cos100x,蓝色的是\cos x+0.1\cos10x+0.1\cos100x

 上图越放大看的越清楚,因为他是频率很高,所以变化很快,如果我们想滤波滤掉他,我们首先给你一个函数之后,可以把他进行一下傅里叶变换,这个时候在你的频谱图上你会看到\omega =1的时候他会有一个这么1的振幅,因为cosx嘛,在\omega =10的时候他有这么0.1的振幅,在\omega =100的时候他有这么0.1的振幅,所以我们就会知道他这个比较讨厌的振幅是10和100,我们想把它去掉,这个时候就可以使用一些低通滤波器,(滤波器最简单的手段:最简单的这种低频率可以滤掉高频率的滤波器的一种手段就是你对他做积分就可以了,比如现在的\cos x+0.1\cos10x+0.1\cos100x式子我们对他做积分就变成了sinx+0.01sin10x+0.001sin100x看下图发现做完积分之后就会变的平滑多了,因为他把高频项10x项缩小了10倍,把100x项缩小了100倍,看到越高频的项通过积分之后他缩减的就越小(这就是为什么积分也叫低通滤波),相当于原来的函数来说他只是有一个相位的平移,因为积分器本身来说他是一个线性滤波器,所以他对三角函数来说只是改变了他的振幅和相位,他的形状是不改变的,如果你觉得积分一次你不满意,你可以再对他进行一次积分) 

 再对sinx+0.01sin10x+0.001sin100x

进行一次积分, 变成-cosx-0.001cos10x-0.00001cos100x ,图像如下图中红色线。

 我们发现红色线和原来的cosx图像已经非常接近了。

 上述就是傅里叶级数和傅里叶变换的一个应用,做滤波可以你来决定哪一个项是杂音项,然后来进行一下选择。

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

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

相关文章

Don‘t entangle those useless things

纠结那些没有必要的问题会很浪费时间的。所以我总是纠结那些

Pyhton,OpenCV对象检测之——Haar级联人脸及眼睛检测

Pyhton,OpenCV对象检测之——Haar级联人脸及眼睛检测 1. 效果图2. 原理2.1 Haar人脸检测原理2.2 Haar级联预训练的模型3. 源码3.1 图像面部及眼睛检测3.2 视频帧面部及眼睛检测参考这篇博客将介绍如何使用预训练的模型——基于Haar特征的级联检测器进行人脸及眼睛检测。 使用…

咕泡学院:(1)唐宇迪python课程作业

超级详细的python思维导图见链接: https://download.csdn.net/download/m0_37957160/22526313 python数据科学必备工具实战思维导图链接: pandas思维导图链接: 可视化库Matplotlib思维导图链接: 可视化库Seaborn思维导图链接&a…

使用Python和OpenCV在图像之间执行超快速的颜色转换

使用Python和OpenCV在图像之间执行超快速的颜色转换 1. 效果图2. 原理2.1 颜色转移算法2.2 步骤2.3 算法改进3. 源码参考这篇博客将介绍如何使用Python和OpenCV在图像之间执行超快速的颜色转换。 与Reinhard基于直方图的颜色传递方法不同,该方法严格依赖Lab*颜色空间中像素强度…

神经网络基础:(1)得分函数 or 得分函数

比如任务想做一个10分类的分类器:要得到属于每个类别的得分,所以叫做得分函数。 对于每个x它属于每一个类别的得分值。 上图中的猫是有像素点所决定的,他一共有32x32x3=3072个像素点;比如说猫耳朵或者猫眼睛以及图片中的背景对像素点的影响是不一样的。有些像素点对于他是…

OpenCV中的对极几何和对极约束

OpenCV中的对极几何和对极约束 1. 原理参考这篇博客将学习多视图几何的基础知识,如什么是对极、对极线、对极约束等。 1. 原理 当使用针孔相机拍摄图像时会丢失一个重要的信息,即图像的深度。或者图像中的每个点离相机有多远,因为它是 3D 到 2D 的转换。 如上图俩个相机一…

神经网络基础:(2)损失函数

比如上述分类,你只知道他做的不好,但是如何知道他做的有多差呢?而是具体一个数值。 神经网络是既能做分类也能做回归,能做的事情比较多,唯一的区别就是损失函数你是如何定义的。做不同的任务就是损失函数不同而已。 上…

Matplitlib绘图入门1,这一篇就够了

Matplitlib绘图入门1,这一篇就够了 1. 绘制简单的图表(标题、标签轴、刻度轴、表说明)2. 绘图辅助函数方法,绘制多个图(随机点绘制多个子图,点状、x状等)3. 可交互式绘图(一图单线关闭新展现一图,及一图多线)4. 3种方法简化加速渲染图参考1. 绘制简单的图表(标题、标…