miinquire matlab,MIMO系统的MLD检测(最大似然检测,Maximum Likelihood Detector)的2个matlab程序(QPSK调制)...

MIMO系统的MLD检测(最大似然检测,Maximum Likelihood Detector)

的2个matlab程序(QPSK调制)

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% 程序设计:蒙面超人 %

%函数功能:1X1,2X2,4X4,8X8 MIMO系统的MLD检测 %

%编程思想:将所有可能的组合计算后存入TR维的矩阵,找出最小值, %

%然后再和矩阵的每个值比较,是最小值时停止比较,并输出原信号。 %

%说明:TR是天线数,H是信道,R是接收到得信号,输出ss是检测出的原信号。% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

function ss=mld1(TR,H,R)

QP=[exp(j*pi/4),exp(j*3*pi/4),exp(j*5*pi/4),exp(j*7*pi/4)];

%1X1

if TR==1

s=QP;

for a=1:4

r=H*s(a);

r1(a)=(R-r)'*(R-r);

end

[y x]=min(r1);

ss=s(x);

%2X2

elseif TR==2

s=zeros(4,4); %储存计算结果

for a=1:4 %每种可能的组合进行计算

for b=1:4

s1=[QP(a);QP(b)];

r=H*(1/sqrt(TR))*s1;

s(a,b)=(R-r)'*(R-r);

end

end

s2=reshape(s,1,[]);

mi=min(s2); %找出最小值

for a=1:4 %矩阵每个值与最小值比较

for b=1:4

if s(a,b)==mi %如果是最小值,输出结果,并停止比较

ss=[QP(a);QP(b)];

break

end

end

end

%4X4

elseif TR==4

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值