傅立叶变换(FT, Fourier Transform)的作用是将一个信号由时域变换到频域。其实就是把数据由横坐标时间、纵坐标采样值的波形图格式,转换为横坐标频率、纵坐标振幅(或相位)的频谱格式。变换后可以很明显地看出一些原先不易察觉的特征。
离散傅立叶变换(DFT)的算法属于线性变换。由于对每个采样点,都要做一次全部点的加权求和的运算,因此当采样点比较多时,运算速度会很慢。
快速傅立叶变换(FFT)是DFT的快速算法,运算结果和DFT是相等的。其原理是利用权值的对称性与周期性,把采样点分解成两份,每份的点数是原来的一半,这样运算量也会减半。然后可以继续分解为4份、份、份……以此不断提升效率。

波形的公式:

采样植(y) - 纵坐标轴代表采样点的值
时间(t) - 横坐标轴代表时间,或者代表当前是第几个采样点
振幅(A) - 也叫幅度,代表波的高度(峰值)
圆频率(ω) - ω=2π*f,f代表频率
相位(ω*t) - 是个角度,一般用弧度制表示,弧度制的0~2π,代表0度到360度

采样点数量(N) - 采样的数据是离散的,常常用散点来表示,下图共有20个采样点。

频率(f) - 是单位时间内完成振动的次数,f=波的重复次数/N。

假如一个波的图形为:采样点数量(N)=200,振幅(A)=3,频率为10个波,即3*sin(2π*10/200)。

经过傅立叶变换后,可以看到在大约10的位置有一条竖线,由此很容易看出,频率为10个波。由于变换的结果是个对称图形,因此在右边200-10的对应位置也会出现一条竖线。变换后的数据,除了这两条竖线以外,其它值的都近似为0,是个稀疏矩阵

运算结果是复数,输出值取复数的模(绝对值)。复数的模 = 实部的平方+虚部的平方,再开平方 = sqrt(real^2+imagine^2)

如果只为提取特征的话,使用上面的输出值就可以了。如果想得到标准的振幅和频率值,那么:
振幅 = 输出值/(N/2) = 300/(200/2) = 3
频率 = 波的重复次数/N = 10/200 = 0.05

Matlab:

N = 200; % 采样点数量
A = 3; % 振幅
fv = 10; % 波的重复次数
f = fv / 200; % 频率
t = [1:200]; % 时间

y = A * sin(t*2*pi*f); % 生成波形采样数据
plot(y); % 显示时域图

figure;
Y = fft(y, N); % FFT变换
plot(abs(Y)); % 显示频域图

--------------------------------------------
傅立叶变换入门:http://news.cnblogs.com/n/209014/
FFT是基于复数运算的,而实际采样点的数据一般是实数,因此要转换成复数形式。标准的做法是复数的实数部分为采样点的实数数据,虚数部分全部填0。(但这样做会有一定运算效率的问题,因为填0的部分也参与运算,对此也有一些优化算法。)

傅里叶变换 fft_generic halcon的更多相关文章

  1. 《HALCON数字图像处理》第六章笔记

    目录 第六章 图像增强 图像增强的概念和分类 灰度变换 直方图处理 图像的平滑 图像的锐化 图像的彩色增强 我在Gitee上建了个仓库,会将学习书本的时候打的一些代码上传上去,笔记中所有代码都在仓库里 ...

  2. halcon算子

    halcon的算子列表   Chapter 1 :Classification 1.1 Gaussian-Mixture-Models 1.add_sample_class_gmm 功能:把一个训练样 ...

  3. 《zw版·Halcon-delphi系列原创教程》 Halcon分类函数006, image,影像处理(像素图)

    <zw版·Halcon-delphi系列原创教程> Halcon分类函数006, image,影像处理(像素图) 为方便阅读,在不影响说明的前提下,笔者对函数进行了简化: :: 用符号“* ...

  4. halcon的算子列表

    Chapter 1 :Classification 1.1 Gaussian-Mixture-Models 1.add_sample_class_gmm 功能:把一个训练样本添加到一个高斯混合模型的训 ...

  5. 《zw版·delphi与halcon系列原创教程》zw版_THOperatorSetX控件函数列表 v11中文增强版

    <zw版·delphi与halcon系列原创教程>zw版_THOperatorSetX控件函数列表v11中文增强版 Halcon虽然庞大,光HALCONXLib_TLB.pas文件,源码就 ...

  6. Halcon 常用算子使用场合

    Chapter 1 :Classification 1.1 Gaussian-Mixture-Models 1.add_sample_class_gmm 功能:把一个训练样本添加到一个高斯混合模型的训 ...

  7. Halcon算子解释

    Halcon算子解释大全 Halcon/Visionpro视频教程和资料,请访问 重码网,网址: http://www.211code.com Chapter 1 :Classification 1. ...

  8. HALCON中的算子大全(中英对照)

    HALCON中的算子大全(中英对照) Chapter 1 :Classification1.1 Gaussian-Mixture-Models1.add_sample_class_gmm功能:把一个训 ...

  9. 【halcon】学习记录

    图像采集和二值化等处理 * Image Acquisition : Code generated by Image Acquisition open_framegrabber (, , , , , , ...

随机推荐

  1. VS打包资源文件,转自推酷,请小星同学查看

    上篇博客把收费系统的总体设计进行了一遍讲解,讲解的同时掺杂了些有关.NET编译机制的总结.程序编写测试完成后接下来我们要做的是打包部署程序,但VS2012让人心痛的是没有了打包工具.不知道出于什么原因 ...

  2. Kindle3与亚马逊

    喜欢上亚马逊,偶尔会买些免费或极低价格的书,但始终无法把这些书传到“我的”kindle3上,原因是kindle3无法在中国注册,又绕不开DRM,同时经历了换屏.换主板,早已不是原来的kindle了.今 ...

  3. iOS UIButton 设置图片文字垂直排列

    后面经过测试,如果button的文字长度变更,会导致图片位置变化,经过多次修改UIEdgeInsets的值也没有达到期望效果,最终采用集成UIButton类,重写layoutSubviews函数实现, ...

  4. HDU 4771 Stealing Harry Potter's Precious

    Stealing Harry Potter's Precious Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 ...

  5. JAVA·多线程:线程优先级

    每次结果不尽相同,优先级不能完全保证! package multiThread; public class Thread04Priority { public static void main(Str ...

  6. Linux神器之Strace的实践(Ubuntu上服务幽灵般的消失)

    不论是运维,还是开发,面对Linux系统,时常会因为配置参数或者系统的权限(iptables限制端口,selinux拦截,文件目录权限等)原因出现程序或者服务异常,无法启动等等.特别是在Linux的文 ...

  7. [AFUI]App Framework Quickstart

    ---------------------------------------------------------------------------------------------------- ...

  8. Flash Builder 4.6 BUG 远程访问受阻

    今天调试项目的时候,惊讶的发现在使用RemoteObject进行远程访问时出现奇怪现象,只能在服务器本地实现访问,在其他客户机上提示2048错误,send failed,差点没把我吓死,记得之前测试过 ...

  9. ASP.NET MVC 开源项目学习之ProDinner (三)

    第四层:Resources   这一层里面主要是几个资源文件. 资源文件知识小杂烩: 几乎每一个生产性应用程序都需要使用资源.资源是在逻辑上由应用程序部署的任何非可执行数据.资源可以在应用程序中作为错 ...

  10. ajax 方法解密

    1:GET访问 浏览器 认为 是等幂的就是 一个相同的URL 只有一个结果[相同是指 整个URL字符串完全匹配]所以 第二次访问的时候 如果 URL字符串没变化 浏览器是 直接拿出了第一次访问的结果 ...