生活随笔
收集整理的這篇文章主要介紹了
莱斯信道衰落下的QPSK误码率分析
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在無線信道中,萊斯分布是一種最常見的用于描述接收信號包絡統計時變特性的分布類型。其中萊斯因子是反映信道質量的重要參數,在計算信道質量和鏈路預算、移動臺移動速度以及測向性能分析等都發揮著重要的作用 [4] 。信號在傳輸過程中由于多徑效應,接收信號是直射信號(主信號)和多徑信號的疊加,此時接收信號的包絡服從萊斯分布。事實上,在考慮多徑效應的時候,原始信號與呈現瑞利分布的多徑分量的和常常被描述為萊斯分布。
其中,萊斯分布的概率密度函數為
下面給出在萊斯信道衰落下的QPSK誤碼率分析代碼。
clear all;
close all;
K_rice_dB=40; %萊斯分布的增益
K_rice=10^(K_rice_dB/10);
M=4; %MPSK
k=log2(M); %每符號的比特數
N_sym=10; %分塊處理,每個塊含有的符號數
N_bit=k*N_sym; %總共要處理的符號數
N_block=10000; %塊的數目
Es=1; %將每個符號的能量歸一化
Eb=Es/k; %計算每比特的能量
Eb_N0_dB=0:1:10; %初始化信噪比
Eb_N0=10.^(Eb_N0_dB/10);
N0=Eb./Eb_N0; %計算噪聲功率譜密度
len_EbN0=length(Eb_N0);EbN0_pointer=1;
temp_EbN0_pointer=EbN0_pointer;
errs=zeros(1,len_EbN0); %錯誤碼元數目初始化
block_count=zeros(1,len_EbN0);
while (EbN0_pointer <= len_EbN0) && (block_count(len_EbN0) < N_block)B=round(rand(1,N_bit)); %產生隨機二進制序列Dm=reshape(B,k,N_sym); %矩陣轉置D = Dm(1,:)+1i*Dm(2,:); %產生兩路獨立的二進制信號.Tx_data = sqrt(Eb) * (2*D-(1+1i)); %發射雙極性不歸零二進制信號Noise=sqrt(0.5)*(randn(1, N_sym)+1i*randn(1, N_sym)); %高斯噪聲h_ray=sqrt(0.5)*(randn(1,1)+1i*randn(1,1)); %瑞利衰落分布信道h_rice=(sqrt(K_rice)+h_ray)/sqrt(1+K_rice); %萊斯衰落分布信道,這里要做歸一化for n = EbN0_pointer : len_EbNRx_data = h_rice*Tx_data + sqrt(N0(n))*Noise; %接收端信號y=Rx_data/h_rice; %信道增益Recov_Tx_data= sqrt(Eb)*(sign(real(y))+1i*sign(imag(y)));Recov_D = 0.5*(1+1i+Recov_Tx_data/sqrt(Eb));errs(n)= errs(n)+sum(abs(Recov_D-D).^2); %計算錯誤比特數if errs(n)>=800temp_EbN0_pointer = temp_EbN0_pointer+1;end;block_count(n)=block_count(n)+1; %進入下一塊循環end;EbN0_pointer=temp_EbN0_pointer;block_count
end;
Num_BER = errs./(N_bit*block_count); %數值模擬誤碼率
Ana_BER=0.5*(1-sqrt(Eb_N0./(1+Eb_N0))); %理論誤碼率
figure; %做出誤碼率曲線
semilogy(Eb_N0_dB, Num_BER, '-s');
hold on;
semilogy(Eb_N0_dB, Ana_BER, 'r-*');
grid on;
Rician_legend=['Rician fading (K= ',num2str(K_rice_dB),' dB)'];
legend(Rician_legend, 'Rayleigh fading');
title('QPSK in Ricean Fading Channels');
xlabel('Eb/N0 (dB)');
ylabel('BER');
總結
以上是生活随笔為你收集整理的莱斯信道衰落下的QPSK误码率分析的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。