MMSE法用于MIMO系统


之前讲到过迫零响应法(ZF)在MIMO系统中的应用,而另外一种均衡方法也常常用在不理想传输信道中,这就是最小误差法(Minimum Mean Square Error,简称MMSE)。
在这里插入图片描述

MMSE方法用于MIMO系统程序如下:

博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 代码片.

clear all;
close all;
SNR_dB=0:2:20;
K=4;                     %发射天线数量
L=4;                     %接收天线数量
Es=1;                    %把信号能量设置为1
len_SNR=length(SNR_dB);
N0_dB=10*log10(K*Es)-SNR_dB;  %信噪比用对数形式表示时,SNR_dB=S_dB-N_dB,注意这里的信号功率要乘以K,因为有K路发射信号
N0=10.^(N0_dB/10);       %实际噪声功率
count=zeros(1,len_SNR);  %错误接受码元计数
BER=zeros(1,len_SNR);    %误码率
N_block=5000;            %信道最大块数
N_sym0=100;              %每根天线处理的QPSK符号数
N_err=2000;              %最小错误码元数
n_init=1;                %信噪比指针
while (n_init<=len_SNR)&&(count(len_SNR)<N_block)
	H=sqrt(0.5)*(randn(L,K)+1i*randn(L,K));          %产生LKQPSK信号,H信道冲激响应
    Dt=round(rand(K,N_sym0)+1i*rand(K,N_sym0));      %发送KQPSK信号
    modDt=sqrt(Es/2)*(Dt*2-(1+1i));
    HS=H*modDt;                                      %接收端信号
	Noise=sqrt(0.5)*(randn(L,N_sym0)+1i*randn(L,N_sym0));  %L路接收端的噪声
    for n=n_init:len_SNR
        count(n)=count(n)+1
        n0=N0(n);
        RxDt=HS+sqrt(n0)*Noise;                      %接收信号(考虑L路噪声影响)
        W=inv(H'*H+n0*eye(K))*H';                    %最小均方误差法求逆矩阵
        zt=W*RxDt;
        estDt=(sign(real(zt))+1i*sign(imag(zt))+1+1i)/2;
        err=abs(round(Dt-estDt)).^2;
        BER(n)=BER(n)+sum(sum(err));
    end;  
    if mean(BER(n_init))>=N_err   
        n_init=n_init+1;
    end;   
end; 
format short e;                                       %format short e格式控制指令,表示5字长浮点数
BER=BER./(2*K*N_sym0*count);
semilogy(SNR_dB, BER, '-*');
strtitle=['MMSE for a ',num2str(K),'x',num2str(L),' QPSK System'];  %strtitle表示字符标题
title(strtitle);
xlabel('Rx SNR per antenna (dB)');
ylabel('BER');
grid on;
  • 11
    点赞
  • 81
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值