1. FFT有什么用?
FFT(快速傅里葉變換)是離散傅里葉變換(DFT)的高效實現算法,它的核心作用是快速將信號從時域轉換到頻域,從而簡化信號分析和處理的過程。
自然界的信號(如聲音、圖像、電磁波等)通常以時域形式存在(即隨時間變化的波形),但很多特性(如頻率成分、諧波分布)在頻域中更易分析
FFT 能快速計算信號中各頻率分量的幅值和相位。可以進行頻率拆分與實時處理。FFT 是 “信號的透視鏡”,讓我們能 “看見” 信號的頻率本質,為后續的降噪、識別、監測等應用提供基礎。
在FPGA的IP核中可直接調用
2. 什么是信號調制與解調?
簡單來說,調制是 “把有用信息加載到載波上” 的過程,解調是 “從載波中提取出有用信息” 的過程,二者配合完成 “信息發送 — 傳輸 — 接收” 的閉環。
2.1 為什么需要調制與解調?
有用信息(如語音、文字、圖像)通常是低頻信號(稱為 “基帶信號”,如人聲頻率 300Hz~3kHz),直接傳輸存在兩大問題:
傳輸效率低:低頻信號的波長很長(如 1kHz 信號波長約 300 公里),需要巨大的天線才能發射,不現實;
信道擁擠:若所有信號都以低頻傳輸,不同信號會因頻率重疊而互相干擾(如同一個頻道的收音機雜音)。
因此,需要通過調制將基帶信號 “搬移” 到高頻載波上(類似 “把信件裝到快遞車上”),利用高頻信號易發射、可分頻復用的特點傳輸;接收端再通過解調“卸下” 載波上的信息(類似 “從快遞車上取下信件”),還原出原始信號。
2.2 調制:如何 “加載” 信息到載波?
載波是一個高頻正弦波(如廣播的 100MHz、手機的 2GHz
其數學表達式為:c(t)=Acsin(2πfct+?c)
其中,Ac(振幅)、fc(頻率)、?c(相位)是載波的三個關鍵參數。
調制的本質是用基帶信號(信息)改變載波的某一個或多個參數,讓載波 “攜帶” 信息。常見的調制方式有三種:
調幅(AM):用基帶信號改變載波的振幅。
例如:廣播中,人聲(基帶信號)越強,載波的振幅越大;
特點:實現簡單,但抗干擾能力弱(振幅易受噪聲影響)。
調頻(FM):用基帶信號改變載波的頻率。
例如:手機信號中,基帶信號的變化會讓載波頻率在中心頻率附近微小波動(如 2.4GHz±10kHz);
特點:抗干擾能力強(頻率變化不易被噪聲淹沒),音質更好,常用于調頻廣播、對講機。
調相(PM):用基帶信號改變載波的相位。
例如:數字通信中,“0” 對應載波相位 0°,“1” 對應相位 180°(稱為 “相移鍵控 PSK”);
特點:適合高速數字傳輸,廣泛用于 WiFi、衛星通信。
2.3 解調:如何 “提取” 信息?
解調是調制的逆過程,核心是從被調制的載波中 “還原” 出原始基帶信號。具體方法與調制方式對應:
調幅信號解調:通過 “檢波器” 提取載波振幅的變化,還原基帶信號;
調頻信號解調:通過 “鑒頻器” 將載波的頻率變化轉換為電壓變化,還原基帶信號;
調相信號解調:通過 “相位比較器” 對比載波相位與參考相位的差異,還原數字信息(0 或 1)。
3. 為什么FPGA是并行的?
FPGA(現場可編程門陣列)之所以具有并行處理能力,主要源于其硬件結構設計與工作原理。與 CPU(中央處理器)的順序執行不同,FPGA 的并行性體現在 “多個功能單元可同時獨立工作”,這一特性使其特別適合處理需要高吞吐量、低延遲的任務(如信號處理、加密、AI 推理等)。
硬件結構:多是LUT和CLB,天然支持并行計算
數據流驅動:非CPU按順序進行,而是并行計算,適用流水線和并行陣列
可編程:可按需定制并行結構
4. 濾波器的使用?
濾波器的核心功能是改變信號中不同頻率成分的幅值或相位。其數學本質是對輸入信號 x(n) 進行卷積運算。經常使用FIR IP核。可使用MATLAB 或 Python 生成低通濾波器系數,然后復制到IP核中。
FIR 濾波器的核心作用
FIR(Finite Impulse Response,有限脈沖響應)濾波器是一種線性時不變(LTI)數字濾波器,其核心作用是對信號中的特定頻率成分進行選擇性處理,具體包括:
保留有用頻率成分:讓符合需求的頻率信號通過(如音頻中的人聲、通信中的載波信號)。
抑制干擾頻率成分:衰減或濾除不需要的頻率信號(如噪聲、雜波、鄰道干擾等)。
頻率整形:調整信號的頻率分布,例如改變信號的帶寬、相位特性等。
FIR 濾波器的突出優勢是具有嚴格的線性相位特性(可設計為線性相位),即不同頻率成分通過濾波器后相位延遲與頻率成線性關系,不會導致信號失真(如音頻信號不會因相位失真產生 “變調”),因此在對相位敏感的場景(如通信、音頻處理、圖像處理)中廣泛應用。
5. 在FPGA設計中,如何進行頻率與相位補償
頻率補償
核心是使信號頻率與目標頻率一致,或補償因環境(溫度、電壓)、器件差異導致的頻率漂移,確保系統時鐘、數據速率的穩定性。
FPGA 的鎖相環(PLL) 和混合模式時鐘管理器(MMCM,如 Xilinx 器件) 是頻率補償的核心硬件資源,其原理是通過反饋環路動態調整輸出頻率,抵消偏差
方法 1:基于 PLL/MMCM 的頻率合成與校準
原理:PLL 通過比較輸入參考時鐘(Ref Clk)與反饋時鐘(FB Clk)的頻率差,生成控制信號調整壓控振蕩器(VCO)的輸出頻率,實現頻率鎖定。
補償過程:
應用:在通信系統中,用 PLL 將接收端時鐘與發射端載波頻率同步,補償信道引入的頻率偏移。
若輸入時鐘頻率存在偏差(如外部晶振實際頻率為 100MHz±50ppm),PLL 可通過分頻 / 倍頻系數調整,輸出精確的目標頻率(如 200MHz);
當環境變化導致 VCO 頻率漂移時,PLL 的反饋環路實時檢測偏差并修正,確保輸出頻率穩定。
方法 2:數字鎖相環(DPLL)的數字域補償
原理:純數字邏輯實現的鎖相環,通過數字鑒頻器、數字濾波器和數控振蕩器(DCO)實現頻率調整,適合無法使用硬件 PLL 的場景(如高頻信號的精細調整)。
補償過程:
應用:在軟件無線電(SDR)中,用 DPLL 補償射頻信號的多普勒頻偏。
數字鑒頻器計算輸入信號與本地參考信號的頻率差;
數字濾波器(如 PI 控制器)輸出控制字,調整 DCO 的輸出頻率(通過分頻 / 倍頻系數動態修改),直至頻率一致。
相位補償
核心是消除信號間的相位差(如時鐘與數據的相位偏移、多通道信號的相位不一致),確保信號在時間上對齊。
FPGA 通過延遲鎖相環(DLL)、可編程延遲線(PDL)、硬件延遲單元及數字邏輯調整實現相位補償,具體方法如下:
方法 1:基于 DLL 的時鐘相位調整
原理:DLL(Delay-Locked Loop)通過延遲線陣列將輸入時鐘延遲多個相位,再通過反饋環路鎖定輸出時鐘與輸入時鐘的相位,實現零相位差或固定相位差。
特點:相比 PLL,DLL 僅調整相位,不改變頻率,適合時鐘樹的相位對齊。
應用:在 FPGA 內部時鐘分配網絡中,用 DLL 補償不同邏輯模塊的時鐘延遲,確保全局時鐘相位一致。
方法 2:可編程延遲線(PDL)的精細相位補償
原理:FPGA 的專用延遲單元(如 Xilinx 的 IODELAY、Intel 的 ALTDLL)可通過配置實現皮秒(ps)級的延遲調整,直接補償信號路徑的相位差。
補償過程:
應用:LVDS 接口接收端,數據信號經 PCB 傳輸后與時鐘存在相位偏移,通過 IODELAY 調整數據采樣時刻,確保正確采樣。
先通過校準電路測量目標信號與參考信號的相位差(如高速數據信號與采樣時鐘的偏移);
配置 PDL 的延遲值,使信號延遲相應時間,抵消相位差。
方法 3:數字域相位補償(算法級)
多通道 ADC 采集時,各通道因器件差異存在相位不一致,可在 FPGA 中對每個通道的采樣數據添加數字延遲(如移位寄存器),實現相位對齊;
通信系統中,接收端通過Costas 環或相位跟蹤環路,對解調后的信號進行相位估計和補償,消除載波相位偏移。
當硬件延遲調整精度不足時,可在數字邏輯中通過算法補償相位差,適用于信號處理場景(如通信、雷達)。
例子:
6. 信號的帶寬
在 ADC、DAC 或其他電子設備中,帶寬(Bandwidth) 是描述其能夠 “準確處理信號頻率范圍” 的核心參數,通常以頻率單位(如 Hz、MHz)表示。簡單來說,它代表設備對高頻信號的 “響應能力”—— 帶寬不足,意味著無法準確捕捉或生成高頻信號。
以 ADC 為例理解 “帶寬”
ADC 的帶寬(通常稱為 “模擬輸入帶寬”,Analog Input Bandwidth)指的是:當輸入正弦波信號的頻率升高時,ADC 輸出的數字信號幅度衰減到 “低頻信號幅度的 70.7%(即 - 3dB)時的頻率值。
若某 12 位 ADC 的帶寬為 1MHz,說明:
對于頻率≤1MHz 的正弦波(如 500kHz),ADC 采集后還原的信號幅度幾乎無衰減(接近輸入信號的真實幅度);
當輸入信號頻率超過 1MHz(如 10MHz)時,ADC 輸出的信號幅度會嚴重衰減(可能只剩原來的 10% 甚至更低),且波形會失真(比如正弦波變成 “畸形” 的波浪形)。
為什么帶寬不足會導致 10MHz 信號采集失真?
信號的頻率越高,變化速度越快。ADC 采集信號時,需要通過內部的模擬電路(如采樣保持電路、放大器)對信號進行處理,而這些電路的 “響應速度” 是有限的:
對于 10MHz 的正弦波,其周期僅 0.1μs(100ns),信號在極短時間內完成正負半周的快速切換;
若 ADC 帶寬僅 1MHz,其內部電路無法跟上 10MHz 信號的變化速度,相當于對高頻信號 “反應遲鈍”,采集到的信號會丟失大量高頻分量,導致幅度衰減、波形畸變(比如原本平滑的正弦波變得 “扁平” 或 “鋸齒化”)。
類比理解
可以把 ADC 的帶寬比作 “相機的快門速度”:
帶寬高 → 快門快,能清晰抓拍高速移動的物體(高頻信號);
帶寬低 → 快門慢,拍高速移動的物體時會模糊(高頻信號失真)。
1MHz 帶寬的 ADC 采集 10MHz 信號,就像用快門速度 1 秒的相機拍飛馳的汽車,只能得到模糊的拖影,無法還原真實形態。
延伸:DAC 的帶寬
DAC 的帶寬(通常稱為 “輸出帶寬”)含義類似,指其輸出的模擬信號幅度衰減到 - 3dB 時的頻率。若 DAC 帶寬不足,生成高頻信號時會出現同樣的衰減和失真(比如本應輸出 10MHz 正弦波,結果變成幅度很低的 “失真波形”)。
7. 信號反射
現象
高速信號(如 1Gbps 以上的 LVDS、DDR 接口信號)在傳輸過程中出現 “過沖”“下沖” 或震蕩波形,導致接收端采樣錯誤(比如本應是高電平的信號,因過沖被誤判為低電平)。
原因
信號在 PCB 傳輸線中傳播時,若傳輸線阻抗與源端 / 負載端阻抗不匹配(如傳輸線阻抗 50Ω,但 FPGA 引腳輸出阻抗 30Ω),部分信號能量會被反射回源端,與原信號疊加形成干擾。
影響
在高速數據傳輸(如 DDR4 接口,速率 3200Mbps)中,反射會導致信號邊沿模糊,超過接收端的建立 / 保持時間要求,引發數據誤讀。
FPGA 中解決示例
端接匹配:在 FPGA 的高速差分接口(如 GTX)中,通過 IP 核配置內置的片上端接電阻(ODT,On-Die Termination),將負載端阻抗調整為與傳輸線一致(如 50Ω),吸收反射能量。
布線優化:PCB 設計時,確保 FPGA 到外部芯片(如 DDR 內存)的傳輸線阻抗連續,避免直角轉彎、線寬突變等導致的阻抗突變。
8. 信號串擾
現象
相鄰信號線之間的信號 “互相干擾”:當一根線(“ aggressor”)切換電平(如從 0→1)時,相鄰線(“ victim”)的信號會出現異常波動(如本應穩定的低電平突然跳變 100mV)。
原因
信號線之間存在寄生電容和互感:當 “干擾線” 電流變化時,會通過電磁耦合在 “被干擾線” 上產生感應電壓,即串擾。在高密度 FPGA 布線(如 BGA 封裝的 FPGA,引腳間距僅 0.8mm)中尤為明顯。
影響
在低速信號中可能無明顯影響,但在高速并行總線(如 8 位數據總線)中,串擾會導致相鄰數據線的信號同時跳變,引發 “數據錯誤”(比如本應傳輸1010,因串擾變成1110)。
FPGA 中解決示例
布線隔離:在 FPGA 的布局布線工具(如 Vivado)中,對高速信號線(如 SPI、I2C)設置 “禁止布線區域”,要求相鄰信號線間距≥3 倍線寬(如線寬 0.2mm,間距≥0.6mm),減少耦合,擴大時鐘網絡布線間距。
差分信號:將關鍵信號(如時鐘、高速數據)設計為差分對(如 LVDS),利用 “差分對的兩個信號反相” 特性,抵消外部串擾(干擾對兩根線的影響相同,差分后被消除)。
9. 時鐘抖動
現象
時鐘信號的周期不是嚴格恒定的,相鄰周期的時間差(“抖動”)超過設計閾值(如 100MHz 時鐘,理想周期 10ns,實際周期在 9.9ns~10.1ns 之間波動)。
原因
內部原因:FPGA 的 PLL/VCO 本身存在噪聲(如電源紋波導致 VCO 頻率波動);
外部原因:輸入參考時鐘的抖動(如晶振噪聲)、電磁干擾(EMI)。
影響
在高速采樣場景(如 ADC 采樣率 1GHz)中,時鐘抖動會導致采樣時刻偏移,降低采樣精度。例如:若抖動為 10ps,對 1GHz 信號采樣時,相位誤差可達 3.6°,可能導致信號幅值測量偏差超過 1%。
FPGA 中解決示例
低抖動 PLL 配置:使用 FPGA 的 “低噪聲模式” PLL(如 Xilinx 7 系列的 MMCM,開啟 “Jitter Optimization”),通過優化 VCO 供電、降低反饋環路帶寬,將輸出時鐘抖動控制在 5ps 以內。
時鐘樹隔離:將高速時鐘(如 ADC 采樣時鐘)與低速控制時鐘(如 10MHz)的布線物理隔離,避免互相干擾。
10. 電源噪聲
現象
FPGA 的核心電壓(如 1.0V)或 IO 電壓(如 3.3V)存在紋波(如 1.0V 電源上疊加 50mV 的高頻波動),導致邏輯電平不穩定。
原因
FPGA 內部邏輯翻轉時的 “動態電流” 突變(如大量寄存器同時切換狀態,瞬間電流從 100mA 跳至 500mA),導致電源電壓暫降。
影響
在高扇出邏輯(如一個時鐘驅動 100 個寄存器)中,電源噪聲可能導致邏輯電平超出閾值(如高電平最低要求 0.8V,因噪聲降至 0.7V,被誤判為低電平),引發邏輯錯誤。
FPGA 中解決示例
電源去耦:在 FPGA 的電源引腳附近放置多層陶瓷電容(0.1μF、10μF),吸收高頻紋波和動態電流突變;
分區供電:將 FPGA 的高速接口(如 GTX 收發器)與普通 IO 口分開供電(如 GTX 專用 1.2V 電源獨立于核心 1.0V 電源),避免高速模塊的電流波動干擾核心邏輯。
原文鏈接:
https://community.sslcode.com.cn/687462f7080e555a88cf50b5.html
-
FPGA
+關注
關注
1646文章
22054瀏覽量
618813 -
通信設計
+關注
關注
0文章
27瀏覽量
10642 -
信號調制
+關注
關注
0文章
40瀏覽量
9081 -
低頻信號
+關注
關注
2文章
50瀏覽量
8474
原文標題:FPGA通信設計十問
文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設計論壇】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
【高手問答】第2期——阿東帶你走進fpga的邏輯編程設計
高手問答匯往期回顧
【高手問答】第17期:小梅哥和你一起深入學習 FPGA
PROTEL應用常見問題及問答全集
通信工程師注意啦,57個LTE常見面試問答請收好資料下載

評論