⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 subspace_mimo.m

📁 衰落信道下的盲估计研究MIMO-OFDM,mimo子空间仿真程序
💻 M
字号:
clear all
clc
echoF=1;   
SNR_dB=30; sgma=1;
T=1000; 
p=2;q=2;
L=2; M=4; N=5; d=M+N; 
j=sqrt(-1);          
h11=[-0.049+j*0.359 0.482-j*0.569 -0.556+j*0.587 1 -0.171+j*0.061];
h12=[0.443-j*0.0364 1 0.921-j*0.194 0.189-j*0.208 -0.087-j*0.054];
h21=[0.221-j*0.322 -0.199+j*0.918 1 0.284-j*0.524 0.136-j*0.19];
h22=[0.417+j*0.030 1 0.873+j*0.145 -0.285+j*0.309 0.049+j*0.161];
h1=[h11 h12].';h2=[h21 h22].';
h=[h11 h12 h21 h22].';

for snrl=1:length(SNR_dB)
    snrl
s1=sign(rand(1,T)-0.5)+2*sign(rand(1,T)-0.5); 
s1=s1+sqrt(-1)*(sign(rand(1,T)-0.5)+2*sign(rand(1,T)-0.5));
s2=sign(rand(1,T)-0.5)+2*sign(rand(1,T)-0.5); 
s2=s2+sqrt(-1)*(sign(rand(1,T)-0.5)+2*sign(rand(1,T)-0.5));
end

TN=T-N+1; X1=zeros(L*N,TN); X2=zeros(L*N,TN);SNR=[];  v=[];
for i=1:L
  x1=filter(h1((i-1)*(M+1)+1:i*(M+1)),1,s1);
  x1=awgn(x1,SNR_dB,sgma);
  x2=filter(h2((i-1)*(M+1)+1:i*(M+1)),1,s2);
  x2=awgn(x2,SNR_dB,sgma);
      
  for j=1:TN,
    X1((i-1)*N+1:i*N, j)=x1(j+N-1:-1:j).';
    X2((i-1)*N+1:i*N, j)=x2(j+N-1:-1:j).';
  end

end
  

Rx1=X1*X1'/TN;                
[U01,S01,V01]=svd(Rx1);        
Rx2=X2*X2'/TN;               
[U02,S02,V02]=svd(Rx2);        

Q1=zeros(L*(M+1), L*(M+1));           
Q2=zeros(L*(M+1), L*(M+1));
for i=d+1:L*N,
  Vm1=zeros(L*(M+1), M+N);
  Vm2=zeros(L*(M+1), M+N);
  for j=1:(M+1),
    for k=1:L,
      Vm1((k-1)*(M+1)+j, j:(j+N-1))=U01((k-1)*N+1:k*N, i).';
       Vm2((k-1)*(M+1)+j, j:(j+N-1))=U02((k-1)*N+1:k*N, i).';
    end
  end
  Q1=Q1+Vm1*Vm1';
  Q2=Q2+Vm2*Vm2';
end

[U11,S11,V11]=svd(Q1);       
hb1=U11(:,L*(M+1));          
[U12,S12,V12]=svd(Q2);         
hb2=U12(:,L*(M+1)); 

hb_h1=mean(hb1./h1);             
hb1=hb1/hb_h1;
hb_h2=mean(hb2./h2);             
hb2=hb2/hb_h2;


if echoF     
  figure(1)  
  te=length(h1); 
  plot(1:te,real(hb1),'ko-',1:te,real(h1),'k+-'), grid
  legend('估计值','理论值')
  title('信道脉冲响应h的实部');
  figure(2)  
  plot(1:te,imag(hb1),'ko-',1:te,imag(h1),'k+-'); grid, 
  legend('估计值','理论值')
  title('信道脉冲响应h的虚部')
 
   figure(3)  
  te=length(h2); 
  plot(1:te,real(hb2),'ko-',1:te,real(h2),'k+-'), grid
  legend('估计值','理论值')
  title('信道脉冲响应h的实部');
  figure(4)  
  plot(1:te,imag(hb2),'ko-',1:te,imag(h2),'k+-'); grid, 
  legend('估计值','理论值')
  title('信道脉冲响应h的虚部')
end
 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -