GFSK RX Core分為以下幾個模塊:
1.Frequency offset compensation CORDIC
2.A low pass filter
3.A power estimator for packet detection,RSSI and digital gaion computation for DPSK path
4.A demodulator implemented as Phase Shift Discriminator
5.A drequency offset estimator
6.Sampling time offset estimator
7.A synchronizer doing jointly packet and symbol synchronization
8.A detector implemented as a decision feedback equalizer
9.A long range symbol de-mapper
10.Soft input viterbi decoder .
詳細解釋一下上述10個部分組成的藍牙GFSK RX Core的架構原理以及各部分的作用以及算法原理
這個藍牙 GFSK RX Core 的架構是一個典型的、高效的零中頻接收機設計,專為處理藍牙標準的 Gaussian Frequency Shift Keying 信號而優化。下面我將詳細解釋這10個模塊的原理、作用以及核心算法:
首先是射頻到基帶的信號處理鏈(1-4模塊),其次是同步補償機制(5-7),最后是解調譯碼(8-10)
核心目標: 將從天線接收到的、經過信道損傷(噪聲、干擾、頻偏、時偏、衰減)的射頻 GFSK 信號,恢復出發送端發送的數字比特流。
架構流程概覽:
射頻信號 -> 下變頻(通常在模擬域完成,產生 I/Q 信號)-> ADC -> RX Core 開始 -> [1. 頻偏補償] -> [2. 低通濾波] -> [3. 功率估計] -> [4. 鑒頻解調] -> [5. 頻偏估計] -> [6. 采樣時偏估計] -> [7. 同步器] -> [8. DFE 檢測器] -> [9. 長距離解映射] -> [10. 維特比譯碼] -> 輸出解碼比特流。
模塊詳細解釋:
-
Frequency Offset Compensation CORDIC
- 作用: 補償發射機與接收機本地振蕩器之間的頻率偏差(Frequency Offset, FO),以及由多普勒效應等引起的微小頻率漂移。這對于后續的解調至關重要,因為頻偏會扭曲信號相位,導致解調錯誤。
- 算法原理: 使用 CORDIC 算法實現復數旋轉器。
- 輸入: 數字化的 I/Q 采樣點。
- 處理: 根據估計出的頻偏值(通常由模塊5提供),計算每個采樣點需要旋轉的相位角度增量
Δθ = -2π * Δf * T_s
(Δf 是頻偏估計值,T_s 是采樣周期)。CORDIC 算法通過迭代移位和加減法高效地計算出cos(Δθ * n)
和sin(Δθ * n)
,并用它們對輸入的 I/Q 采樣點進行復數乘法(即旋轉):I_corr = I * cos(Δθ * n) - Q * sin(Δθ * n) Q_corr = I * sin(Δθ * n) + Q * cos(Δθ * n)
- 輸出: 頻偏得到補償后的 I/Q 采樣點。這相當于將信號的頻譜搬移回基帶中心。
- 關鍵點: CORDIC 硬件效率高,適合在 FPGA 或 ASIC 中實現復數旋轉。
-
Low Pass Filter
- 作用:
- 限制噪聲帶寬: 濾除帶外噪聲和相鄰信道干擾,提高信噪比。
- 抗混疊 (Decimation Filtering): 如果后續處理需要降低采樣率(降采樣),該 LPF 首先防止混疊失真。
- 脈沖整形匹配: 藍牙 GFSK 使用高斯脈沖整形。接收端的 LPF 可以與發送端的高斯濾波器特性進行某種程度的匹配(雖然不完全等同),有助于集中信號能量并抑制碼間干擾。
- 算法原理: 通常采用 FIR 濾波器。其系數根據目標帶寬(藍牙標準規定帶寬時間積 BT=0.5)、滾降系數和阻帶抑制要求設計。濾波器對補償后的 I_corr/Q_corr 進行卷積運算。
- 作用:
-
Power Estimator (for Packet Detection, RSSI, Digital Gain)
- 作用:
- 包檢測: 持續計算接收信號的瞬時功率或能量,并與預設閾值比較。當功率超過閾值并維持一定時間(防突發噪聲誤觸發),判定為有效數據包到達,激活后續解調模塊。這是接收機從空閑狀態切換到工作狀態的關鍵。
- RSSI (Received Signal Strength Indication): 提供接收信號強度的數字估計值,用于鏈路質量評估、功率控制等。
- 數字增益計算 (for DPSK Path): 雖然主路徑是 GFSK,但一些藍牙接收機可能包含用于未來擴展或特定模式(如 LE Coded PHY 的 FEC 部分)的 DPSK 解調路徑。該模塊計算信號的 RMS 功率,用于自動增益控制,確保輸入到 DPSK 解調器的信號幅度穩定在合適范圍。
- 算法原理:
- 功率計算: 瞬時功率
P[n] = I[n]^2 + Q[n]^2
。 - 包檢測: 通常對
P[n]
進行短時平均或積分得到能量E[n]
,然后應用閾值比較和持續時長判斷邏輯(有限狀態機)。 - RSSI: 對
P[n]
或E[n]
進行較長時間的平均(平滑掉調制變化),并可能轉換為 dB 值。 - 數字增益:
Gain = Target_Amplitude / sqrt(Avg(P[n]))
,用于后續乘法器。
- 功率計算: 瞬時功率
- 作用:
-
Demodulator (Phase Shift Discriminator - PSD)
- 作用: 將 GFSK 信號(本質是角度調制)轉換為包含原始比特信息的基帶電壓信號。PSD 是 FM 解調的一種高效數字實現方法。
- 算法原理:
- 輸入: 濾波后的 I/Q 采樣點。
- 處理:
- 相位計算: 對每個 I/Q 采樣點計算瞬時相位
Φ[n] = atan2(Q[n], I[n])
。atan2
是四象限反正切函數。 - 相位差分: 計算相鄰采樣點之間的相位差
ΔΦ[n] = Φ[n] - Φ[n-1]
。 - 相位卷繞處理: 確保
ΔΦ[n]
落在[-π, π)
范圍內(例如,加減2π
)。
- 相位計算: 對每個 I/Q 采樣點計算瞬時相位
- 輸出:
ΔΦ[n]
直接與頻率偏移成正比(FM 原理),而 GFSK 的頻率偏移就代表了傳輸的比特信息。因此ΔΦ[n]
就是解調出的軟判決信號,其符號(正負)對應傳輸的比特1
或0
,幅度對應頻偏的大小(在理想情況下是恒定的)。
- 關鍵點: PSD 直接、計算量相對較小,但對相位噪聲和殘留頻偏敏感。模塊 1 的補償和模塊 5 的精細估計對 PSD 的性能至關重要。
-
Frequency Offset Estimator
- 作用: 提供更精確的載波頻率偏差估計值,反饋給模塊 1 的 CORDIC 進行補償。通常在包檢測后,利用數據包前導碼(Preamble,如藍牙的“1010…”序列)進行初始估計,并在數據部分可能進行跟蹤。
- 算法原理: 常用方法:
- 相位差分平均: 在前導碼期間(已知是恒定頻率調制的信號),解調器輸出的
ΔΦ[n]
理論上應該是一個常數(對應頻偏)。對一段ΔΦ[n]
求平均即可得到頻偏估計Δf_est ∝ mean(ΔΦ[n])
。需要考慮ΔΦ
的周期模糊性。 - 最大似然估計: 在頻域或時域利用已知的前導碼序列結構進行更魯棒的估計。
- 鎖相環: 將
ΔΦ[n]
或其變體輸入一個數字 PLL 的相位檢測器,PLL 的輸出就是頻偏估計。
- 相位差分平均: 在前導碼期間(已知是恒定頻率調制的信號),解調器輸出的
- 關鍵點: 該模塊的精度直接影響解調性能。
-
Sampling Time Offset Estimator
- 作用: 估計并補償 ADC 采樣時鐘與發射機符號時鐘之間的偏差(Sampling Clock Offset, SCO)或初始相位偏差(Timing Offset)。確保在最佳時刻(符號中心點)對解調器輸出
ΔΦ[n]
進行采樣(符號判決)。 - 算法原理: 常用 Gardner 算法 或其變種(尤其適合 BPSK/QPSK 類信號,也適用于 GFSK 的 PSD 輸出)。
- 輸入: 解調器輸出的軟判決信號
ΔΦ[n]
(通常需要過采樣,例如每個符號 2 個采樣點)。 - 處理: Gardner 算法利用符號過渡點(過零點)附近的信息。核心誤差信號:
其中ε[n] = (y[n-1/2] - y[n+1/2]) * y[n]
y[n]
是第n
個符號時刻(整數索引)的采樣值(理想應在符號中心),y[n-1/2]
和y[n+1/2]
是中間點的采樣值(理想應在符號跳變點)。誤差ε[n]
反映了當前采樣點相對于理想采樣點的偏移方向。該誤差用于驅動一個數字環路濾波器(如 PI 控制器),濾波器的輸出控制一個插值器或直接調整采樣時刻索引。 - 輸出: 定時誤差信號或控制插值器的分數間隔。
- 輸入: 解調器輸出的軟判決信號
- 關鍵點: 需要與同步器模塊 7 緊密配合。
- 作用: 估計并補償 ADC 采樣時鐘與發射機符號時鐘之間的偏差(Sampling Clock Offset, SCO)或初始相位偏差(Timing Offset)。確保在最佳時刻(符號中心點)對解調器輸出
-
Synchronizer (Joint Packet & Symbol Sync)
- 作用: 這是接收機的核心控制模塊,結合了:
- 符號同步: 利用模塊 6 的定時誤差信息,通過插值器(如 Farrow 結構)或控制采樣點選擇,精確地在每個符號的中心時刻產生一個采樣點給后續的檢測器。確保在最佳信噪比和最小碼間干擾點進行判決。
- 包同步: 在包檢測(模塊 3)觸發后,利用前導碼或接入地址(Access Address)進行幀同步,精確地定位數據包的起始位置(即第一個數據符號的開始時刻)。這通常通過相關器實現。
- 算法原理:
- 符號同步: 通常實現為一個 數字鎖相環。模塊 6 產生的定時誤差
ε[n]
驅動一個環路濾波器。濾波器輸出控制一個 數控振蕩器,該 NCO 的溢出信號指示何時產生一個新的符號采樣點(觸發插值器或選擇采樣點)。 - 包同步: 將接收到的前導碼/Access Address 的采樣序列與本地已知的序列進行 互相關。當相關峰值超過閾值時,認為找到幀頭,并輸出幀同步信號,復位符號同步 NCO 的相位。
- 符號同步: 通常實現為一個 數字鎖相環。模塊 6 產生的定時誤差
- 關鍵點: “聯合”體現在包同步確定了數據流的絕對起始點,而符號同步在這個起點上精確地恢復出每個符號的時鐘。兩者通常共享定時恢復環路(模塊 6 的誤差 + 這里的環路濾波器 + NCO + 插值器)。
- 作用: 這是接收機的核心控制模塊,結合了:
-
Detector (Decision Feedback Equalizer - DFE)
- 作用: 補償信道引入的碼間干擾。雖然 GFSK 和藍牙信道通常 ISI 不嚴重,但 DFE 能有效處理由多徑效應、濾波器非理想性等引起的有限長度的拖尾 ISI,尤其是在高速率或惡劣環境下。
- 算法原理:
- 結構: DFE 包含兩個部分:
- 前饋濾波器: 處理當前及過去幾個符號的采樣輸入。
- 反饋濾波器: 處理過去幾個已判決的符號。
- 工作: 當前輸入
x[n]
經過 FFF 濾波,同時過去判決的符號a[n-1], a[n-2], ...
經過 FBF 濾波。FFF 的輸出減去 FBF 的輸出得到均衡后的信號y[n]
:
然后對y[n] = Σ (c_k * x[n-k]) - Σ (d_m * a[n-m]) // k 屬于 FFF 抽頭索引, m 屬于 FBF 抽頭索引
y[n]
進行判決得到當前符號的估計a[n]
。a[n]
被反饋回 FBF 用于均衡下一個符號。 - 系數自適應: 通常使用 LMS (Least Mean Squares) 或其變種算法,根據誤差信號
e[n] = a[n] - y[n]
(訓練模式) 或e[n] = a[n] - y[n]
(判決導向模式) 更新 FFF 和 FBF 的系數c_k
,d_m
。
- 結構: DFE 包含兩個部分:
- 關鍵點: DFE 能有效處理因果性 ISI,計算復雜度相對線性均衡器較低,但對判決錯誤敏感(錯誤傳播)。
-
Long Range Symbol De-Mapper
- 作用: 專為藍牙 LE Coded PHY (Long Range 模式) 設計。該模式使用前向糾錯編碼(FEC),在物理層對每個信息比特重復多次并增加冗余比特(S=2 或 S=8)。解映射器將 DFE 輸出的軟判決符號(可能對應多個重復的信息比特)合并,為每個原始信息比特生成一個更可靠的軟判決值(LLR - Log Likelihood Ratio),輸入給維特比譯碼器。
- 算法原理:
- 輸入: DFE 輸出的軟判決值(例如
ΔΦ
或均衡后的電壓值),對應著經過 S 倍重復和 FEC 編碼后的符號。 - 處理:
- 解重復: 對于 S=2 或 S=8,將對應于同一個原始信息比特的 S 個軟判決采樣值進行合并(如簡單相加或加權平均)。合并后的值反映了該原始比特的總體可信度。
- LLR 計算: 對于 FEC 編碼引入的冗余比特(Pattern Mapper),解映射器需要根據編碼規則,將合并后的軟值映射回原始信息比特和冗余比特的軟信息(LLR)。LLR 定義為:
在實際實現中,常使用簡化的近似計算,其幅度代表可信度(越大越可信),符號代表比特估計(正為1,負為0)。LLR(b) = log( P(b=1 | received signal) / P(b=0 | received signal) )
- 輸出: 原始信息比特流對應的 LLR 序列(軟比特)。
- 輸入: DFE 輸出的軟判決值(例如
- 關鍵點: 這是實現藍牙長距離模式(高靈敏度)的關鍵,通過時間分集(重復)和編碼增益對抗深度衰落和噪聲。
-
Soft Input Viterbi Decoder
- 作用: 對來自解映射器模塊 9 的軟判決輸入(LLRs)進行前向糾錯解碼。藍牙 LE Coded PHY 使用 卷積碼。維特比算法是卷積碼的最大似然序列檢測算法,利用軟信息可以顯著提高解碼性能(相比硬判決輸入)。
- 算法原理:
- 輸入: 解映射器輸出的每個原始信息比特(和可能的尾比特)對應的 LLR 值序列。
- 處理:
- 網格圖: 根據藍牙使用的卷積碼(碼率 1/2, 約束長度 K=4)構建網格圖,描述編碼器狀態轉移。
- 分支度量計算: 對于網格圖中的每條可能分支(對應編碼器可能的輸入和狀態轉移),計算其分支度量(Branch Metric)。對于軟輸入,通常使用漢明距離的軟版本或直接使用 LLR 的線性組合。常用的是計算接收到的軟比特序列與分支預期編碼輸出序列之間的相關度量或歐氏距離的負值(最大化相關或最小化距離)。
- 路徑度量累積與比較: 在每個狀態節點,計算到達該狀態的所有可能路徑的累積路徑度量(Path Metric = 前狀態路徑度量 + 當前分支度量)。保留到達該狀態的具有最佳(最大或最小,取決于度量定義)累積度量的路徑(幸存路徑)。淘汰其他路徑。
- 回溯: 在處理完整個數據塊(或使用滑動窗)后,從具有最佳最終累積度量的狀態開始,沿著幸存路徑回溯,讀出該路徑對應的解碼比特序列。
- 輸出: 解碼恢復出的原始發送信息比特流。
- 關鍵點: 維特比譯碼是卷積碼的標準最優譯碼算法。使用軟輸入(LLRs)比硬判決輸入可獲得約 2-3 dB 的編碼增益,這對于低功耗藍牙在低信噪比下工作至關重要。其復雜度隨約束長度指數增長,但藍牙的 K=4 非常易于實現。
總結:
這個藍牙 GFSK RX Core 架構體現了一個精心設計的數字信號處理流水線:
- 前端處理: 補償主要損傷(頻偏 - CORDIC),濾除噪聲干擾(LPF),檢測有效信號(Power Estimator)。
- 核心解調: 將頻率調制轉換為基帶軟信息(PSD Demodulator)。
- 精細同步與跟蹤: 精確估計和補償殘留頻偏(FO Est)和采樣時鐘偏差(STO Est),聯合實現精確的符號定時和幀起始定位(Synchronizer)。
- ISI 抑制: 使用 DFE 對抗碼間干擾,提高信號質量。
- 長距離支持: 針對 LE Coded PHY,合并重復符號并計算軟信息(De-Mapper)。
- 糾錯解碼: 利用維特比算法和軟信息(LLRs)進行強大的前向糾錯(Viterbi Decoder),最終輸出可靠的比特流。
這種架構充分利用了數字信號處理的優勢,在功耗、性能和復雜度之間取得了良好的平衡,非常適合低功耗藍牙芯片的實現。各個模塊協同工作,共同克服無線信道帶來的各種挑戰,實現可靠的數據接收。