📄 decode_mmse.m
字号:
function output=decode_MMSE(Y,H,Cons,No)
% Cons=1/2*[1 -1];
len=size(H);
S=zeros(1,len(2));
output1=zeros(1,len(2));
output2=zeros(1,len(2));
for i=1:1:len(2)
S(i)=i;
end
for i=1:1:len(2)
G=pinv(H'*H+No*eye(len(2)))*H';
m=zeros(1,len(2)-i+1);
for k=i:1:len(2)
m(k-i+1)=norm(G(k,:));
end
n=find(m==min(m));
n1=n+i-1;
temp=S(i);
S(i)=S(n1);
S(n1)=temp;
temp=H(:,i);
H(:,i)=H(:,n1);
H(:,n1)=temp;
w=G(n1,:);
y=w*Y;
for k=1:1:2
M(k)=(y-Cons(k))*conj(y-Cons(k));
end
output1(1,i)=Cons(find(M==min(M)));
Y=Y-H(:,i).*output1(1,i); %干扰消除
H(:,i)=zeros(len(1),1); %把范数最小的行对应的H中的列全部迫零
end
for i=1:1:len(2) %恢复发送数据的顺序
temp=S(i);
output(1,temp)=output1(1,i);
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -