OFDM通信系统的LS信道估计均衡算法matlab仿真

这篇具有很好参考价值的文章主要介绍了OFDM通信系统的LS信道估计均衡算法matlab仿真。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、理论基础

二、核心程序

三、仿真结论


一、理论基础

      OFDM主要思想是:将信道分成若干正交子信道,将高速数据信号转换成并行的低速子数据流,调制到在每个子信道上进行传输。正交信号可以通过在接收端采用相关技术来分开,这样可以减少子信道之间的相互干扰(ISI) 。每个子信道上的信号带宽小于信道的相关带宽,因此每个子信道上可以看成平坦性衰落,从而可以消除码间串扰,而且由于每个子信道的带宽仅仅是原信道带宽的一小部分,信道均衡变得相对容易。

       OFDM是一种特殊的多载波传输方案。OFDM应用DFT和其逆变换IDFT方法解决了产生多个互相正交的子载波和从子载波中恢复原信号的问题。这就解决了多载波传输系统发送和传送的难题。应用快速傅里叶变换更使多载波传输系统的复杂度大大降低。从此OFDM技术开始走向实用。但是应用OFDM系统仍然需要大量繁杂的数字信号处理过程,而当时还缺乏数字处理功能强大的元器件,因此OFDM技术迟迟没有得到迅速发展。

       基于IFFT/FFT 实现的OFDM 系统:

OFDM通信系统的LS信道估计均衡算法matlab仿真

       OFDM采用BPSK、QPSK、16QAM、64QAM4种调制方式。按照星座图,将每个子信道上的数据,映射到星座图点的复数表示,转换为同相Ich和正交分量Qch。

       其实这是一种查表的方法,以16QAM星座为例,bits_per_symbol=4,则每个OFDM符号的每个子信道上有4个二进制数{d1,d2,d3,d4},共有16种取值,对应星座图上16个点,每个点的实部记为Qch。为了所有的映射点有相同高的平均功率,输出要进行归一化,所以对应BPSK,PQSK,16QAM,64QAM,分别乘以归一化系数系数1,, , .输出的复数序列即为映射后的调制结果。

       信道估计可以定义为描述物理信道对输入信号的影响而进行定性研究的过程,是信道对输入信号影响的一种数学表示。如果信道是线性的,那么信道估计就是对系统冲激响应进行估计。信道估计的目标就是使某种估计误差最小化,同时还要尽量降低算法的复杂度,并具有可实现性。

       基于训练序列的信道估计算法适用于突发传输方式的系统。通过发送已知的训练序列,在接收端进行初始的信道估计,当发送有用的信息数据时,利用初始的信道估计结果进行一个判决更新,完成实时的信道估计。基于导频符号的信道估计适用于连续传输的系统。通过在发送的有用数据中插入已知的导频符号,可以得到导频位置的信道估计结果;接着利用导频位置的信道估计结果,通过内插得到有用数据位置的信道估计结果,完成信道估计。

       为了能在接收端准确的恢复发射端的发送信号,人们采用各种措施来抵抗多径效应对传输信号的影响,信道估计技术的实现需要知道无线信道的信息,如信道的阶数、多普勒频移和多径时延或者信道的冲激响应等参数。因此,信道参数估计是实现无线通信系统的一项关键技术。能否获得详细的信道信息,从而在接收端正确地解调出发射信号,是衡量一个无线通信系统性能的重要指标。因此,对于信道参数估计算法的研究是一项有重要意义的工作。
OFDM通信系统的LS信道估计均衡算法matlab仿真

       其中Y为实际接收数据,Y’为估计的接收数据,其大小均为N1X1的矩阵(N1为参与LSCE计算的数据数量),Z 为噪声也是一个N1X1的矩阵,H是真实信道矩阵,H’是估计信道矩阵,大小为N2X1(N2为估计的多径数量)。X为发送数据矩阵,是一个N1XN2的矩阵,其包含的数据为按行进行符号延迟的数据。
       首先明确一点,在LS估计中,我们使用Y和Y‘’来进行计算,估计出的结果是H’而并非H,若估计的结果H’使得Y’与Y误差最小,则能得到的结果应该是H’与H(带三角)的误差最小,但H(带三角)也不是真实的信道矩阵,其内还包含了一个误差项Z/X,因此对于LS信道估计而言,其结果的精度是受这个误差项影响的,而这个误差项概括来说就是和SNR相关,SNR越大,误差项越小,LS估计精度越高。

        LS算法计算简单、复杂度低,不需要信道的任何先验统计特性。该方法导频处信道频域响应(CFR)通过LS算法估计得到,数据符号处CFR通过插值方法获得。然而,由于LS估计方法不能消除导频处噪声的影响,并且插值类信道估计方法不能有效消除由于多径引起的频域选择兴衰落信道的影响,导致数据处CFR获取不准确,因此LS算法的估计性能较差。

       信道估计中的LS算法是最基本且常用的算法,用最朴实的话说就是忽略噪声,直接除。其公式表示为H(i)=Y(i)/X(i)。频域接收信号导频位置Y,本地已知导频X。两者简单相除,就可以得到导频位置的信道估计值H(i)。

二、核心程序

............................................................
 %-------------------------------------------------------------   
 %LS信道估计
  H=[];
  Y2=Y3(:,signal);
  Rx_training_symbols=Y3(:,pilot);
  Rx_training_symbols0=reshape(Rx_training_symbols,symbols_per_carrier*Np,1);
  
  training_symbol0=reshape(training_symbols,1,symbols_per_carrier*Np);
  training_symbol1=diag(training_symbol0);
  %disp(training_symbols)
  training_symbol2=inv(training_symbol1);
  Hls=training_symbol2*Rx_training_symbols0;
  Hls1=reshape(Hls,symbols_per_carrier,Np);
  HLs=[];
  HLs1=[];
 if ceil(carrier_count/LI)==carrier_count/LI
     for k=1:Np-1
        HLs2=[];
           for t=1:LI
           HLs1(:,1)=(Hls1(:,k+1)-Hls1(:,k))*(t-1)./LI+Hls1(:,k);
           HLs2=[HLs2,HLs1];
        end
       HLs=[HLs,HLs2];
    end
else
    for k=1:Np-2
        HLs2=[];
        for t=1:LI
           HLs1(:,1)=(Hls1(:,k+1)-Hls1(:,k))*(t-1)./LI+Hls1(:,k);
           HLs2=[HLs2,HLs1];
        end
       HLs=[HLs,HLs2];
    end
    HLs3=[];
    for t=1:mod(carrier_count,LI)
        HLs1(:,1)=(Hls1(:,Np)-Hls1(:,Np-1))*(t-1)./LI+Hls1(:,Np-1);
        HLs3=[HLs3,HLs1];
    end;
    HLs=[HLs,HLs3];
end
  %Hls1=Hls.';
  %H=repmat(Hls1,symbols_per_carrier,1);%将导频扩展成symbols_per_carrier*carrier_count矩阵
  Y1=Y2./HLs;
  
  
%-------------------------------------------------------------------

 
 
 
     
             
             
%-------------------------------------------------------------
  %并串变换
  YY=reshape(Y2.',1,N_number/bits_per_symbol);
  YY1=reshape(Y1.',1,N_number/bits_per_symbol);
 
%------------------------------------------------------------
%QPSK解调
   y_real=sign(real(YY));
   y_image=sign(imag(YY));
   y_re=y_real./sqrt(2);
   y_im=y_image./sqrt(2); 
   y_real1=sign(real(YY1));
   y_image1=sign(imag(YY1));
   y_re1=y_real1./sqrt(2);
   y_im1=y_image1./sqrt(2); 
 
   r00=[];
   r01=[];
   r10=[];
   r11=[];
 
  for k=1:length(y_real);
     r00=[r00,[y_real(k),y_image(k)]];
  end;
  for k=1:length(y_real1);
     r10=[r10,[y_real1(k),y_image1(k)]];
  end;
 
 for k=1:length(y_re);
     r01=[r01,[y_re(k),y_im(k)]];
 end;
 for k=1:length(y_re1);
     r11=[r11,[y_re1(k),y_im1(k)]];
 end;

    XX(find(r01>0))=1;
%-------------------------------------------------------------
%计算在不同信噪比下的误比特率并作图

 dif_bit=s-r01; 
 dif_bit1=s-r11; 

 ber_snr=0;    %纪录误比特数
    for k=1:N_number;
       if dif_bit(k)~=0;
         ber_snr=ber_snr+1;
       end
   end;
 ber_snr1=0;    %纪录误比特数
    for k=1:N_number;
       if dif_bit1(k)~=0;
          ber_snr1=ber_snr1+1;
      end
    end
 
 Error_ber=[Error_ber,ber_snr];
 Error_ber1=[Error_ber1,ber_snr1];
end

BER=zeros(1,length(0:snr:N_snr));
BER1=zeros(1,length(0:snr:N_snr));

BER=Error_ber./N_number;
BER1=Error_ber1./N_number;
%-------------------------------------------------------------
%-------------------------------------------------------------
 i=0:snr:N_snr;
semilogy(i,BER,'-*r');

hold on;
semilogy(i,BER1,'-og');
hold on;

grid on;

legend('No Channel Estimation','LS Channel Estimation');
hold off			   
UP163

三、仿真结论

OFDM通信系统的LS信道估计均衡算法matlab仿真

  文章来源地址https://www.toymoban.com/news/detail-455578.html

到了这里,关于OFDM通信系统的LS信道估计均衡算法matlab仿真的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于OFDM通信系统的低复杂度的资源分配算法matlab性能仿真

    目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程     matlab2022a        在OFDM通信系统中,资源分配是一项关键任务,它涉及将可用的频谱资源和功率分配给不同的子载波,以实现高效的数据传输。为了降低计算复杂度并提高

    2024年02月13日
    浏览(49)
  • 【MATLAB源码-第139期】基于matlab的OFDM信号识别与相关参数的估计,高阶累量/小波算法调制识别,循环谱估计,带宽估计,载波数目估计等等。

    在现代无线通信系统中,正交频分复用(OFDM)因其高效的频谱利用率、强大的抗多径衰落能力以及灵活的带宽分配等优势,成为了一种非常重要的调制技术。然而,随着无线通信网络的复杂性增加,对OFDM信号的识别与参数估计提出了更高的要求。这不仅是为了提高通信质量

    2024年02月19日
    浏览(46)
  • 通信算法之196: SIMO模式信道均衡算法及代码

      详细参考文章192。    

    2024年02月01日
    浏览(33)
  • OFDM 系统在 AWGN 信道下对不同载波频率偏移 (CFO) 的 BER 灵敏度研究(Matlab代码实现)

     💥💥💞💞 欢迎来到本博客 ❤️❤️💥💥 🏆博主优势: 🌞🌞🌞 博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️ 座右铭: 行百里者,半于九十。 📋📋📋 本文目录如下: 🎁🎁🎁 目录 💥1 概述 📚2 运行结果 🎉3 参考文献 🌈4 Matlab代码实现 OFDM系统

    2024年02月10日
    浏览(53)
  • 基于OFDM的水下图像传输通信系统matlab仿真

    目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 matlab2022a        基于OFDM的水下图像传输通信系统是一种用于在水下环境中传输图像数据的通信系统。它采用了OFDM(Orthogonal Frequency Division Multiplexing)技术,这种技术在水下

    2024年02月10日
    浏览(40)
  • 【OTFS论文阅读2】——《高速移动通信中 OTFS 信道估计研究 》

    Channel Estimation in OTFS High-Speed Mobile Communication Systems 刘庆达 硕士毕业论文 #压缩感知CS信道估计算法 #分数多普勒 #SISO-OTFS #MIMO-OTFS #3D-SOMP 稀疏信号的观测值数量大大低于奈奎斯特定理得到的采样值数目,在减少导频数量的同时进行比较可靠有效的信道估计 (1) 对信号进行稀疏变

    2024年04月11日
    浏览(48)
  • 基于MATLAB的MIMO信道估计(附完整代码与分析)

    目录 一. 介绍 二. MATLAB代码 三. 运行结果与分析 3.1 均方误差(MSE)与训练功率(dB)的关系 3.2 不同信道估计方法性能对比 本篇将在MATLAB的仿真环境中对比MIMO几种常见的信道估计方法的性能。 有关MIMO的介绍可看转至此篇博客: MIMO系统模型构建_唠嗑!的博客-CSDN博客 在所有

    2024年02月06日
    浏览(94)
  • 【MATLAB源码-第65期】基于matlab的OFDM/OTFS通信系统性能对比,输处误码率曲线;对比是否采用LDPC编码。

      OTFS(Orthogonal Time Frequency Space)是一种无线通信调制技术,它利用时间、频率和空间的正交性来传输数据,目的是提高无线通信系统的性能,尤其是在多径和高移动性环境中。 1. 时间-频率资源块:OTFS调制将整个时间-频率平面划分为一个个小的资源块,每个资源块都代表

    2024年02月06日
    浏览(45)
  • 《移动通信原理与应用》——信道均衡技术仿真

    目录 一、自适应均衡器的仿真流程图: 二、仿真结果:   三、MATLAB仿真代码: 结果分析: (1)从仿真结果图可以看出,未经过均衡器均衡的码元序列随着SNR的增大,曲线走势情况平缓,变化不大,这表明误码率变化平缓,减小度量最小。总体来看,误码率是曲线图中三者

    2024年01月23日
    浏览(47)
  • 5G NR无线蜂窝系统的信道估计器设计

    类型A:DMRS位于时隙的第二个或第三个OFDM符号,由14个OFDM符号组成,当数据占据大部分时隙时使用A型映射。 类型B:用在URLLC中,在第一个OFDM符号中传输,并进行数据调度,在时隙持续时间和数据需要立即调度的地方应用 类型A 和B决定DMRS在时域的密度,类型A最多可配置4个

    2024年02月04日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包