导航:首页 > 操作系统 > 单片机fft

单片机fft

发布时间:2022-05-02 22:41:32

1. 51单片机做FFT到底行不行我想知道运算的速度有多慢,其转换时间是多少,请用数字说话。

可以做,但基本上做了这个,其他的就什么干不了了

2. 单片机位数对FFT计算有影响吗

应该说有。位数越多,越容易做高位数运算啊!
对精度的影响应该不大,关键还是速度,尽管FFT已经是简化了的,但计算量还是很大的。
8位单片机,因为位数的关系,同样的32位数,肯顶没有ARM做的快啊!
所以,精度容易保证,关键的是速度

3. 单片机实现傅立叶变换

用FPGA这种单片机

在对FFT(快速傅立叶变换)算法进行研究的基础上,描述了用FPGA实现FFT的方法,并对其中的整体结构、蝶形单元及性能等进行了分析。

关键词:

FPGA FFT

傅立叶变换是数字信号处理中的基本操作,广泛应用于表述及分析离散时域信号领域。但由于其运算量与变换点数N的平方成正比关系,因此,在N较大时,直接应用DFT算法进行谱变换是不切合实际的。然而,快速傅立叶变换技术的出现使情况发生了根本性的变化。本文主要描述了采用FPGA来实现2k/4k/8k点FFT的设计方法。

1 整体结构

一般情况下,N点的傅立叶变换对为:

其中,WN=exp(-2 pi/N)。X(k)和x(n)都为复数。与之相对的快速傅立叶变换有很多种,如DIT(时域抽取法)、DIF(频域抽取法)、Cooley-Tukey和Winograd等。对于2n傅立叶变换,Cooley-Tukey算法可导出DIT和DIF算法。本文运用的基本思想是Cooley-Tukey算法,即将高点数的傅立叶变换通过多重低点数傅立叶变换来实现。虽然DIT与DIF有差别,但由于它们在本质上都是一种基于标号分解的算法,故在运算量和算法复杂性等方面完全一样,而没有性能上的优劣之分,所以可以根据需要任取其中一种,本文主要以DIT方法为对象来讨论。

N=8192点DFT的运算表达式为:

式中,m=(4n1+n2)(2048k1+k2)(n=4n1+n2,k=2048k1+k2)其中n1和k2可取0,1,...,2047,k1和n2可取0,1,2,3。

由式(3)可知,8k傅立叶变换可由4×2k的傅立叶变换构成。同理,4k傅立叶变换可由2×2k的傅立叶变换构成。而2k傅立叶变换可由128×16的傅立叶变换构成。128的傅立叶变换可进一步由16×8的傅立叶变换构成,归根结底,整个傅立叶变换可由基2、基4的傅立叶变换构成。2k的FFT可以通过5个基4和1个基2变换来实现;4k的FFT变换可通过6个基4变换来实现;8k的FFT可以通过6个基4和1个基2变换来实现。也就是说:FFT的基本结构可由基2/4模块、复数乘法器、存储单元和存储器控制模块构成,其整体结构如图1所示。

图1中,RAM用来存储输入数据、运算过程中的中间结果以及运算完成后的数据,ROM用来存储旋转因子表。蝶形运算单元即为基2/4模块,控制模块可用于产生控制时序及地址信号,以控制中间运算过程及最后输出结果。

2 蝶形运算器的实现

基4和基2的信号流如图2所示。图中,若A=r0+j*i0,B=r1+j*i1,C=r2+j*i2,D=r3+j*i3是要进行变换的信号,Wk0=c0+j*s0=1,Wk1=c1+j*s1,Wk2=c2+j*s2,Wk3=c3+j*s3为旋转因子,将其分别代入图2中的基4蝶形运算单元,则有:

A′=[r0+(r1×c1-i1×s1)+(r2×c2-i2×s2)+(r3×c3-i3×s3)]+j[i0+(i1×c1+r1×s1)+(i2×c2+r2×s2)+(i3×c3+r3×s3)]� (4)

B′=[r0+(i1×c1+r1×s1)-(r2×c2-i2×s2)-(i3×c3+r3×s3)]+j[i0-(r1×c1-i1×s1)-(

i2×c2+r2×s2)+(r3×c3-i3×s3)] (5)

C′=[r0-(r1×c1-i1×s1)+(r2×c2-i2×s2)-(r3×c3-i3×s3)]+j[i0-(i1×c1+r1×s1)+(i2×c2+r2×s2)-(i3×c3+r3×s3)] (6)

D′=[r0-(i1×c1+r1×s1)-(r2×c2-i2×s2)+(i3×c3+r3×s3)]+j[i0+(r1×c1-i1×s1)-(i2×c2+r2×s2)-(r3×c3-i3×s3)]� (7)

看明白了吗?

4. 请问如何提高fft的分辨率

如何提高fft算法分辨率
FFT程序,输入是一组复数,输出也是一组复数,想问一下输入到底应该输入什么,输出的复数的含义是什么。
给定一组序列的抽样值,如何用FFT确定它的频率。
首先,fft函数出来的应该是个复数,每一个点分实部虚部两部分。
假设采用1024点fft,采样频率是fs,那么第一个点对应0频率点,第512点对应的就是fs/2的频率点。然后从头开始找模值最大的那个点,其所对应的频率值应该就是要的基波频率了。
FFT是离散傅立叶变换的快速算法,可以将一个信号变换到频域。
有些信号在时域上是很难看出什么特征的,但是如果变换到频域之后,就很容易看出特征了。
这就是很多信号分析采用FFT变换的原因。
另外,FFT可以将一个信号的频谱提取出来,这在频谱分析方面也是经常用的。
虽然很多人都知道FFT是什么,可以用来做什么,怎么去做,但是却不知道FFT之后的结果是什么意思、如何决定要使用多少点来做FFT。
一个模拟信号,经过ADC采样之后,就变成了数字信号。
采样定理告诉,采样频率要大于信号频率的两倍,这些就不在此罗嗦了。
采样得到的数字信号,就可以做FFT变换了。
N个采样点,经过FFT之后,就可以得到N个点的FFT结果。
为了方便进行FFT运算,通常N取2的整数次方。

5. 实现频谱分析,涉及单片机 。FFT变换。哪个高手可以给点思路。。

频谱分析,首先需要对应的频谱分析的器件
单片机仅仅进行简单的控制和数据处理
至于FFT,基本用不到,至于为啥?因为电磁波的时域波形以你的水平是分析不出来的。没有时域波形,你怎么FFT成频域波形?

比方分析光线的频谱
要先将光线通过分光装置,把光线色散开,变为频谱光带。
还需要光电转换装置,用来接收色散开的光,将能量转为电信号。
最后需要位移控制装置,控制光电转换装置在光带上移动。

单片机要做的是:控制移动、处理数据。如果需要,还需要量化装置。

6. 单片机芯片内部可以进行fft变换吗

不行的,某些型号的Dsp芯片可以进行这种运算,这是DSP的强项

7. 如何将一个声音信号输入到单片机里面进行fft求高手

将一个声音信号输入到单片机里面,可以通过麦克风,通常小小的那种咪头(耳机线常佩戴的)那种就可以,它的输出是电压量(声音信号--电信号),你可以用单片机去采样/或者AD芯片对其采样再把数据送个单片机进行处理,单片机内部的处理就可以说是跟matlab里面的处理类似了,而且都是用c语言的,相信很容易上手,祝好运。

8. 单片机 谁懂FFT

FFT就是快速傅里叶变换,是将时域中的数字信号编程频域,这是数字信号处理的内容,具体是如何进行的,建议你看看数字信号处理这本书

9. 高分求FFT (单片机)的幅度公式和功率公式

幅度就是虚部,实部平方和开根号,功率谱就是对于实部,虚部求平方和,输入的全部功率功率谱求积分。频谱泄漏是采样截断的问题,得看你具体的输入信号才能解决。采样频率不够频谱会混叠,截断不恰当会泄漏,适当截断或者用适当窗函数可以削弱泄漏问题

10. 使用单片机和FFT算法显示波形(高分!!!急救!!)

涉及到单片机跟上位机通信得问题,有模块一般用串口的比较多 网上去找吧 单片机的硬件应该考虑AD转换器(1024点的话 就用10bit特的AD吧) 若选用 STC的单片机自带10bitAD 可以不用考虑AD的问题 你的软件主要会涉及到两个部分吧 单片机的程序 和 上位机的显示程序(VB还是delphi就自己目前状况定吧) 难点还在于通讯这一块 如果以前没接触过花的时间可能会长点 还有你电压信号一般是工频的吧 采样定律要求采样率是它的两倍以上 所以100HZ以上的了 而且事实上要大上好几倍 最好500Hz以上吧(周期就倒数下)现在一般都用数据采集卡了 在大项目中单片机有点古老的感觉 你这课题用LabVIEW的还不错 几个框图一拉就完了 一周可以搞定 呵呵 不过以后要走技术的路 还是要一步一个脚印稳扎稳打从单片机起步吧~~~好了就这么多了,你也不必再问了,下次上线我不知道是什么时候了~~~

阅读全文

与单片机fft相关的资料

热点内容
未来最值得投资的加密货币 浏览:526
ascii码是编译的时候用吗 浏览:779
压缩机感应包可以通用吗 浏览:410
方舟服务器怎么发布到搜索列表 浏览:270
xml防反编译 浏览:239
数据传输加密系统技术方案 浏览:842
程序员没有准备去面试 浏览:4
51单片机usb鼠标 浏览:879
qq服务器的ip地址查询 浏览:112
java仿qq聊天 浏览:400
解压的ipa重新打包 浏览:142
程序员那么可爱vip版 浏览:239
程序员怎么升职 浏览:243
图形化命令按钮vb 浏览:987
vcu盘加密怎么设置 浏览:414
如何加密备份微信聊天记录 浏览:529
安卓手机如何模拟键盘 浏览:932
查看dns地址命令 浏览:768
android录屏工具 浏览:841
成都互动直播系统源码 浏览:955