點(diǎn)擊上方藍(lán)字關(guān)注我們
許多應(yīng)用都要求能夠在頻域內(nèi)開展工作。本文將介紹如何處理FPGA設(shè)計(jì)中的頻域問題。
對(duì)許多工程師而言,在頻域中開展工作不如在時(shí)域中開展工作那么自然,可能是因?yàn)轭l率與復(fù)雜的數(shù)學(xué)運(yùn)算有關(guān)。但是要充分發(fā)揮賽靈思FPGA解決方案的潛力,您需要在這兩個(gè)域中自由切換。
令人欣慰的是詳細(xì)地掌握頻域并不像您最初想象的那樣令人生畏。不管是您自己設(shè)計(jì)的定制模塊還是市場(chǎng)上現(xiàn)有的IP模塊,都能幫助您輕松轉(zhuǎn)入轉(zhuǎn)出頻域。同時(shí)在頻域中實(shí)現(xiàn)高速處理的方法也不乏其數(shù)。
時(shí)域還是頻域?
工程師既能在時(shí)域中檢驗(yàn)和處理信號(hào),根據(jù)時(shí)間分析信號(hào),也能在頻域中檢驗(yàn)和處理信號(hào),根據(jù)頻率分析信號(hào)。項(xiàng)目對(duì)工程師的主要要求之一,就是應(yīng)該知道什么時(shí)候應(yīng)該開展哪種分析。
一般在電子系統(tǒng)中,需要考查的信號(hào)是一個(gè)不斷變化的電壓、電流或頻率。它可以是傳感器的輸出,也可能是系統(tǒng)其他部分生成的輸出。在時(shí)域中,您可以測(cè)量信號(hào)的幅度、頻率和周期,以及信號(hào)上升或下降時(shí)間等更有意義的參數(shù)。實(shí)驗(yàn)室環(huán)境中觀察時(shí)域信號(hào)常用的是示波器或邏輯分析儀。
但是信號(hào)的一些參數(shù)體現(xiàn)在頻域內(nèi)。必須在頻率中分析這些參數(shù),才能解讀其中包含的信息。在頻域中可以識(shí)別信號(hào)的頻率分量、各自的幅度和每種頻率的相位。由于在頻域中便于開展卷積運(yùn)算,因此在頻域中工作也能大大簡(jiǎn)化信號(hào)處理。卷積是一種將兩種信號(hào)混合成第三種信號(hào)的數(shù)學(xué)方法。和時(shí)域分析一樣,如果想要在實(shí)驗(yàn)室環(huán)境中觀察頻域信號(hào),可以使用頻譜分析儀。
根據(jù)信號(hào)的類型,如重復(fù)性還是非重復(fù)性、離散還是非離散,有多種方法可用于時(shí)域和頻域之間的變換
對(duì)某些應(yīng)用而言在時(shí)域中工作比較合適,例如用于監(jiān)測(cè)更大型系統(tǒng)的電壓或溫度的系統(tǒng)。雖然噪聲可能是個(gè)問題,在許多情況下取一定數(shù)量樣本的平均值就可以滿足要求。但對(duì)其他應(yīng)用來說,最好是在頻域中開展工作。例如需要從另一信號(hào)中過濾某種信號(hào)的信號(hào)處理應(yīng)用,或是需要將信號(hào)與噪聲源分離的信號(hào)處理應(yīng)用,最好在頻率中開展分析。
由于采樣是在時(shí)域中完成的,在時(shí)域中工作基本不需要對(duì)量化數(shù)字信號(hào)進(jìn)行后處理。與此相反,在頻域中開展工作首先要求應(yīng)用將量化數(shù)據(jù)從時(shí)域變換到頻域。同樣,從頻域輸出后處理過的數(shù)據(jù)時(shí),需要從頻率轉(zhuǎn)回到時(shí)域。
如何進(jìn)行變換?
根據(jù)信號(hào)的類型,如重復(fù)性還是非重復(fù)性、離散還是非離散,有多種方法可用于時(shí)域和頻域之間的變換,包括傅里葉級(jí)數(shù)、傅里葉變換和Z變換。尤其是在電子信號(hào)處理和FPGA應(yīng)用中,最常用到的變換是離散傅里葉變換(DFT),傅里葉變換中的一種。工程師使用DFT分析具有周期性和離散性的信號(hào),即由一定數(shù)量均勻分布在采樣頻率中的n位樣本組成的信號(hào)。在許多應(yīng)用中這種信號(hào)一般來自系統(tǒng)內(nèi)的ADC。
簡(jiǎn)單地說,DFT的工作原理就是把輸入信號(hào)分解成代表信號(hào)正弦分量和余弦分量的兩個(gè)輸出信號(hào)。因此對(duì)由N個(gè)樣本組成的時(shí)域序列,DFT會(huì)返回兩組N/2+1個(gè)余弦波樣本和正弦波樣本,分別被稱為實(shí)分量和虛分量(圖1)。實(shí)樣本和虛樣本的寬度為n位輸入信號(hào)寬度的n/2。
圖1 - 時(shí)域中的n位被變換為頻域中n/2實(shí)位和n/2虛位
計(jì)算DFT的算法十分簡(jiǎn)明,如下式所示:
其中,x代表時(shí)域信號(hào);i的取值為0到N-1;k的取值為0到N/2。這種方法被稱為關(guān)聯(lián)法,其功能是將輸入信號(hào)與對(duì)應(yīng)迭代的正弦波或余弦波相乘,以確定其幅度。
當(dāng)然,您可能想要在應(yīng)用中的某點(diǎn)從頻域變換回時(shí)域。為此可以使用綜合公式,它將實(shí)波形和虛波形結(jié)合起來,重建時(shí)域信號(hào),即:
但ReX和ImX是正弦波和余弦波的縮放結(jié)果,因此需要進(jìn)行縮放。除Rex[0]和Rex[N/2]之外的所有情況,ReX和ImX的值均為ReX[k]或ImX[k]除以N/2。對(duì)Rex[0]和Rex[N/2],則除以N。出于明顯的理由,這種運(yùn)算被稱為傅里葉反變換(IDFT)。
通過探討確定DFT和IDFT所使用的算法,可能有助于了解如何加以利用這些算法。
您可以使用Octave、MATLAB乃至Excel對(duì)所采集的數(shù)據(jù)進(jìn)行DFT計(jì)算。許多實(shí)驗(yàn)室工具,如示波器,也能根據(jù)需要執(zhí)行DFT計(jì)算。
不過需要指出的是上述的DFT和IDFT被稱為實(shí)DFT和實(shí)IDFT,因?yàn)檩斎氲氖菍?shí)數(shù)而非復(fù)數(shù)。很快就會(huì)清楚為何要了解這一點(diǎn)。
需要進(jìn)行變換的地方
從電信到圖像處理、雷達(dá)和聲納,難以想象有比傅里葉變換更強(qiáng)大、更適合并可實(shí)現(xiàn)FPGA中的分析技術(shù)。實(shí)際上DFT是最常用FPGA應(yīng)用之一(即,生產(chǎn)有限輸入響應(yīng)(FIR)濾波器系數(shù))的基礎(chǔ)(參閱賽靈思中國(guó)通訊第43期《數(shù)字濾波器設(shè)計(jì)與實(shí)現(xiàn)詳情》)。
但其用途不局限于濾波。DFT和IDFT還可用于電信處理中,用于執(zhí)行電信通道的信道化和重組。在頻譜監(jiān)測(cè)應(yīng)用中,它們可用來判斷監(jiān)測(cè)帶寬內(nèi)的頻率構(gòu)成。在圖像處理中,它們用于處理圖像卷積,供濾波器內(nèi)核開展圖像模式識(shí)別等操作。所有這些應(yīng)用在實(shí)現(xiàn)過程中一般使用比上文介紹的更有效的算法來計(jì)算DFT。
總而言之,了解DFT并將其實(shí)現(xiàn)在FPGA中是每個(gè)FPGA開發(fā)人員的必備技能。
歡迎加入至芯科技FPGA微信學(xué)習(xí)交流群,這里有一群優(yōu)秀的FPGA工程師、學(xué)生、老師、這里FPGA技術(shù)交流學(xué)習(xí)氛圍濃厚、相互分享、相互幫助、叫上小伙伴一起加入吧!
點(diǎn)個(gè)在看你最好看
原文標(biāo)題:FPGA設(shè)計(jì)中頻域問題的解決
文章出處:【微信公眾號(hào):FPGA設(shè)計(jì)論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
-
FPGA
+關(guān)注
關(guān)注
1625文章
21620瀏覽量
601232
原文標(biāo)題:FPGA設(shè)計(jì)中頻域問題的解決
文章出處:【微信號(hào):gh_9d70b445f494,微信公眾號(hào):FPGA設(shè)計(jì)論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論