用EXCEL做快速傅立葉轉換_FFT in Excel
转载来自:http://yufan-fansbook.blogspot.tw/2013/09/excel-fft-fast-fourier-transform02.html
[Excel]-用EXCEL做快速傅立葉轉換_FFT in Excel(Fast Fourier Transform in Excel)_02
第二步:建立想要做快速傅立葉分析的信號
在此舉一個週期為0.2秒(即頻率為5Hz)COS波為例,在B2,C2分別填上sample rate及40,這代表作快速傅立葉分析時的取樣頻率。在B3,C3分別填上number of sample及32,這代表在做快速傅立葉分析的過程中,總共將取32個取樣點,這裡要特別注意,在excel中的快速傅利葉分析功能中,取樣點數必須要 為2的整數次方,這就是說要利用Excel作快速傅立葉轉換時的取樣點數必須為2, 4, 8, 16, 32, 64, 128, 256, 1024, 2048, 4096,而且在MS Excel中最多只能分析4096個離散數值的快速傅立葉轉換。在B4,C4分別填上sampling time step及0.025,這代表兩個取樣點中間的時間差,其實也就是sample rate的倒數,或者在C4填上公式“=1/C2”。在B5填上delta frequency及在C5填上公式=C2/C3,這代表了快速傅立葉轉換的解析頻率,也等於取樣率/取樣點。 如圖1所示。
![]() |
| 圖1 |
在D8,E8,F8分別填上sample,time及signal,sample為取樣點,D9到D42分別為1到32。time為取樣的時間點從第0秒到第0.31秒。signal則為COS,可在此填上公 式"=COS(2*PI()*$C$5*E9)",在下拉至F40,則可完成此COS波,如圖2所示即為依由離散數值所組成之COS波型。
![]() |
| 圖2 |
然後在G8,H8,I8,J8中分別填上fft, amplitude, freq index, frequency,如圖3所示。
![]() |
| 圖3 |
第三步:對信號作快速傅立葉分析
接著就可以進行快速傅立葉轉換了,點選“資料分析”之後會出現各種分析工具,然後點選“傅立葉分析”,如圖4所示。
![]() |
| 圖4 |
點選確定之後,會出現如圖5的對話框,在輸入範圍中輸入F9~F40,在輸出範圍中輸入G9~G40,然後按確定。
![]() |
| 圖5 |
等程式運算完就會在fft那一欄之中輸出運算結果,如圖6。這些運算值為複數形式。在amplitude中的H29中,輸入公式“=IMABS(G9)”,然後再往下複製此公式至H40。“IMABS”會計算複數的絕對值,此絕對值即為快速傅立葉轉換後之振福。在J9中輸入公式“=0*$C$6”,以下J10公式則為“=1*$C$6”,並往下複製到J40。此欄便成為以C5(delta frequency)為公差之等差級數,這是代表快速傅立葉運算中的頻率遞增。
![]() |
| 圖6 |
![]() |
| 圖7 |
第四步:繪圖
然後以J9~J40為橫軸,以H9~H40為縱軸作一散佈圖,如圖8及圖9。
![]() |
| 圖8 |
由圖9,可以看出在頻率軸上有兩根頻率,其實以傅立葉轉換來說,實際可用的頻率為取樣頻率的一半,以此例來說就是20MHz。修改一下橫軸範圍至20MHz,如圖10。如此一來我們就完成了在Excel中計算快速傅立葉轉換的方法了。
![]() |
| 圖9 |
![]() |
| 圖10 |
以數學計算來說,我們所舉頻率為5Hz的正弦波的例子中,經複立葉轉換後應該只會有一種頻率成分的信號,也就是在頻域中只會有一個5Hz的信號存在,即cos波的傅立葉轉換應該為一peak,在圖10看來,信號不是這麼純(pure),並不是完全的peak,那是因為我們取樣的點數不夠所致,可以增加取樣點數來增加精準度。有關要如何增加快速傅立葉轉換的精準度,將在下次再做討論。
圖11為這次所完成的快速傅立葉轉換。
![]() |
| 圖11 |
用EXCEL做快速傅立葉轉換_FFT in Excel的更多相关文章
- Excel 批量快速合并相同的单元格:数据透视表、宏代码、分类汇总
Excel 批量快速合并相同的单元格 在制作Excel表格的时候,为了使得自己制作的报表更加简洁明了,方便查阅,经常需要合并很多相同的单元格,如果有几千几万条记录需要合并的话,真的会让人发疯.怎样 ...
- 浅谈FFT(快速博立叶变换)&学习笔记
0XFF---FFT是啥? FFT是一种DFT的高效算法,称为快速傅立叶变换(fast Fourier transform),它根据离散傅氏变换的奇.偶.虚.实等 特性,对离散傅立叶变换的算法进行改进 ...
- Oracle导入excel数据快速方法
Oracle导入excel数据快速方法 使用PLSQL Developer工具,这个可是大名鼎鼎的Oracle DBA最常使用的工具. 在单个文件不大的情况下(少于100000行),并且目的 ...
- Python办公自动化之Excel做表自动化:全网最全,看这一篇就够了!
文章目录 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手.很多已经做案例的人,却不知道如何去学习更加高深的知识.那么针对这三类人,我给大家 ...
- 2021年都要过去啦,你还在用Excel做数据可视化效果吗?
2021年都要过去啦,你还在用Excel做数据可视化效果吗?古语有云,"工欲善其事,必先利其器",没有专业的工具,前期准备的再好也是白搭.现在运用数据可视化工具于经营活动中的企业是 ...
- Excel如何快速统计一列中相同数值出现的个数--数据透视表
excel如何快速统计一列中相同数值出现的个数_百度经验 --这里介绍了两种解决方式,用第一种https://jingyan.baidu.com/article/9113f81b2c16822b321 ...
- 可视化设计,类Excel的快速开发平台
活字格Web应用生成器,是可视化设计,类Excel的快速开发平台,接下来给大家介绍如何体现这些特点. 一.可视化设计 网页系统的开发,包含UI设计+代码编写的工作,最终形成网页系统.这要求系统开发人员 ...
- java结合testng,利用excel做数据源的数据驱动实例
数据驱动部分,是自动化测试常用部分,也是参数化设计的重要环节,前面分享了,mysql.yaml做数据源,那么再来分享下excel做数据驱动 思路: 先用POI读取excel.解析读取数据,返回list ...
- numpy.loadtxt() 出现codecError_____ Excel 做矩阵乘法
1) 用 numpy读入csv文件是报错 UnicodeDecodeError: 'gbk' codec can't decode byte 0xbf in position 2: illegal m ...
随机推荐
- EBS 请求输出Html报表集成Echarts
百度开源的ECharts有样式丰富且美观的报表类型可供选用,可以将其集成至EBS请求输出的Html报表中,这其实就是一个生成Html数据的过程. 定义输出类型为HTML的请求我就不在此处赘述. 我 ...
- 牛客网练习赛23 F 托米的游戏
链接:https://www.nowcoder.com/acm/contest/156/F 来源:牛客网 题目描述 题目背景编不下去了 托米有一棵有根树 T, 树根为1,每轮他会在剩下的子树中等概率一 ...
- linux常用命令 history命令
历史命令 history [选项] [历史命令保存文件] 选项 '-c' 清空历史命令 '-w' 把缓存中的历史命令写入历史命令保存文件~/.bash_history [root@ssgao1987 ...
- Com 调用word和excel
using Microsoft.Office.Interop.Word;using System;using System.Collections.Generic;using System.Compo ...
- 8.7 C++二进制文件读写操作
参考:http://www.weixueyuan.net/view/6413.html 总结: 二进制文件的读写稍微麻烦一些,对二进制文件的读写同样需要打开文件和关闭文件,打开和关闭方式与文本文件相同 ...
- VS--------实用快捷键
Ctrl + M + O : 折叠所有方法 Ctrl + Tab: 切换不同窗口 ------------------------------开发--------------------------- ...
- python基础09_字符串格式化
首先,使用%s 的方法. #!/usr/bin/env python # coding:utf-8 # 不用format方法,使用%s 和%d name = 'Tom' age = 100 msg = ...
- 基于Verilog的按键检测实验
一.模块框图及基本思路 detect_module:检测按键输入脚的电平边沿变化 delay_10ms_module:延时消抖,输出按键有效信号 debounce_module:前两个模块的组合模块 ...
- 重启HA集群NameNode无缘无故挂掉
重启HA集群后,两个NameNode无缘无故挂掉,查看日志时显示错误如下: 原因:journalnode的端口是8485,默认情况下是先NameNode启动后再启动journalnode,如果在Nam ...
- CentOS磁盘满了,导致磁盘无法写入,这么清理
输入命令 du -sh /* | sort -nr 会列出根目录文件夹的大小 看到哪个文件夹比较大 删除相应的缓存,重启服务器即可










