“常用公式”在线计算,“设计手册”在线查询
如题,主要研究两种估计方法。一是LS;而是MMSE。理论和推导基本都搞懂了,现在偏偏仿真出了问题。其中一个最主要问题是如果已知信道矩阵H,怎么样去求信道自相关矩阵Rh呢?查看很多代码,发现都是MIMO-OFDM的,但是我只需要弄MIMO的。下面是我的代码,图片中是我的运行结果,其中MMSE估计方法的实际误差和理论误差有一定差距,也不知道哪里出了错误。我想这应该是一个非常基本的问题,只是我还没懂。所以请各位大牛能抽出时间帮我解答解答,不胜感激。之所以贴出代码,是想应该有和我一样有这方面困惑的人,希望看完我的代码能有一些启发,请帮忙顶顶贴,好让大牛们能看到这个帖子,终结这个困惑。非常感谢!
下面是我的代码:
clc;
clear all;
M=16;%发送天线个数
N=16;%接收天线个数
% 以下为产生发送序列X
HRsum=zeros(M,M);
Rh=zeros(M,M);
%产生x
X=zeros(1,M);
X=rand(1,M)>0.5;
X=2*X-1;
%***************************************************************************%
for k=1:500
    H=1/(sqrt(2))*(randn(M,N)+j*randn(M,N));%产生信道矩阵H
    h=0; % 对信道矩阵进行归一化
    for i=1:N*M
     h=h+abs((H(i))).^2;
    end
    h=sqrt(h);
    H=H/h;   
    HRsum=HRsum+H*H'; % 计算自相关矩阵
   Rh=HRsum/k;   
    for ii=1:11
     r=2*ii;
     SNR(ii)=r;
     n1=ones(1,N);
     n1=n1*0.000000000000000001i;
     NOISE=awgn(n1,r);
     Rv=(10^(SNR(ii)/10))^(-1);
     Y=X*H+NOISE; %产生信号模型
       Hls =pinv((X))*Y;
     Hmmse=Rh*X'*inv((X*Rh*X'+Rv))*Y;
     Pn=(10^(SNR(ii)/10))^(-1); % 计算噪声功率
       mm_error=(abs(H-Hmmse)).^2;
     ls_error=(abs(H-Hls)).^2;
     standard_error = Rh-Rh*X'*(X*Rh*X'+Rv)^(-1)*X*Rh;
     mmse(k,ii)=mean(mm_error();
     ls(k,ii)=mean(ls_error();
     mmse_theroy(k,ii)=mean(standard_error();      
    end
end
mmse_mse_final=mean(mmse);
ls_mse_final=mean(ls);
mmse_theroy_final=mean(mmse_theroy);
plot(SNR,mmse_mse_final,'b-*')
hold on
plot(SNR,ls_mse_final,'r')
grid on
hold on
plot(SNR,mmse_theroy_final,'g-+');
title('平坦瑞利衰落信道下MMSE和LS的估计性能');
xlabel('SNR/dB');
ylabel('MSE(均方误差)');
% legend('MMSE信道估计','LS信道估计','MMSE最小均方误差(理论值)');
再次表示感谢!

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 支持支持 反对反对

共 0 个关于本帖的回复 最后回复于 2015-1-13 15:42

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注我们

360网站安全检测平台