decode_MMSE.m
资源名称:MIMO-OFDM.rar [点击查看]
上传用户:look542
上传日期:2009-06-04
资源大小:784k
文件大小:1k
源码类别:
传真(Fax)编程
开发平台:
Matlab
- 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