資源簡介
迫零波束成形,MMSE波束成形以及非線性波束成形仿真代碼
代碼片段和文件信息
%基于ZF準則MMSE準則的預編碼性能比較
function?zf_mmse_svd()
clear?all
close?all
format?long;?%將數據顯示為長整型科學計數?
Nt=4;%天線個數
Nr=4;
SNR=[0:5:20];%設置不同信噪比
channel_n=100*ones(1length(SNR));
error_mmselinp=zeros(1length(SNR));%初始化誤碼率
error_zflinp=zeros(1length(SNR));
error_nonlinp=zeros(1length(SNR));
for?loop_ebno=1:length(SNR)%不同信噪比的循環
????snr=10.^(SNR(loop_ebno)/10);%將信噪比從分貝形式轉化成比例表示
????ea=1;%每個天線發射的功率,也即信號向量中每個元素的功率
????es=ea*Nt;%總共的發射功率
????sigma_n2=es/snr;%噪聲功率
????num=100;%發送數據個數
????tic
????for?loop_channel=1:channel_n(loop_ebno)%信道的實現次數的循環
????????H=sqrt(1/2)*(randn(NrNt)+j*randn(NrNt));%信道增益矩陣
????????mmse_F=H‘*inv(H*H‘+sigma_n2/ea*eye(Nt));
????????zf_F=H‘*inv(H*H‘);?%求出F^
????????beta_mmse=sqrt(es/norm(mmse_F‘fro‘).^2);
????????beta_zf=sqrt(es/norm(zf_F‘fro‘).^2);?%求出縮放因子beta
????????F_mmse=beta_mmse*mmse_F;?
????????F_zf=beta_zf*zf_F;%求出預編碼矩陣F=F^×beta?
????????for?loop_num=1:num%在一幀數據符號中,信道保持不變。一幀總共有num個數據發送
????????????gen_s=(sign(randn(Nt1))+j*sign(randn(Nt1)));%產生信號
????????????s=sqrt(1/2)*gen_s;%歸一化信號功率
????????????x_mmse=F_mmse*s;
????????????x_zf=F_zf*s;%發送信號
????????????noise=sqrt(sigma_n2/2)*(randn(Nr1)+j*randn(Nr1));%生成噪聲功率為sigma_n2的噪聲
????????????noise1=sqrt(sigma_n2/2)*(randn(Nr1)+j*randn(Nr1));
????????????noise2=sqrt(sigma_n2/2)*(randn(Nr1)+j*randn(Nr1));
????????????y_mmse=H*x_mmse+noise;
????????????y_zf=H*x_zf+noise1;
????????????y_non=H*s+noise2;
????????????r_mmse=1/beta_mmse*y_mmse;
????????????
- 上一篇:CT圖像重建SART算法matlab代碼
- 下一篇:普銳斯車型發動機map圖
評論
共有 條評論