基于matlab的MRC最大合并比误码率仿真,包括维特比译码,MRC,中继
目錄
1.算法概述
2.仿真效果預覽
3.核心MATLAB代碼預覽
4.完整MATLAB程序
1.算法概述
? ? ? ?最大比合并(Maximal Ratio Combining,MRC)是分集合并技術中的最優選擇,相對于選擇合并和等增益合并可以獲得最好的性能,其性能提升是由陣列增益( 陣列增益即發射的信號的功率增益,是通過發送機和/或接收機的多個天線而實現功率增益的,一般在LTE中,增加一個天線會有3db的增益)帶來的更高的信噪比,進而帶來更好的誤碼率特性。最大比合并的實現方式是通過給分集的N路不同信號乘上一個不同的系數 ,而系數的確定與N路分支的衰落系數 有關。
? ? ? ?如下圖所示:
?
? ? ? ?考慮了一個 RIS 增強型共生無線電下行鏈路系統,它由一個具有 Q (Q ≥ 1) 個天線的 基站BS、K (K ≥ 1) 個單天線反向散射設備BD、一個具有 M 反射元件(M ≥ 1) 的 RIS 組成) 和單天線主接收器PR。 關于信道系數不再贅述。其中BD 的符號周期是主信號的 N 倍,其中 N 是整數,遠大于 1(共生無線電的特點)。
? ? ? ?最大比合并是分集合并技術中的最優選擇,相對于選擇合并和等增益合并可以獲得最好的性能,性能提升是由Array Gain帶來的更高的信噪比,進而帶來更好的誤碼率特性決定的。
? ? ? ?最大比合并(Maximal Ratio Combining)的實現方式即通過給分集的N路不同信號乘上一個不同的系數wi,i=1,2,……,N,系數的確定與N路分支的衰落系數hi,i=1,2,……,N有關。通常有:
?下面來證明為什么最大比合并是最優合并方案。
? ? ? ?如上所述,考慮一個AWGN信道,其中發送符號功率為Es,噪聲功率譜密度為N0,N條之路的衰落系數為hi,i=1,2,……,N,合并加權系數為wi,i=1,2,……,N。
接收端的和信噪比為:
?如果需要SNR最大,則需要取到極大值,通過SNR對wi求偏導并令偏導為0可得:
?化簡后有如下式子:
分析i=1和i=2時兩個式子,經過對比作差有:
?故證明信噪比最大時的合并方式是MRC合并。
2.仿真效果預覽
matlab2022a仿真結果如下:
3.核心MATLAB代碼預覽
%隨機數據位data = round(rand(N_bits,1));%使用速率1/2卷積碼的信道編碼trellis = poly2trellis(3,[5 7]); c_data = convenc(data,trellis); %BPSK調制 tx = 2*c_data - 1; %信道特征SNRdB = 0:25; %SNR范圍%中繼信道的附加噪聲和信道響應:%上行信道noise_d = 1/sqrt(2) * (randn(2 * N_bits,1) + j * randn(2 * N_bits,1)); h_d = 1/sqrt(2) * (randn(2 * N_bits,1) + j * randn(2 * N_bits,1)); %用戶間信道noise_r1 = 1/sqrt(2) * (randn(2 * N_bits,1) + j * randn(2 * N_bits,1)); h_r1 = 1/sqrt(2) * (randn(2 * N_bits,1) + j * randn(2 * N_bits,1)); %中繼上行鏈路 noise_r2 = 1/sqrt(2) * (randn(2 * N_bits,1) + j * randn(2 * N_bits,1)); h_r2 = 1/sqrt(2) * (randn(2 * N_bits,1) + j * randn(2 * N_bits,1)); SNR = 10^(SNRdB(k)/10); %將SNRdB轉換為線性值SNRftx_r1 = sqrt(SNR) * h_r1 .* tx + noise_r1; %Decode n F %均衡eq_rx1 = ftx_r1 .* conj(h_r1); %硬判決和從雙極到bits的轉換r_bits = (sign(real(eq_rx1)) + 1)/2; %信道解碼dec_dcf_r1 = vitdec(r_bits,trellis,3,'term','hard'); %重新編碼c_data2 = convenc(dec_dcf_r1,trellis); %中繼編碼數據的BPSK信號tx2_dcf = 2 * c_data2 - 1; %Detect n Fdec_dtf_r1 = sign(real(eq_rx1)); tx2_dtf = dec_dtf_r1; %放大 n Fbeta = sqrt(1./((SNR * abs(h_r1).^2) + 1)); %放大: ftx_amp = ftx_r1 .* beta; %中繼% %DCF ftx_dcf_r2 = sqrt(SNR) * tx2_dcf .* h_r2 + noise_r2 ; %DTF ftx_dtf_r2 = sqrt(SNR) * tx2_dtf .* h_r2 + noise_r2 ; %AF ftx_af_r2 = sqrt(SNR) * ftx_amp .* h_r2 + noise_r2 ; %目的地ftx_d = sqrt(SNR)* tx .* h_d + noise_d; %MRCR_dcf = ftx_dcf_r2 .* conj(h_r2) + ftx_d .* conj(h_d); %硬決策dec_com_dcf = sign(real(R_dcf)); A684.完整MATLAB程序
matlab源碼說明_我愛C編程的博客-CSDN博客
V
總結
以上是生活随笔為你收集整理的基于matlab的MRC最大合并比误码率仿真,包括维特比译码,MRC,中继的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [论文阅读]A Joint Traini
- 下一篇: 文档阅读器开发思路