91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

簡述FPGA的快速傅立葉變換

新機器視覺 ? 來源:國外電子元器件 ? 作者:連冰,宮豐奎,張 ? 2021-05-27 11:21 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

摘要:在對FFT(快速傅立葉變換)算法進行研究的基礎上,描述了用FPGA實現(xiàn)FFT的方法,并對其中的整體結構、蝶形單元及性能等進行了分析。 傅立葉變換是數(shù)字信號處理中的基本操作,廣泛應用于表述及分析離散時域信號領域。但由于其運算量與變換點數(shù)N的平方成正比關系,因此,在N較大時,直接應用DFT算法進行譜變換是不切合實際的。然而,快速傅立葉變換技術的出現(xiàn)使情況發(fā)生了根本性的變化。本文主要描述了采用FPGA來實現(xiàn)2k/4k/8k點FFT的設計方法。

1整體結構

一般情況下,N點的傅立葉變換對為: 其中,WN=exp(-2 pi/N)。X(k)和x(n)都為復數(shù)。與之相對的快速傅立葉變換有很多種,如DIT(時域抽取法)、DIF(頻域抽取法)、Cooley-Tukey和Winograd等。對于2n傅立葉變換,Cooley-Tukey算法可導出DIT和DIF算法。

本文運用的基本思想是Cooley-Tukey算法,即將高點數(shù)的傅立葉變換通過多重低點數(shù)傅立葉變換來實現(xiàn)。雖然DIT與DIF有差別,但由于它們在本質上都是一種基于標號分解的算法,故在運算量和算法復雜性等方面完全一樣,而沒有性能上的優(yōu)劣之分,所以可以根據(jù)需要任取其中一種,本文主要以DIT方法為對象來討論。

N=8192點DFT的運算表達式為: 式中,m=(4n1+n2)(2048k1+k2)(n=4n1+n2,k=2048k1+k2)其中n1和k2可取0,1,...,2047,k1和n2可?。?,1,2,3。 由式(3)可知,8k傅立葉變換可由4×2k的傅立葉變換構成。

同理,4k傅立葉變換可由2×2k的傅立葉變換構成。而2k傅立葉變換可由128×16的傅立葉變換構成。128的傅立葉變換可進一步由16×8的傅立葉變換構成,歸根結底,整個傅立葉變換可由基2、基4的傅立葉變換構成。2k的FFT可以通過5個基4和1個基2變換來實現(xiàn);

4k的FFT變換可通過6個基4變換來實現(xiàn);8k的FFT可以通過6個基4和1個基2變換來實現(xiàn)。也就是說:FFT的基本結構可由基2/4模塊、復數(shù)乘法器、存儲單元和存儲器控制模塊構成,其整體結構如圖1所示。 圖1中,RAM用來存儲輸入數(shù)據(jù)、運算過程中的中間結果以及運算完成后的數(shù)據(jù),ROM用來存儲旋轉因子表。蝶形運算單元即為基2/4模塊,控制模塊可用于產生控制時序及地址信號,以控制中間運算過程及最后輸出結果。

pIYBAGCvEQWAayI_AAA3NBdajKY531.png

2蝶形運算器的實現(xiàn)

基4和基2的信號流如圖2所示。

pIYBAGCvER6AUpFKAACTgGi-k4w094.png

圖中,若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)

而在基2蝶形中,Wk0和Wk2的值均為1,這樣,將A,B,C和D的表達式代入圖2中的基2運算的四個等式中,則有: A′=r0+(r1×c1-i1×s1)+j[i0+(i1×c1+r1×s1)]?? (8) B′=r0- (r1×c1-i1×s1)+j[i0-(i1×c1+r1×s1)] (9) C′=r2+(r3×c3-i3×s3)+j[i0+(i3×c3+r3×s3)]?? (10) D′=r2-(r3×c3-i3×s3)+j[i0-(i3×c3+r3×s3)]?? (11) 在上述式(4)~(11)中有很多類同項,如i1×c1+r1×s1和r1×c1-i1×s1等,

它們僅僅是加減號的不同,其結構和運算均類似,這就為簡化電路提供了可能。同時,在蝶形運算中,復數(shù)乘法可以由實數(shù)乘法以一定的格式來表示,這也為設計復數(shù)乘法器提供了一種實現(xiàn)的途徑。 以基4為例,在其運算單元中,實際上只需做三個復數(shù)乘法運算,即只須計算BWk1、CWk2和DWk3的值即可。

這樣在一個基4蝶形單元里面,最多只需要3個復數(shù)乘法器就可以了。在實際過程中,在不提高時鐘頻率下,只要將時序控制好?煴憧衫?用流水線(Pipeline)技術并只用一個復數(shù)乘法器就可完成這三個復數(shù)乘法,大大節(jié)省了硬件資源。

3FFT的地址

FFT變換后輸出的結果通常為一特定的倒序,因此,幾級變換后對地址的控制必須準確無誤。 倒序的規(guī)律是和分解的方式密切相關的,以基8為例,其基本倒序規(guī)則如下: 基8可以用2×2×2**基2變換來表示,則其輸入順序則可用二進制序列(n1 n2 n3)來表示,變換結束后,其順序將變?yōu)椋ǎ睿?n2 n1)。

如:X?煟埃保保?→ x?煟保保埃牐?即輸入順序為3,輸出時順序變?yōu)椋丁?更進一步,對于基16的變換,可由2×2×2×2,4×4,4×2×2等形式來構成,相對于不同的分解形式,往往會有不同的倒序方式。以4×4為例,其輸入順序可以用二進制序列(n1 n2 n3 n4)來表示變換結束后,其順序可變?yōu)椋ǎǎ睿?n4)(n1 n2))。

如:X?煟埃保保保?→ x?煟保保埃保牎<詞淙胨承蛭?7,輸出時順序變?yōu)椋保场?在2k/4k/8k的傅立葉變換中,由于要經(jīng)過多次的基4和基2運算,因此,從每次運算完成后到進入下一次運算前,應對運算的結果進行倒序,以保證運算的正確性。

4旋轉因子

N點傅立葉變換的旋轉因子有著明顯的周期性和對稱性。其周期性表現(xiàn)為: FFT之所以可使運算效率得到提高,就是利用 FFT之所以可使運算效率得到提高,就是利用了對稱性和周期性把長序列的DFT逐級分解成幾個序列的DFT,并最終以短點數(shù)變換來實現(xiàn)長點數(shù)變換。

根據(jù)旋轉因子的對稱性和周期性,在利用ROM存儲旋轉因子時,可以只存儲旋轉因子表的一部分,而在讀出時增加讀出地址及符號的控制,這樣可以正確實現(xiàn)FFT。因此,充分利用旋轉因子的性質,可節(jié)?。罚埃ヒ陨洗鎯卧?。 實際上,由于旋轉因子可分解為正、余弦函數(shù)的組合,故ROM中存的值為正、余弦函數(shù)值的組合。

對2k/4k/8k的傅立葉變換來說,只是對一個周期進行不同的分割。由于8k變換的旋轉因子包括了2k/4k的所有因子,因此,實現(xiàn)時只要對讀ROM的地址進行控制,即可實現(xiàn)2k/4k/8k變換的通用。

5存儲器的控制

因FFT是為時序電路而設計的,因此,控制信號要包括時序的控制信號及存儲器的讀寫地址,并產生各種輔助的指示信號。同時在計算模塊的內部,為保證高速,所有的乘法器都須始終保持較高的利用率。這意味著在每一個時鐘來臨時都要向這些單元輸入新的操作數(shù),而這一切都需要控制信號的緊密配合。

為了實現(xiàn)FFT的流形運算,在運算的同時,存儲器也要接收數(shù)據(jù)。這可以采用乒乓RAM的方法來完成。

這種方式?jīng)Q定了實現(xiàn)FFT運算的最大時間。對于4k操作,其接收時間為4096個數(shù)據(jù)周期,這樣?煟疲疲緣淖畬笤慫閌奔渚褪牽矗埃梗陡鍪?據(jù)周期。另外,由于輸入數(shù)據(jù)是以一定的時鐘為周期依次輸入的,故在進行內部運算時,可以用較高的內部時鐘進行運算,然后再存入RAM依次輸出。

為節(jié)省資源,可對存儲數(shù)據(jù)RAM采用原址讀出原址寫入的方法,即在進行下一級變換的同時,首先應將結果回寫到讀出數(shù)據(jù)的RAM存貯器中;而對于ROM,則應采用與運算的數(shù)據(jù)相對應的方法來讀出存儲器中旋轉因子的值。

在2k/4k/8k傅立葉變換中,要實現(xiàn)通用性,控制器是最主要的模塊。2k、4k、8k變換具有不同的內部運算時間和存儲器地址,在設計中,針對不同的點數(shù)應設計不同的存儲器存取地址,同時,在完成變換后,還要對開始輸出有用信號的時刻進行指示。

6硬件的選擇

本設計的硬件實現(xiàn)選用的是現(xiàn)場可編程門陣列(FPGA)來滿足較高速度的需要。本系統(tǒng)在設計時選用的是ALTERA公司的STRATIX芯片,該芯片中包含有DSP單元,可以完成較為耗費資源的乘法器單元。

同時,該器件也包含有大量存儲單元,從而可保證旋轉因子的精度。 除了一些專用引腳外,FPGA上幾乎所有的引腳均可供用戶使用,這使得FPGA信號處理方案具有非常好的I/O帶寬。大量的I/O引腳和多塊存儲器可使設計獲得優(yōu)越的并行處理性能。其獨立的存儲塊可作為輸入/工作存儲區(qū)和結果的緩存區(qū),這使得I/O可與FFT計算同時進行。

在實現(xiàn)的時間方面,該設計能在4096個時鐘周期內完成一個4096點的FFT。若采用10MHz的輸入時鐘,其變換時間在200μs左右。而由于最新的FPGA使用了MultiTrack互連技術,故可在250MHz以下頻率穩(wěn)定地工作,同時,FFT的實現(xiàn)時間也可以大大縮小。

FFT運算結果的精度與輸入數(shù)據(jù)的位數(shù)及運算過程中的位數(shù)有關,同時和數(shù)據(jù)的表示形式也有很大關系。一般來說,浮點方式比定點方式精度高。而在定點計算中,存儲器數(shù)據(jù)的位數(shù)越大,運算精度越高,使用的存儲單元和邏輯單元也越多。在實際應用中,應根據(jù)實際情況折衷選擇精度和資源。

本設計通過MATLAB進行仿真證明:其實現(xiàn)的變換結果與MATLAB工具箱中的FFT函數(shù)相比,信噪比可以達到65db以上,完全可以滿足一般工程的實際應用要求。

作者:連冰,宮豐奎,張力,李兵兵

編輯:jq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • RAM
    RAM
    +關注

    關注

    8

    文章

    1399

    瀏覽量

    120525
  • 數(shù)字信號處理

    關注

    16

    文章

    571

    瀏覽量

    47770
  • FDT
    FDT
    +關注

    關注

    0

    文章

    5

    瀏覽量

    9378

原文標題:基于FPGA的快速傅立葉變換

文章出處:【微信號:vision263com,微信公眾號:新機器視覺】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    一文掌握Δ-Y變換的基礎知識

    Δ-Y變換(或Y-Δ變換)是一種可以簡化包括三相電路在內的復雜電阻和阻抗網(wǎng)絡,并實現(xiàn)順暢分析的基礎技術。顧名思義,通過三角形(德爾塔,Δ)接法與星形(Y)接法的等效互換,使得Δ-Y變換(或Y-Δ
    的頭像 發(fā)表于 02-25 09:49 ?354次閱讀
    一文掌握Δ-Y<b class='flag-5'>變換</b>的基礎知識

    代碼實戰(zhàn)!什么是傅里葉變換?有什么用?Matlab實現(xiàn)FFT

    的提出讓人們看問題的角度從時域變成了頻域,多了一個維度。快速傅里葉變換算法的提出普及了傅里葉變換在工程領域的應用,在科學計算和數(shù)字信號處理等領域,F(xiàn)FT至今依然是非常強大的工具之一。傅里葉變換
    的頭像 發(fā)表于 01-16 07:45 ?526次閱讀
    代碼實戰(zhàn)!什么是傅里葉<b class='flag-5'>變換</b>?有什么用?Matlab實現(xiàn)FFT

    基于FPGA開發(fā)板TSP的串口通信設計

    本文詳細介紹基于Terasic FPGA開發(fā)板TSP(又名C5P和OSK)和其板載CP2102N USB-UART橋接芯片的串口通信系統(tǒng)設計與實現(xiàn)。系統(tǒng)采用Verilog HDL編寫UART收發(fā)控制器,通過CP2102N實現(xiàn)FPGA與PC間的
    的頭像 發(fā)表于 10-15 11:05 ?4457次閱讀
    基于<b class='flag-5'>FPGA</b>開發(fā)板TSP的串口通信設計

    舵機原理簡述!

    舵機原理簡述 舵機是一種高精度的位置伺服執(zhí)行機構,廣泛應用于機器人關節(jié)、無人機舵面控制、航模操控等場景,其核心功能是通過接收控制信號,精確驅動輸出軸旋轉到指定角度并保持穩(wěn)定。以下從結構組成、控制
    的頭像 發(fā)表于 08-22 10:57 ?1860次閱讀

    FFT快速傅里葉變換——方波及其諧波驗證

    FFT傅里葉變換是測試中很常用的一個功能,今天給大家分享一下先給示波器一個方波信號,看下它的參數(shù),加一下頻率和幅度值,是一個1MHz、5V的方波信號演示過程我們看一下它的FFT信號是什么樣的點擊
    的頭像 發(fā)表于 08-13 17:34 ?1226次閱讀
    FFT<b class='flag-5'>快速</b>傅里葉<b class='flag-5'>變換</b>——方波及其諧波驗證

    如何實現(xiàn)高效雙向電能變換

    隨著電動汽車、家庭和工商業(yè)儲能產品快速普及,雙向電能變換系統(tǒng)的熱度也在不斷攀升。作為電網(wǎng)與電池的功率橋梁,雙向電能變換系統(tǒng)基于一套硬件電路就能控制電池充放電,實現(xiàn)能量雙向流動,相比傳統(tǒng)單向變換
    的頭像 發(fā)表于 07-23 11:40 ?1552次閱讀

    FPGA通信設計常見問答

    FFT(快速傅里葉變換)是離散傅里葉變換(DFT)的高效實現(xiàn)算法,它的核心作用是快速將信號從時域轉換到頻域,從而簡化信號分析和處理的過程。
    的頭像 發(fā)表于 07-21 16:05 ?2595次閱讀

    WP4000變頻功率分析儀能不能測量間諧波?

    時,稱為諧波(harmonics);當正弦波分量的頻率是原交流信號的頻率的非整數(shù)倍時,稱為分數(shù)諧波,也稱分數(shù)次諧波或間諧波(inter-harmonics)。 通常的諧波測量儀器使用傅立葉變換的方法進行諧波分析,而傅立葉
    的頭像 發(fā)表于 07-21 11:04 ?542次閱讀
    WP4000變頻功率分析儀能不能測量間諧波?

    傅里葉變換的原理及應用

    01什么是傅里葉變換?一句話概括:“把復雜信號拆成多個簡單正弦波的疊加?!本拖癜岩坏阑旌瞎夥纸獬刹屎纾ㄆ呱猓?,傅里葉變換能把任何波動信號(聲音、圖像、電磁波等)拆解成不同頻率的“正弦波”組合。02
    的頭像 發(fā)表于 06-30 09:54 ?5881次閱讀
    傅里葉<b class='flag-5'>變換</b>的原理及應用

    FPGA使用Cordic算法求解角度正余弦值

    在進行坐標變換的時候,需要計算角度的正余弦值,而在FPGA中是不能直接進行求解的,需要采用其它的方式進行求解。
    的頭像 發(fā)表于 06-19 09:54 ?1408次閱讀
    <b class='flag-5'>FPGA</b>使用Cordic算法求解角度正余弦值

    智多晶FPGA設計工具HqFpga接入DeepSeek大模型

    在 AI 賦能工程設計的時代浪潮中,智多晶率先邁出關鍵一步——智多晶正式宣布旗下 FPGA 設計工具 HqFpga 接入 DeepSeek 大模型,并推出 FPGA 設計專屬 AI 助手——晶小助!這是
    的頭像 發(fā)表于 06-06 17:06 ?1527次閱讀

    進群免費領FPGA學習資料!數(shù)字信號處理、傅里葉變換FPGA開發(fā)等

    進群免費領FPGA學習資料啦!小編整理了數(shù)字信號處理、傅里葉變換FPGA開發(fā)等FPGA必看資料,需要的小伙伴可以加小助手(微信:elecfans123)或進 QQ 群:9135011
    發(fā)表于 04-07 16:41

    VirtualLab Fusion應用:用于X射線成像的單光柵干涉儀

    –電磁場探測器[用例] ?正確設置傅立葉變換傅立葉變換設置–實例討論[用例] VirtualLab Fusion技術
    發(fā)表于 03-21 09:12

    VirtuaLab Fusion:從光線光學到物理光學的無縫轉換

    系統(tǒng)建模是由數(shù)學上表示為求解器的操作符來表示的。我們用這種方法連接求解器,并且我們稱之為場追跡連接求解器。求解器可以在x域和k域工作。傅立葉變換連接了這些域??梢钥闯?,被傅里葉變換的光場顯示出低衍射效應
    發(fā)表于 03-14 08:54

    無橋PFC變換器綜述

    器;Sepic 變換器;Cuk 變換器 0 引言 隨著電力電子技術的快速發(fā)展和各行各業(yè)中的廣泛應用,接入電網(wǎng)的電力電子開關電源設備是向電網(wǎng)注入諧波的主要來源,使得電力系統(tǒng)的諧波問題日益嚴重。諧波的抑制
    發(fā)表于 03-13 13:50