制原理與仿真實(shí)現(xiàn):從延遲-多普勒域到誤碼率曲線)
簡介正交時頻空間調(diào)制是一種面向高速移動通信的多載波技術(shù)這份代碼資源給出了其完整的Matlab實(shí)現(xiàn)適合無線通信方向的研究生、工程師以及對物理層算法感興趣的開發(fā)者。壓縮包內(nèi)僅含一個OTFS_Modulation.m腳本大小僅273字節(jié)但覆蓋了從時延-多普勒域輸入到時域輸出的整個過程包括符號映射、離散對數(shù)映射、預(yù)編碼、逆辛格爾變換以及與信道沖激響應(yīng)卷積等關(guān)鍵環(huán)節(jié)。目前已有1417人學(xué)習(xí)下載。通過運(yùn)行和閱讀這段代碼可以對照經(jīng)典原理逐步理解多徑傳播與多普勒效應(yīng)如何被聯(lián)合處理也可將其作為后續(xù)研究接收端解調(diào)、信道估計或系統(tǒng)級仿真的基礎(chǔ)模塊。對于希望快速建立正交時頻空間調(diào)制直觀認(rèn)識、減少重復(fù)造輪子的學(xué)習(xí)者來說這是一個輕量而實(shí)用的切入點(diǎn)。1. 高速移動場景下 OTFS 調(diào)制為什么成了物理層研究的熱點(diǎn)高鐵跑到 350km/h、低軌衛(wèi)星終端以數(shù)公里每秒的速度過頂、無人機(jī)群在空域里高速機(jī)動——這些場景里OFDM 的子載波正交性被多普勒頻移一沖就散誤碼率曲線直線抬升工程上常用的信道估計和均衡手段開始力不從心。正交時頻空間調(diào)制OTFSOrthogonal Time Frequency Space Modulation就是在這一背景下被重新推到臺前的它把信息符號放在延遲-多普勒域里調(diào)制而不是傳統(tǒng)的時頻域讓信道矩陣在高速運(yùn)動下依然保持稀疏和準(zhǔn)靜態(tài)。這套思路對做物理層算法驗證、鏈路級仿真、以及準(zhǔn)備 6G 空口技術(shù)評估的人來說是繞不開的一塊硬骨頭。這篇筆記就圍繞 OTFS 調(diào)制這條主線從原理講到仿真復(fù)現(xiàn)把參數(shù)怎么設(shè)、代碼怎么跑、坑在哪一次性說清楚。2. OTFS 與 OFDM 的本質(zhì)差異把信道從時變變成時不變2.1 延遲-多普勒域到底是什么一套全新的信道表示坐標(biāo)傳統(tǒng) OFDM 把符號鋪在時頻平面上每個資源格對應(yīng)一個特定時間和頻率。無線信道里的每條反射徑在時頻域里表現(xiàn)為一個隨時間變化的相位旋轉(zhuǎn)和幅度起伏。終端一移動這個相位旋轉(zhuǎn)跟著變接收機(jī)就得不斷去跟蹤信道狀態(tài)。多普勒頻移大的時候子載波間隔如果不夠?qū)捪噜徸虞d波之間就會互相干擾這就是 ICIInter-Carrier Interference。OTFS 換了個坐標(biāo)系。它把信道描述成延遲軸和多普勒軸上的若干沖激線一條徑對應(yīng)一個延遲 tap 和一個多普勒頻移。在這個域里信道不再是隨時變的濾波器而是一張稀疏的二維沖激響應(yīng)圖。簡單說你在時頻域里看到的是一個飛快旋轉(zhuǎn)的矢量在延遲-多普勒域里看到的卻是一條靜止的線。物理信道本身沒有變變的是觀察坐標(biāo)系。這個坐標(biāo)變換怎么落地核心就是辛有限傅里葉變換SFFT和它的逆變換ISFFT。SFFT 不是簡單地在兩個維度上做 FFT它是沿著時頻網(wǎng)格的符號周期和子載波間隔做歸一化后在有限維網(wǎng)格上的辛變換。數(shù)學(xué)上可以證明時頻域里的信道作用等效為延遲-多普勒域里的二維循環(huán)卷積。因此只要接收端把觀測信號變換回延遲-多普勒域并做二維均衡就能抵消高速運(yùn)動帶來的時變性。2.2 OTFS 收發(fā)機(jī)的四個核心模塊ISFFT、海森堡變換、Wigner 變換、SFFTOTFS 發(fā)射端做的事情分兩步。第一步把 QAM/PSK 調(diào)制后的符號矩陣映射到延遲-多普勒域網(wǎng)格上網(wǎng)格大小是 M×NM 對應(yīng)多普勒維度N 對應(yīng)延遲維度。對這個矩陣做 ISFFT就從延遲-多普勒域變換到了時頻域得到 X_tf。第二步對 X_tf 做海森堡變換Heisenberg Transform本質(zhì)上是把頻域符號映射到時域波形通常會配合一個發(fā)送脈沖成形濾波器。接收端反過來先用 Wigner 變換把時域接收信號變換回時頻域再做 SFFT 回到延遲-多普勒域最后在 DD 域做信道估計和信號檢測。如果你做過 OFDM 仿真可以把 ISFFT 理解成一個廣義的二維 OFDM 調(diào)制延遲維度對應(yīng)頻域的擴(kuò)展多普勒維度對應(yīng)時域的擴(kuò)展。但實(shí)現(xiàn)細(xì)節(jié)上有個區(qū)別OFDM 的 IFFT 是一維的OTFS 的 ISFFT 是二維的而且方向上有講究——SFFT 是沿多普勒維度做 FFT、沿延遲維度做 IFFTISFFT 反過來。搞反了方向整個收發(fā)鏈路就對不上解調(diào)出來的星座圖都是亂的。實(shí)際工程里海森堡變換用 IFFT 加加窗實(shí)現(xiàn)Wigner 變換用 FFT 加匹配濾波實(shí)現(xiàn)。這兩個變換在理想脈沖成形條件下正好互逆這也是 OTFS 鏈路可以閉環(huán)驗證的基礎(chǔ)。2.3 為什么說 OTFS 把雙選信道變成了稀疏信道所謂雙選信道就是同時存在頻率選擇性衰落和時間選擇性衰落。頻率選擇性來自多徑延遲擴(kuò)展時間選擇性來自多普勒擴(kuò)展。OFDM 解決頻率選擇性靠循環(huán)前綴加單抽頭均衡但對時間選擇性幾乎沒有招架之力。OTFS 的思路是把時變信道在 DD 域里變成一個準(zhǔn)靜態(tài)的稀疏矩陣。假設(shè)信道里有 P 條路徑每條路徑有獨(dú)立的延遲 τ_i 和多普勒頻移 ν_i。在時頻域里這條路徑對每個資源格的影響是 e^{j2πν_i t} 這樣一個隨 t 變化的相位。但在 DD 域里它表現(xiàn)為一個沖激位置由 τ_i 和 ν_i 決定。P 條路徑對應(yīng) P 個沖激信道矩陣中絕大多數(shù)元素為零。稀疏性意味著兩件事一是信道估計可以做得更準(zhǔn)因為需要估計的未知量從 M×N 個降到大約 3P 個幅度、延遲、多普勒二是接收端的消息傳遞檢測MP算法可以利用稀疏結(jié)構(gòu)把復(fù)雜度壓到接近線性。我見過有同行拿 OTFS 和 OFDM 做同參數(shù)下的 BER 對比在 500km/h、載波 4GHz、子載波間隔 15kHz 的條件下OFDM 的 BER 平臺在 10^-2 量級就下不去了而 OTFS 可以繼續(xù)降到 10^-4 以下。這不是玄學(xué)是信道表示方式帶來的結(jié)構(gòu)性優(yōu)勢。3. 跑通 OTFS 調(diào)制仿真壓縮包里的發(fā)射端與接收端拆解3.1 壓縮包里的文件結(jié)構(gòu)與仿真主流程拿到這個 OTFS_Modulation 壓縮包常見做法是先用 MATLAB 或 Python 把發(fā)射和接收鏈路搭起來。先說清楚這類仿真腳本通常是一個完整的鏈路從發(fā)射端生成比特、調(diào)制、映射到 DD 域到信道模型的實(shí)現(xiàn)再到接收端檢測和 BER 統(tǒng)計。核心腳本一般分四塊參數(shù)配置、發(fā)射端、信道、接收端。我做這類仿真時習(xí)慣把所有可調(diào)參數(shù)集中在一個結(jié)構(gòu)體里后續(xù)調(diào)參不需要改動函數(shù)內(nèi)部的邏輯。從壓縮包名里的“調(diào)制”兩個字來看重點(diǎn)應(yīng)在發(fā)射端的調(diào)制映射上但接收端沒有的話鏈路就沒法閉環(huán)所以兄弟文件里大概率會有配套的檢測和解調(diào)腳本。如果你打開包發(fā)現(xiàn)只有發(fā)射端、沒有接收端那就需要自己補(bǔ)接收鏈路我下面給的代碼可以直接用。主流程可以歸納為生成隨機(jī)比特 → QAM 符號映射 → 符號鋪到 DD 域網(wǎng)格 → ISFFT 得到 TF 域符號 → 海森堡變換得到時域發(fā)射信號 → 過信道加時延、多普勒、噪聲 → Wigner 變換回 TF 域 → SFFT 回 DD 域 → 信道均衡/檢測 → QAM 解映射 → 統(tǒng)計 BER。每個環(huán)節(jié)都有對應(yīng)的矩陣維度檢查點(diǎn)維度對不上問題通常出在某個 FFT 的方向或者歸一化系數(shù)上。3.2 發(fā)射端代碼從 QAM 符號到延遲-多普勒網(wǎng)格以常見的 MATLAB 實(shí)現(xiàn)為例發(fā)射端核心代碼如下%% OTFS 發(fā)射端QAM 符號映射到 DD 域經(jīng) ISFFT 和海森堡變換得到時域信號 N 128; % 延遲維度對應(yīng)子載波數(shù)或時域采樣點(diǎn)數(shù) M 16; % 多普勒維度對應(yīng)符號數(shù) M_mod 4; % QAM 調(diào)制階數(shù)4 QPSK cp_len 32; % 循環(huán)前綴長度適配信道最大時延擴(kuò)展 % 1. 隨機(jī)比特生成并映射為 QAM 符號 bits randi([0 1], N*M*log2(M_mod), 1); qam_symbols qammod(bits, M_mod, gray, InputTypebit); x_dd reshape(qam_symbols, N, M); % 每個位置對應(yīng)一個 DD 域資源格 % 2. ISFFT沿多普勒維做 FFT沿延遲維做 IFFT x_tf fft(x_dd, M, 2) / sqrt(M); % 對時域維度做 FFT歸一化 x_tf ifft(x_tf, N, 1) * sqrt(N); % 對頻域維度做 IFFT歸一化 % 3. 海森堡變換沿頻率維做 IFFT 得到時域符號再加循環(huán)前綴 s_time ifft(x_tf, N, 1) * sqrt(N); % N×M 矩陣每列是一個 OFDM 符號 s_cp [s_time(end-cp_len1:end, :); s_time]; % 給每個符號加循環(huán)前綴 s_tx s_cp(:); % 串行化輸出這段代碼里最容易看錯的地方在第 2 步ISFFT 的兩個變換方向不能寫反。DD 域矩陣 x_dd 的行是延遲維、列是多普勒維。延遲維對應(yīng)頻率所以用 IFFT多普勒維對應(yīng)時間所以用 FFT。歸一化的時候 FFT 除 sqrt(M)、IFFT 乘 sqrt(N)這樣能量才能在兩個域之間保持一致星座點(diǎn)的幅度不會漂移。如果你在自己的代碼里看到 BER 性能在高信噪比區(qū)域出現(xiàn)平臺先檢查這一步的歸一化系數(shù)。第 3 步的海森堡變換本質(zhì)上就是 OFDM 調(diào)制只是把 TF 域的符號矩陣逐列變成時域基帶波形。加循環(huán)前綴后保證每個符號的線性卷積變成循環(huán)卷積這樣才能和 DD 域信道的循環(huán)結(jié)構(gòu)對上。3.3 接收端代碼Wigner 變換到 MP 檢測接收端要逆著發(fā)射端一步步退回 DD 域%% OTFS 接收端時域信號經(jīng) Wigner 變換、SFFT再做 MP 檢測 % 1. 去掉循環(huán)前綴恢復(fù)出 N×M 的時頻域接收矩陣 r_time reshape(rx_signal, N cp_len, M); r_time r_time(cp_len1:end, :); % 去 CP得到 N×M 時域矩陣 % 2. Wigner 變換對時域做 FFT回到 TF 域 y_tf fft(r_time, N, 1) / sqrt(N); % 注意這里與發(fā)射端海森堡變換互逆 % 3. SFFT沿多普勒維做 IFFT沿延遲維做 FFT y_dd ifft(y_tf, M, 2) * sqrt(M); % 多普勒維 IFFT y_dd fft(y_dd, N, 1) / sqrt(N); % 延遲維 FFT % 4. 用 MP 檢測或匹配濾波恢復(fù)發(fā)射符號 % 這里使用簡化版已知理想信道矩陣 H_dd 時直接做最小二乘 x_est H_dd \ y_dd(:); % 等價于 ZF 均衡 x_dd_est reshape(x_est, N, M); % 5. QAM 解映射統(tǒng)計 BER bits_est qamdemod(x_dd_est(:), M_mod, gray, OutputTypebit); [~, ber] biterr(bits, bits_est);這段代碼里的核心是第 3 步的 SFFT方向和發(fā)射端的 ISFFT 正好相反。接收端的 MP 檢測在復(fù)雜信道下比 ZF 好得多因為它利用了 DD 域信道矩陣的稀疏性。但直接把 H_dd 這么大一個矩陣存下來做求逆內(nèi)存開銷和計算量都很大M 和 N 稍微大一點(diǎn)就吃不消。后續(xù)章節(jié)我會展開講 MP 檢測的參數(shù)調(diào)節(jié)。3.4 一個能直接跑的最小仿真腳本為了讓鏈路先通起來我用最簡單的做法把信道設(shè)成單徑加多普勒不加衰落驗證 OTFS 鏈路是否能正確收發(fā)。這個腳本的價值在于排除信道模型的干擾先確認(rèn)調(diào)制解調(diào)方向沒錯。%% 最小閉環(huán)驗證理想信道下的 OTFS 鏈路 N 64; M 8; M_mod 4; % 小網(wǎng)格跑得快 bits randi([0 1], N*M*log2(M_mod), 1); qam_symbols qammod(bits, M_mod, gray, InputTypebit); x_dd reshape(qam_symbols, N, M); % ISFFT x_tf fft(x_dd, M, 2) / sqrt(M); x_tf ifft(x_tf, N, 1) * sqrt(N); % 海森堡變換不加 CP理想同步 s_time ifft(x_tf, N, 1) * sqrt(N); % 理想信道僅加 AWGN無衰落 r_time s_time 10^(-snr_db/20) * (randn(size(s_time)) 1j*randn(size(s_time))) / sqrt(2); % Wigner 變換 y_tf fft(r_time, N, 1) / sqrt(N); % SFFT y_dd ifft(y_tf, M, 2) * sqrt(M); y_dd fft(y_dd, N, 1) / sqrt(N); % 硬判決解調(diào) x_est qamdemod(y_dd(:), M_mod, gray, OutputTypebit); [~, ber] biterr(bits, x_est); fprintf(SNR%.1fdB, BER%.2e\n, snr_db, ber);這個最小腳本跑通了就說明你的 ISFFT/SFFT 方向、歸一化系數(shù)、QAM 映射關(guān)系都是對的。接著再往里面加多徑信道、加多普勒逐級增加復(fù)雜度出了問題也好定位。不要一上來就上完整信道模型那樣 BER 曲線跑出來是歪的你根本不知道是哪一環(huán)的鍋。4. 調(diào)出靠譜誤碼率曲線的關(guān)鍵參數(shù)與場景適配4.1 子載波數(shù)、符號數(shù)、載波間隔怎么搭配OTFS 的網(wǎng)格維度 N 和 M 決定了 DD 域的覆蓋范圍。N 對應(yīng)延遲維決定了能支持的最大時延擴(kuò)展N 越大能區(qū)分的多徑分量越多。M 對應(yīng)多普勒維決定了能支持的最大多普勒頻移。子載波間隔 Δf 與 N 的乘積得到總的系統(tǒng)帶寬符號持續(xù)時間 T 與 M 的乘積決定了 OTFS 幀的長度。具體選值時先看目標(biāo)信道參數(shù)最大時延擴(kuò)展 τ_max 決定了 Δf 應(yīng)該小于 1/τ_max這樣延遲分辨率才夠最大多普勒頻移 ν_max 決定了 T 應(yīng)該小于 1/ν_max否則多普勒模糊。工程實(shí)戰(zhàn)里有個經(jīng)驗式N 取 64 到 256M 取 8 到 32。N 太小延遲分辨率不夠信道估計會糊M 太大幀長過長信道在幀內(nèi)可能已經(jīng)不再準(zhǔn)靜態(tài)反而把性能做差。載波間隔選 15kHz 時M16 對應(yīng)的幀長是 1.0667ms 左右這本身體檢出來就是接近 5G NR 的一個時隙長度做參數(shù)對接比較方便。如果你仿真的是毫米波場景Δf 可以拉到 120kHz 或 480kHz這時 M 可以相應(yīng)減小保持幀長在多普勒時變的容忍范圍內(nèi)。4.2 調(diào)制階數(shù)與導(dǎo)頻開銷的取舍調(diào)制階數(shù)從 QPSK 升到 16QAM、64QAM頻譜效率上去了但 OTFS 對信道估計誤差的敏感度也在上升。工程經(jīng)驗是DD 域信道估計在低信噪比下誤差較大64QAM 要求信道估計的歸一化 MSE 低于 10^-2不然 BER 曲線會出現(xiàn)錯誤平層。所以驗證鏈路時先跑 QPSK確認(rèn)曲線斜率正常再逐步提階數(shù)。導(dǎo)頻開銷方面OTFS 常用嵌入式導(dǎo)頻設(shè)計在 DD 域網(wǎng)格中留出一個保護(hù)帶把導(dǎo)頻符號放在中心周圍置零避免數(shù)據(jù)符號對導(dǎo)頻的干擾。保護(hù)帶大小由最大時延擴(kuò)展和多普勒頻移決定時延維保護(hù)帶至少覆蓋 2 倍最大延遲 tap多普勒維保護(hù)帶至少覆蓋 2 倍最大多普勒頻移。開銷比例通常在 5% 到 15% 之間具體取決于信道劇烈程度。壓縮包里如果帶了導(dǎo)頻圖案設(shè)計腳本可以重點(diǎn)看一下保護(hù)帶的取值邏輯。4.3 不同移動速度下的多普勒頻移仿真設(shè)置多普勒頻移的物理公式是 f_d v·cos(θ)/λ其中 λ 是載波波長。仿真里設(shè)置參數(shù)時以 4GHz 載頻、350km/h 移動速度為例λ 0.075mv 97.2m/s最大多普勒約 1296Hz。子載波間隔 15kHz 時多普勒頻移占子載波間隔約 8.6%這個比例已經(jīng)讓 OFDM 相當(dāng)難受但 OTFS 的 M16 對應(yīng)的多普勒分辨率是 1/幀長 ≈ 937.5Hz能分辨 1296Hz 的多普勒所以性能還能撐住。如果速度升到 500km/h多普勒約 1852Hz建議把 M 提到 32 或把載波間隔下調(diào)節(jié)省帶寬以換取多普勒范圍。仿真里的多普勒頻移可以用兩類模型。第一類是理想模型固定頻偏每條徑的 f_d 是個確定值第二類是 Jakes 模型多普勒譜服從 U 形分布。壓縮包里的信道腳本大概率用的是理想模型跑 BER 曲線時用確定值能更快看到規(guī)律要貼近真實(shí)場景再換 Jakes 模型。過程中注意多普勒相位在時間維的累積要寫成累加式 ν·t而不是每時每刻乘以瞬時值這個細(xì)節(jié)錯了的話多普勒頻移的統(tǒng)計特性和理論對不上。5. OTFS 仿真的 5 個常見坑從曲線翻車到信道建模失效5.1 誤碼率曲線在高 SNR 處掉不下去現(xiàn)象BER 曲線在 SNR 到 20dB 左右時開始走平怎么加噪聲功率都不往下降。原因最常見的是導(dǎo)頻和數(shù)據(jù)符號在 DD 域互相污染。嵌入式導(dǎo)頻周圍的保護(hù)帶留得不夠數(shù)據(jù)符號的旁瓣泄露到導(dǎo)頻位置導(dǎo)致信道估計始終帶一個固定誤差形成錯誤平層。另一個大概率原因是循環(huán)前綴沒加夠多徑延遲超過了 CP 長度產(chǎn)生符號間干擾。解決先把保護(hù)帶按最大時延擴(kuò)展和多普勒頻移的 2 倍以上設(shè)置然后查信道腳本里的時延 tap確認(rèn) τ_max 是否小于 CP 長度。我一般會在發(fā)射端打印 CP 長度和最大時延的對比如果兩個值接近或前者更小那 BER 平臺幾乎必然是 ISI 造成的。這種情況把 CP 加長即可代價是頻譜效率略降。5.2 信道矩陣稀疏度不對導(dǎo)致檢測器收斂慢現(xiàn)象MP 檢測跑完設(shè)定迭代次數(shù)后誤碼率還是高于理論值而且迭代次數(shù)增加性能提升不明顯。原因MP 檢測利用了信道的稀疏性如果信道矩陣構(gòu)造時沒有考慮分?jǐn)?shù)倍多普勒整數(shù)倍多普勒擴(kuò)展沒有四舍五入而是舍掉矩陣內(nèi)部出現(xiàn)額外非零項破壞了稀疏結(jié)構(gòu)消息傳遞里的近似就失效了。解決在信道矩陣生成函數(shù)里把多普勒頻移按子載波間隔的倍數(shù)量化到整數(shù)格上讓每條徑只影響一個多普勒 bin。量化誤差在延遲-多普勒分辨率允許的范圍內(nèi)可以接受但矩陣的每列非零元素個數(shù)會從幾十降到兩三個MP 的收斂速度和準(zhǔn)確度都會顯著改善。5.3 SNR 定義混亂導(dǎo)致曲線和理論值對不上現(xiàn)象仿真得到的 BER 曲線和理論 QAM 曲線整體往右偏幾 dB形狀卻一致。原因噪聲功率的歸一化在兩處出了問題。一是信號能量用了發(fā)射端調(diào)制后的平均能量沒有計算加 CP、成形濾波之后的總功率二是 QAM 符號沒有做平均功率歸一化星座點(diǎn)數(shù)字一大SNR 公式里的信號項就不對。OTFS 信號做完 ISFFT 后時域功率和頻域功率有歸一化系數(shù)關(guān)系很多腳本沿用 OFDM 的能量歸一化方式直接套在 OTFS 上就會差出一個 N 或 M 的倍數(shù)。解決做 SNR 設(shè)置時先算清 E_s符號能量和 E_b比特能量再用 N0 E_s/(10^(SNR/10)) 生成復(fù)噪聲。同時檢查 qammod 之后符號的平均功率是否為 1不是的話就除以平均模值。固定這兩點(diǎn)曲線基本能貼合理論線。5.4 分?jǐn)?shù)倍多普勒頻移被忽略誤碼率被低估現(xiàn)象仿真性能看起來比論文里的結(jié)果還好好得不對勁。原因信道腳本里如果直接按整數(shù)倍多普勒生成信道相當(dāng)于每徑的多普勒都是子載波間隔的整數(shù)倍這種信道對 OTFS 來說是“理想友好型”。真實(shí)信道中多普勒頻移幾乎必然是帶小數(shù)的例如 1296Hz / 15000Hz 0.0864 個子載波間隔。忽略這個小數(shù)部分會讓信道估計的殘差變大檢測器在實(shí)際部署時的性能會比仿真差。解決至少在信道腳本里加入小數(shù)倍頻偏的選項參數(shù)用 f_doppler_frac mod(f_d, df)然后在相位累積項加上這個殘余量。跑出來的 BER 會比整數(shù)倍模型高一些這才是更接近實(shí)際的結(jié)果。5.5 MP 檢測的迭代次數(shù)和阻尼因子沒有聯(lián)動調(diào)節(jié)現(xiàn)象MP 檢測器迭代 20 次后不收斂輸出 LLR 的絕對值很小檢測性能不如匹配濾波。原因MP 的消息傳播中有個控制參數(shù)即阻尼因子 β。β 太大接近 1消息更新過快容易振蕩β 太小收斂太慢迭代次數(shù)不夠時相當(dāng)于沒跑完。不同信道條件下最優(yōu) β 不同拿一組參數(shù)跑所有場景必然會在極端信道下翻車。解決先固定迭代次數(shù)在 15 到 20 次從 β0.5 開始掃觀察每輪迭代后誤碼率是否單調(diào)下降。如果震蕩就降低 β 到 0.3 到 0.4如果下降太慢就適當(dāng)提高。這個參數(shù)在壓縮包里如果沒有暴露出來通常藏在檢測器結(jié)構(gòu)體里值得改出來試一下。6. 從仿真到落地把 OTFS 代碼往工程方向推的下一步6.1 用 OMP 做延遲-多普勒域信道估計理想信道模型假設(shè)接收端完全知道 H_dd這在仿真里只用于原理驗證。工程上需要導(dǎo)頻輔助的信道估計。OTFS 導(dǎo)頻在 DD 域里是一個沖激經(jīng)過信道后在接收端變成一組延遲-多普勒對估計問題本質(zhì)上是稀疏恢復(fù)問題。用 OMP 算法導(dǎo)頻開銷可以很小因為只有少數(shù)幾個非零路徑需要估計。實(shí)現(xiàn)時注意 OMP 的停止條件設(shè)為殘差能量低于噪聲閾值閾值用 N0 乘以矩陣維度做標(biāo)定。相比 LMS 類自適應(yīng)濾波OMP 在稀疏信道下的均方誤差要低一個數(shù)量級。6.2 從理想信道換到 5G 參數(shù)集與實(shí)測信道把仿真往標(biāo)準(zhǔn)參數(shù)集上靠常見做法是套用 5G NR 的幀結(jié)構(gòu)和子載波間隔族。N128、Δf15kHz 對應(yīng)帶寬 1.92MHz實(shí)在太小仿真時把帶寬拉高到 20MHzΔf30kHzN512M16幀長 0.533ms這個參數(shù)組合在高移動性場景里比較有代表性。信道模型也要從單徑 AWGN 換成 TDL 模型TDL-E 模型在 LTF 里有標(biāo)準(zhǔn)的時延功率譜定義可以直接查到延遲 tap 和每條徑的相對功率用來替換仿真腳本里的簡單多徑數(shù)組。6.3 用導(dǎo)頻符號驗證調(diào)制鏈路的正確性要驗證調(diào)制鏈路沒問題我有個習(xí)慣在 DD 域網(wǎng)格的四個角放四個已知 QAM 符號其他位置置零。跑完整個鏈路后檢查接收端對應(yīng)位置的符號幅度和相位誤差。如果幅度誤差小于 1%、相位誤差小于 2 度說明調(diào)制解調(diào)鏈路基本干凈大于這個量級優(yōu)先懷疑 FFT 方向或歸一化。這種方法比直接跑 BER 更快因為 BER 是好幾百個符號的統(tǒng)計平均出了問題要很久才能定位。6.4 我的習(xí)慣與建議做 OTFS 仿真這兩年最大的教訓(xùn)是先跑通理想信道再碰衰落信道不然查錯查到懷疑人生。代碼里每個 FFT 都寫好方向注釋每個矩陣都標(biāo)注維度壓縮包里的腳本往往沒有這些標(biāo)記接手后第一件事就是把注釋補(bǔ)全。參數(shù)調(diào)整時一次只動一個變量BER 曲線記錄在案。希望這些經(jīng)驗?zāi)軒湍阍?OTFS 的仿真路上走得更順。本文還有配套的精品資源點(diǎn)擊獲取