✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。
🍎个人主页:Matlab科研工作室
🍊个人信条:格物致知。
更多Matlab仿真内容点击👇
⛄ 内容介绍
OFDM是一种无线环境下的高速传输技术,该技术的基本原理是将高速的串行数据分解成多路低速率的并行数据,并针对不同的载波分别进行调制.因此通过各个子载波的联合编码,OFDM系统可以具有良好的抗多径衰落和时延弥散的能力,并且保持较高的传输速率.
⛄ 完整代码
%OFDM系统基于子空间的盲信道估计
clear all
close all
clc
Mt=2;Mr=4;%the number of transmit and received antennas
N=64; %the number of subcarrier, M
% nos=2000;%number of symbol
P1=[3 4]; %length of CP
% Q=N+P; %the totle length of an OFDM symbol, K
J=2; %collect J consecutively received OFDM symbols
L=3; %the order of channel
SNR=25;
Nm=1;
NRMSE=zeros(2,10);
a=[];
j=sqrt(-1);
mh1 = [ -1.4128-0.0914i 1.3527 - 0.0492i -0.01 - 0.2925i 0.0356 + 0.318i;
1.3521 - 0.5077i -1.2663 + 0.593i 0.1068 + 0.3369i -0.1314 - 0.3654i ;
-1.1205 + 0.2211i 1.1264 - 0.3101i 0.4627 - 0.0793i -0.485 + 0.1372i;
0.417+j*0.030 1 0.873+j*0.145 0.285+j*0.309 ];
mh2 = [ -0.3258 + 0.1603i 0.3012 - 0.2012i 0.0052 + 0.0095i -0.0094 + 0.0158i ;
0.3909 + 0.0212i -0.3892 + 0.0123i -0.068 + 0.266i -0.0342 - 0.2695i ;
-0.1579 + 0.0661i 0.1398 - 0.079i -0.0337 + 0.1259i -0.0227 - 0.0938i;
-0.221-j*0.322 -0.199+j*0.918 1 -0.284-j*0.524 ];
% mh1=[-0.049+j*0.359 0.482-j*0.569 -0.556+j*0.587 1 ; %h11
% 0.443-j*0.0364 1 0.921-j*0.194 0.189-j*0.208 ]; %h12
% mh2=[ -0.221-j*0.322 -0.199+j*0.918 1 -0.284-j*0.524 ; %h13
% 0.417+j*0.030 1 0.873+j*0.145 0.285+j*0.309 ]; %h14
h0=[mh1(:,1) mh2(:,1)];
h1=[mh1(:,2) mh2(:,2)];
h2=[mh1(:,3) mh2(:,3)];
h3=[mh1(:,4) mh2(:,4)];%%%公式(17),每个子信道
H1=[h0,h1,h2,h3];
h11=[mh1(:,1).',mh1(:,2).',mh1(:,3).',mh1(:,4).'].';
h22=[mh2(:,1).',mh2(:,2).',mh2(:,3).',mh2(:,4).'].';%%公式(29)
h=[h11,h22];%%公式(30),实际信道
% h=norm(h);
%构造W矩阵
for i6=1:1:2
P=P1(i6)
Q=N+P; %the totle length of an OFDM symbol, K
%-----------------------go through the channel-----------------%
H=zeros((J*Q-L)*Mr,J*Q*Mt);
for i=1:J*Q-L
H((i-1)*Mr+1:i*Mr,(i-1)*Mt+1:(L+i)*Mt)=H1;%%公式(25),构造H矩阵
end
W1=zeros(N,N);
for i1=1:N
for j1=1:N
W1(i1,j1)=exp(j*2*pi*(i1-1)*(j1-1)/N)/sqrt(N);
end
end
W=[W1(N-P+1:N,:);W1];
IJ=eye(J);
IMt=eye(Mt);
W2=kron(IJ,W);
W3=kron(W2,IMt); %%公式(12)
W4=conj(W)*(W.');
A=kron(IJ,W4); %%公式(35)中的带括号部分
%------------------------进行子空间估计--------------------------------%
for nos=500:500:5000;
for i1=1:Nm
%------------------产生OFDM符号-----------------------%
b0=round(rand(1,2*Mt*N*nos));
%QPSK modulation
b1=reshape(b0,2,Mt*N*nos).';
b2=bi2de(b1,2,'left-msb'); %%二进制向十进制转换
b3=[1+j 1-j -1+j -1-j];
b=b3(b2+1)/sqrt(2);
%串并变换
d1=b(:);
for i=1:nos-J+1
d4(:,i)=d1((i-1)*N*Mt+1:(i+J-1)*N*Mt);%连取J个符号
end
s=W3*d4;
%信号经过信道
r1=H*s;
r=awgn(r1,SNR);
%对r求自相关矩阵
Rr=r*r'/(nos-J+1);
%特征值分解
[U,S,V]=svd(Rr);
%[U,V]=eigs(Rr,(J*Q-L)*Mr-J*N*Mt,'sm');
%构造C矩阵
C=zeros((L+1)*Mr,(L+1)*Mr);
%for k=1:(J*Q-L)*Mr-J*N*Mt
for k=J*N*Mt+1:(J*Q-L)*Mr
uk=U(:,k);
vk1=reshape(uk,Mr,J*Q-L);
vk=zeros((L+1)*Mr,J*Q);
vk(1:Mr,:)=[vk1 zeros(Mr,L)];
for i3=1:L
vktmp=vk((i3-1)*Mr+1:i3*Mr,:);
vk(i3*Mr+1:(i3+1)*Mr,:)=[vktmp(:,J*Q) vktmp(:,1:J*Q-1)];
end
C=C+vk*A*vk';
end
% % vk2=zeros(Mr,2*(J*Q-L));
% % for i=1:J*Q-L
% % vk2(:,(i-1)*2+1)=vk1(:,i);
% % vk2(:,i*2)=zeros(Mr,0);
% % end
% % vk2=vk2(:,1:2*(J*Q-L)-1);
% % vk=zeros((L+1)*Mr,J*Q*Mt);
% % for i3=1:L+1
% % vk((i3-1)*Mr+1:i3*Mr,i3:i3+2*(J*Q-L)-1)=vk;
% % end
% % C=C+vk*vk';
[UC SC VC]=svd(C);
%[UC VC]=eigs(C,Mt,'sm');
hr0=UC(:,(L+1)*Mr-Mt+1:(L+1)*Mr); %最小的Mt个发射天线对应的特征向量
% a=lscov(hr0,h);
% Hr=hr0*a;
% Herr1=h-Hr
% Herr=Herr+(norm(Herr1)^2/(norm(h)^2));
% for i4=1:Mt
% NRMSE(i6,nos/500)=NRMSE(i6,nos/500)+(norm(Herr1(:,i4)))^2/(norm(h(:,i4)))^2;
% end
hb_h=zeros(1*Mt);
for i4=1:Mt
hb_h(i4)=mean(hr0(:,i4)./h(:,i4));
hb1(:,i4)=hr0(:,i4)/hb_h(i4);
NRMSE(i6,nos/500)=sqrt((h(:,i4)-hb1(:,i4))'*(h(:,i4)-hb1(:,i4)))/sqrt(h(:,i4)'*h(:,i4));
end
%
% Herr=Herr+sqrt((h-hr0)'*(h-hr0))/sqrt(h'*h);
%
end
NRMSE(i6,nos/500)=sqrt( NRMSE(i6,nos/500)/(Nm*Mt*Mr*(L+1)));
end
end
figure(1)
semilogy(500:500:5000,NRMSE(1,:),'-or',500:500:5000,NRMSE(2,:),'-^r');xlabel('nos');ylabel('NMSE');title('The NMSE of the Channel Estimation');grid
% axis([100 2000 10^-3 10^-1]);
⛄ 运行结果
⛄ 参考文献
[1] 刘玉珍, 闫兴玉. 基于VC的MIMO-OFDM系统的子空间半盲信道估计[J]. 计算机工程与应用, 2014(18).
[2] 兰海燕, 赵旦峰. 基于子空间的OFDM系统半盲信道估计研究[J]. 应用科技, 2007, 34(1):4.
[3] 刘强, 陈西宏, 胡茂凯. OFDM中基于子空间分解的半盲信道估计[J]. 现代电子技术, 2010(3):3.