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