资源简介

MIMO多输入多输出系统,2发2收,瑞利信道,使用ZF和MMSE检测,得出系统误码率并进行对比的matlab仿真

资源截图

代码片段和文件信息

clc;
clear;
N=1000;
frame=100;
EbN0=(0:5:25);
N0=zeros(1length(EbN0));
H=zeros(22N);
H1=zeros(22N);
H2=zeros(22N);
W_ZF=zeros(22N);
W_MMSE=zeros(22N);
xzf_hat=zeros(21N);
xmmse_hat=zeros(21N);
z1=zeros(N1);
z2=zeros(N1);
y1=zeros(N1);
y2=zeros(N1);
y=zeros(21N);
x1zf_hat=zeros(N1);
x2zf_hat=zeros(N1);
x1zfhat=zeros(N1);
x2zfhat=zeros(N1);
x1mmse_hat=zeros(N1);
x2mmse_hat=zeros(N1);
x1mmsehat=zeros(N1);
x2mmsehat=zeros(N1);
num1ZF(6)=0;
num2ZF(6)=0;
BER_ZF(6)=0;
num1MMSE(6)=0;
num2MMSE(6)=0;
BER_MMSE(6)=0;
h11=(randn(1N)+1j*randn(1N))/sqrt(2);
h12=(randn(1N)+1j*randn(1N))/sqrt(2);
h21=(randn(1N)+1j*randn(1N))/sqrt(2);
h22=(randn(1N)+1j*randn(1N))/sqrt(2);
x1=round(rand(N1));
x2=round(rand(N1));
u1=2*x1-1;
u2=2*x2-1;
for t=1:N
    H(::t)=[h11(t)h12(t);h21(t)h22(t)];
end

for i=1:length(EbN0)
    berZF=0;
    berMMSE=0;
    berML=0;
    N0(i)=1/(10^((EbN0(i))/10));
    for m=1:frame
        z1=sqrt(N0(i)/(2))*randn(size(x1));
        z2=sqrt(N0(i)/(2))*randn(size(x2));
        y1=u1.*(h11).‘+u2.*(h12).‘+z1;
        y2=u1.*(h21).‘+u2.*(h22).‘+z2;
        for q=1:N
            y(::q)=[y1(q);y2(q)];
        end
        %ZF================================================================
        for n=1:N
            W_ZF(::n)= inv(conj(H(::n).‘)*H(::n))*(conj(H(::n).‘));
        end
        for p=1:N
            xzf_hat(::p)=W_ZF(::p)*y(::p);
        end
        for o=1:N
            x1zf_hat(o)=xzf_hat(11o);
            x2zf_ha

评论

共有 条评论