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

評論