基于子空间的OFDM系统盲信道估计附matlab代码

本文涉及的产品
文本翻译,文本翻译 100万字符
图片翻译,图片翻译 100张
语种识别,语种识别 100万字符
简介: 基于子空间的OFDM系统盲信道估计附matlab代码

✅作者简介:热爱科研的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.


⛳️ 完整代码

❤️部分理论引用网络文献,若有侵权联系博主删除
❤️ 关注我领取海量matlab电子书和数学建模资料



相关文章
|
10天前
|
算法 图形学
三维球体空间中光线反射模拟与三维点云提取matlab仿真
本项目使用MATLAB2022A模拟三维椭球体内光线反射并提取三维点云。通过设置椭球模型作为墙壁,根据几何光学原理计算光线在曲面上的反射路径,记录每次反射点坐标,生成三维点云图。核心代码实现多次反射的循环计算与绘图,并展示反射点的位置变化及其平滑处理结果。最终,通过光线追踪技术模拟真实场景中的光线行为,生成精确的三维点云数据,适用于计算机图形学和光学仿真领域。
|
11天前
|
编解码 算法 数据安全/隐私保护
基于BP译码的LDPC误码率matlab仿真,分析不同码长,码率,迭代次数以及信道类型对译码性能的影响
本内容介绍基于MATLAB 2022a的低密度奇偶校验码(LDPC)仿真,展示了完整的无水印仿真结果。LDPC是一种逼近香农限的信道编码技术,广泛应用于现代通信系统。BP译码算法通过Tanner图上的消息传递实现高效译码。仿真程序涵盖了不同Eb/N0下的误码率计算,并分析了码长、码率、迭代次数和信道类型对译码性能的影响。核心代码实现了LDPC编码、BPSK调制、高斯信道传输及BP译码过程,最终绘制误码率曲线并保存数据。 字符数:239
54 5
|
1月前
|
算法 5G 数据安全/隐私保护
基于MIMO系统的PE-AltMin混合预编码算法matlab性能仿真
本文介绍了基于交替最小化(AltMin)算法的混合预编码技术在MIMO系统中的应用。通过Matlab 2022a仿真,展示了该算法在不同信噪比下的性能表现。核心程序实现了对预编码器和组合器的优化,有效降低了硬件复杂度,同时保持了接近全数字预编码的性能。仿真结果表明,该方法具有良好的鲁棒性和收敛性。
41 8
|
2月前
|
算法 数据安全/隐私保护 索引
OFDM系统PAPR算法的MATLAB仿真,对比SLM,PTS以及CAF,对比不同傅里叶变换长度
本项目展示了在MATLAB 2022a环境下,通过选择映射(SLM)与相位截断星座图(PTS)技术有效降低OFDM系统中PAPR的算法实现。包括无水印的算法运行效果预览、核心程序及详尽的中文注释,附带操作步骤视频,适合研究与教学使用。
|
1月前
|
算法 数据安全/隐私保护 索引
索引OFDM调制解调系统的matlab性能仿真
本文对m索引OFDM调制解调系统性能进行了仿真分析,增加了仿真图并配有语音讲解视频,使用Matlab2022a完成仿真,代码无水印。研究了OFDM-IM技术,通过激活不同子载波组合传输额外信息,提高频谱效率和降低PAPR。提出了OFDM联合子块索引调制技术(OFDM-JS-IM)和OFDM全索引方法(OFDM-AIM),并通过遗传算法优化子块查找表,有效提升系统性能。提供了核心MATLAB程序示例。
59 3
|
2月前
|
机器学习/深度学习 算法 5G
基于MIMO系统的SDR-AltMin混合预编码算法matlab性能仿真
基于MIMO系统的SDR-AltMin混合预编码算法通过结合半定松弛和交替最小化技术,优化大规模MIMO系统的预编码矩阵,提高信号质量。Matlab 2022a仿真结果显示,该算法能有效提升系统性能并降低计算复杂度。核心程序包括预编码和接收矩阵的设计,以及不同信噪比下的性能评估。
56 3
|
1月前
|
算法 数据安全/隐私保护
数字通信中不同信道类型对通信系统性能影响matlab仿真分析,对比AWGN,BEC,BSC以及多径信道
本项目展示了数字通信系统中几种典型信道模型(AWGN、BEC、BSC及多径信道)的算法实现与分析。使用Matlab2022a开发,提供无水印运行效果预览图、部分核心代码及完整版带中文注释的源码和操作视频。通过数学公式深入解析各信道特性及其对系统性能的影响。
|
3月前
|
监控 算法 数据安全/隐私保护
基于三帧差算法的运动目标检测系统FPGA实现,包含testbench和MATLAB辅助验证程序
本项目展示了基于FPGA与MATLAB实现的三帧差算法运动目标检测。使用Vivado 2019.2和MATLAB 2022a开发环境,通过对比连续三帧图像的像素值变化,有效识别运动区域。项目包括完整无水印的运行效果预览、详细中文注释的代码及操作步骤视频,适合学习和研究。
|
3月前
|
编解码 算法 数据安全/隐私保护
基于BP译码的LDPC误码率matlab仿真,分析码长,码率,信道对译码性能的影响,对比卷积码,turbo码以及BCH码
本程序系统基于BP译码的LDPC误码率MATLAB仿真,分析不同码长、码率、信道对译码性能的影响,并与卷积码、Turbo码及BCH编译码进行对比。升级版增加了更多码长、码率和信道的测试,展示了LDPC码的优越性能。LDPC码由Gallager在1963年提出,具有低复杂度、可并行译码等优点,近年来成为信道编码研究的热点。程序在MATLAB 2022a上运行,仿真结果无水印。
64 0
|
5月前
|
安全
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
本文介绍了2023年高教社杯数学建模竞赛D题的圈养湖羊空间利用率问题,包括问题分析、数学模型建立和MATLAB代码实现,旨在优化养殖场的生产计划和空间利用效率。
247 6
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码

热门文章

最新文章