導航:首頁 > 操作系統 > 單片機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相關的資料

熱點內容
伺服器主機如何設置啟動 瀏覽:282
linux配置網路命令 瀏覽:774
一張照片怎麼製作視頻app 瀏覽:908
pythonweb和php 瀏覽:976
電腦伺服器地址ip地址 瀏覽:823
對矩陣壓縮是為了 瀏覽:910
setfacl命令 瀏覽:172
linux子系統中斷 瀏覽:342
linux查看進程ps 瀏覽:224
知識庫系統php 瀏覽:623
小波變換壓縮圖像python 瀏覽:151
阿里巴巴程序員怎麼月入百萬 瀏覽:173
如何使用國外伺服器 瀏覽:188
燃燈者pdf 瀏覽:468
編譯器用數學嗎 瀏覽:7
圖形化apk反編譯工具 瀏覽:48
考勤表加密怎麼辦 瀏覽:735
arj壓縮與解壓批處理怎麼寫 瀏覽:658
php和大數據哪個好 瀏覽:930
未來最值得投資的加密貨幣 瀏覽:526