資源簡介
mimo下行的線性預編碼,分別基于ZF準則和MMSE準則,分別對基于zf準則的線性預編碼和基于mmse準則的線性預編碼進行比較。最后得到結論。

代碼片段和文件信息
%基于ZF準則和MMSE準則的預編碼性能比較
function?zf_mmse()
clear?all
close?all
format?long;?%將數(shù)據(jù)顯示為長整型科學計數(shù)?
Nt=4;%天線個數(shù)
Nr=4;
SNR=[0:2:20];%設置不同信噪比
channel_n=100*ones(1length(SNR));
error_mmselinp=zeros(1length(SNR));%初始化誤碼率
error_zflinp=zeros(1length(SNR));
for?loop_ebno=1:length(SNR)%不同信噪比的循環(huán)
????snr=10.^(SNR(loop_ebno)/10);%將信噪比從分貝形式轉化成比例表示
????ea=1;%每個天線發(fā)射的功率,也即信號向量中每個元素的功率
????es=ea*Nt;%總共的發(fā)射功率
????sigma_n2=es/snr;%噪聲功率
????num=200;%發(fā)送數(shù)據(jù)個數(shù)
????tic
????for?loop_channel=1:channel_n(loop_ebno)%信道的實現(xiàn)次數(shù)的循環(huán)
????????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^文獻MIMO信道預編碼技術研究??重要文獻p27
????????beta_mmse=sqrt(es/norm(mmse_F‘fro‘).^2);
????????beta_zf=sqrt(es/norm(zf_F‘fro‘).^2);%計算zf_F的Frobenius范數(shù)%%求出縮放因子beta
????????F_mmse=beta_mmse*mmse_F;?
????????F_zf=beta_zf*zf_F;%求出預編碼矩陣F=F^×beta
????????for?loop_num=1:num%在一幀數(shù)據(jù)符號中,信道保持不變。一幀總共有num個數(shù)據(jù)發(fā)送
????????????gen_u=(sign(randn(Nt1))+j*sign(randn(Nt1)));%產(chǎn)生信號
????????????u=sqrt(1/2)*gen_u;%歸一化信號功率
????????????x_mmse=F_mmse*u;
????????????x_zf=F_zf*u;%發(fā)送信號
????????????noise=sqrt(sigma_n2/2)*(randn(Nr1)+j*randn(Nr1));%生成噪聲功率為sigma_n2的噪聲
????????????noise1=sqrt(sigma_n2/2)*(randn(Nr1)+j*randn(Nr1));
????????????y_mmse=H*x_mmse+noise;
????????????y_zf=H*x_zf+noise1;
????????????r_mmse=1/beta_mmse*y_mmse;
????????????r_zf=1/beta_zf*y_zf;%接收信號
????????????rev_data_mmse=sign(real(r_mmse))+j*sign(imag(r_mmse));%對接收信號進行判決
????????????rev_data_zf=sign(real(r_zf))+j*sign(imag(r_zf));
????????????error_mmselinp(1loop_ebno)=error_mmselinp(1loop_ebno)+sum(((abs(rev_data_mmse-gen_u)).^2)/4);%計算誤比特數(shù)
????????????error_zflinp(1loop_ebno)=error_zflinp(1loop_ebno)+sum(((abs(rev_data_zf-gen_u)).^2)/4);
????????end?
????end?
????toc
????ber_mmselinp(1loop_ebno)=error_mmselinp(1loop_ebno)/(num*Nt*2*channel_n(loop_ebno));%注意每一個信噪比產(chǎn)生的數(shù)據(jù)數(shù)=channel_n(loop_ebno)*num*Nt*2
??????????????????????????????????????????????????????????????????????????????????????????%乘以2是因為,產(chǎn)生的數(shù)據(jù)符號式復數(shù),相當于進行了4QAM調制
????ber_zflinp(1loop_ebno)=error_zflinp(1loop_ebno)/(num*Nt*2*channel_n(loop_ebno));
end?
%畫出不同準則下誤碼率和信噪比的曲線
P1=semilogy(SNRber_mmselinp‘o-r‘);
hold?on
P2=semilogy(SNRber_zflinp‘*-k‘);
set(P1‘Linewidth‘[2]);%P1線寬2號
set(P2‘Linewidth‘[2]);%P2線寬2號
grid?on;
xlabel(‘symbol?SNR(dB)‘);ylabel(‘BER‘);
title(‘基于ZF準則和MMSE準則的預編碼性能比較‘)
leg1=‘mmselinear‘;%設置圖例
leg2=‘zflinear‘;
legend(leg1leg2);
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????2735??2010-05-04?09:19??zf_mmse.m
-----------?---------??----------?-----??----
?????????????????2735????????????????????1
- 上一篇:Intouch2017臨時授權
- 下一篇:Caurina 包文件
評論
共有 條評論