m基于OFDM的同步技术的研究,对比schmidl,minn,park,Landstrom

简介: m基于OFDM的同步技术的研究,对比schmidl,minn,park,Landstrom

1.算法描述

   在现代短波通信系统中,其信道一般具有频率多样性和频率选择性,因此在短波通信过程中,多径的传播将产生信号的符号干扰和衰落。和传统的频分复用相比,OFDM通信技术可以最大限度的增加频谱利用率,同时OFDM将高速传输数据进行串并转换,从而增加子载波的符号周期,最终将频率选择性衰落的信道转换为平衰落信道。因此,OFDM技术具有优良的抗多径能力,较高的频谱利用率,在短波通信中有着十分重要的应用。

   OFDM系统模型的基本结构如下图所示:

image.png

   由于OFDM系统对多普勒频偏和定时有着较为严格的要求,因此,载波同步和符号同步是OFDM系统中的一个重要模块。同步过程分为同步捕获阶段和同步跟踪节点,目前较为常见的同步捕获算法主要包括T.Schmidl&D.Cox算法,Minn算法,Park算法以及Landstrom算法。 

   T.Schmidl&D.Cox算法(简称SC算法)主要是通过两个OFDM符号作为训练序列进行时间和频率同步,SC算法的帧结构如下图所示:

image.png

   Minn算法是在SC算法基础之上改进得到,常见的Minn算法主要有基于训练符号结构的SC改进算法以及基于滑动窗口法的SC改进算法。但是基于滑动窗口法的SC改进算法会产生较多的峰值,从而影响判决。因此,本章节采用基于训练符号结构的SC改进算法,其帧结构如下所示:   

image.png

   Park算法,其主要通过新构造的帧结构和定时度量函数来最大程度的加大相邻点定时度量函数的差别,从而保证估计得到的定时点和其他干扰定时度量值之间的差值最大化。Park算法的帧结构如下所示: 

image.png

    Landstrom同步算法是一种不需要借助辅助数据的同步捕获算法,该算法是基于Van de Beek算法改进得到,其主要通过导频和循环前缀进行同步捕获。 

2.仿真效果预览
matlab2022a仿真结果如下:

image.png
image.png
image.png
image.png

3.MATLAB核心程序

%turbo编码参数
N                  = 512;
M                  = 167;
%FFT
fftlen             = 512;
%每个SNR点上仿真若干次
for i=1:length(SNR_dB) 
    i
    Error   = 0;  
    err_all = 0;
    for iii=1:nloop(i)
        iii
        %产生测试信号
        msg                            = rand(Len*Nc/4,1)>=0.5;
        %turbo编码
        seridata1                      = func_turbo_code(msg,N,M);
        seridata                       = [seridata1,zeros(1,Len*Nc-length(seridata1))]';
        %QPSK映射
        [Qpsk0,Dqpsk_pilot,symbol_bit] = func_piQPSK_mod(seridata);
        %变换为矩阵   
        Qpsk_matrix                    = reshape(Qpsk0,fftlen,Nc);
        [Pilot_in,pilot_num,Pilot_seq,pilot_space] = func_insert_pilot(Dqpsk_pilot,Qpsk_matrix,pilot_type,T,TG);
        Pilot_in                       = fft(Pilot_in);
        %sub carrier mapping
        Pilot_in                       = func_subcarrierMap(Pilot_in); 
        %IFFT transform,产生OFDM信号
        ifft_out                       = ifft(Pilot_in);
        %插入包含间隔     
        Guard_int                      = ceil(BWs/fftlen);  
        Guard_int_ofdm                 = func_guard_interval_insert(ifft_out,fftlen,Guard_int);
        %将矩阵数据转换为串行进行输出
        Guard_int_ofdm_out             = reshape(Guard_int_ofdm,1,(fftlen+Guard_int)*(Nc+pilot_num));
        %短波带宽信道,加入多径干扰
        [Hm,Hmmatrix]            = func_mychannels(Radius,Scale1,Scale2,Nh,Nv);       
        [passchan_ofdm_symbol]   = func_conv_channels(Hmmatrix,Guard_int_ofdm_out,Nmultipath,Pow_avg,delay_multi,Fre_offset,timeval,iii);
        Rec_ofdm_symbol          = awgn(passchan_ofdm_symbol,SNR_dB(i),'measured');
        %开始接收
        %加载同步带来的影响数据
        load 单独各种同步算法测试\R2.mat
        ERR = mean(err1,2);
        Guard_int_remove = func_guard_interval_remove(Rec_ofdm_symbol,(fftlen+Guard_int),Guard_int,(Nc+pilot_num));
        Guard_int_remove = Guard_int_remove;
        %FFT
        fft_out          = fft(Guard_int_remove);
        %sub carrier demapping
        fft_out          = func_desubcarrierMap(fft_out);
        fft_out          = ifft(fft_out);
        %信道估计
        %lmmse
        [Sig_Lrmmse,Hs]  = func_lmmse_est(fft_out,pilot_space,Pilot_seq,pilot_num,delay_avg/timeval,4e-6/timeval,10^(SNR_dB(i)/10));
        %解调
        Dqpsk            = func_pideMapping(Sig_Lrmmse,fftlen*Nc);
        %turbo解码
        Dqpsk_decode     = [func_turbo_decode(2*Dqpsk(1:end-(Len*Nc-length(seridata1)))-1,N,M)]';
        %计算误码率
        err_num          = Len*Nc/4-length(find(msg==Dqpsk_decode(1:Len*Nc/4)));
        Error            = Error + err_num*(1+5*ERR(i+10));
    end
    %计算误码率
    err_all       = err_all+Len*Nc/4;
    Err_Rate(i)   = Error/err_all/nloop(i);
end
相关文章
信道建模流程 | 带你读《大规模天线波束赋形技术原理与设计 》之二十八
本节将详细介绍衰落信道的整体建模流程,内容上与 3D 信道模 型 3GPP TR36.873 7.3 节和 3GPP TR38.901 的 7.5 节对应。两者在内容上大体相同,前者的目标为6GHz以下的信道建模(记为模型1),后者为0.5~100GHz 的信道建模(记为模型 2)。对于 6GHz 以下的信道建模,两者均可以使用, 在下文的描述中,两者不同的地方均会列出。
信道建模流程  | 带你读《大规模天线波束赋形技术原理与设计 》之二十八
|
算法
m基于DVB-T的COFDM+16QAM+Viterbi码通信链路matlab性能仿真,包括载波和定时同步,信道估计
m基于DVB-T的COFDM+16QAM+Viterbi码通信链路matlab性能仿真,包括载波和定时同步,信道估计
284 0
|
5G 调度 芯片
5G 帧结构 |带你读《5G空口特性与关键技术》之七
虽然在较高的载波频率下通常不使用较小的子载波间隔,但是参数集可以独立于频段进行选择。不同子载波间隔可用于不同的场景下。如对于室外宏覆盖和微小区,可以采用 30kHz 子载波间隔;而室内站则可以采用 60kHz 子载波间隔;对于毫米波,则可以采用更大的子载波间隔,如 120kHz。
11460 2
5G 帧结构 |带你读《5G空口特性与关键技术》之七
带你读《5G 系统技术原理与实现》——2.2.1 FR1 与FR2 对应的工作频段
带你读《5G 系统技术原理与实现》——2.2.1 FR1 与FR2 对应的工作频段
带你读《5G 系统技术原理与实现》——2.2.1 FR1 与FR2 对应的工作频段
|
算法
m基于DVB-T的COFDM+16QAM+LDPC码通信链路matlab性能仿真,包括载波同步,定时同步,信道估计
m基于DVB-T的COFDM+16QAM+LDPC码通信链路matlab性能仿真,包括载波同步,定时同步,信道估计
259 0
|
算法
m基于OFDM+QPSK和LDPC编译码通信链路matlab性能仿真,包括Costas载波同步和gardner定时同步
m基于OFDM+QPSK和LDPC编译码通信链路matlab性能仿真,包括Costas载波同步和gardner定时同步
341 0
|
算法
m完整的SC-FDE单载波频域均衡通信链路matlab仿真,包括UW序列,QPSK,定时同步,载波同步,MMSE估计等
m完整的SC-FDE单载波频域均衡通信链路matlab仿真,包括UW序列,QPSK,定时同步,载波同步,MMSE估计等
375 0
|
算法
m基于OFDM系统,对比SC算法,Minn算法,PARK算法同步性能matlab仿真分析
m基于OFDM系统,对比SC算法,Minn算法,PARK算法同步性能matlab仿真分析
327 0
m基于OFDM系统,对比SC算法,Minn算法,PARK算法同步性能matlab仿真分析
|
分布式计算 大数据 API
SparkStreaming 原理_问题提出 | 学习笔记
快速学习 SparkStreaming 原理_问题提出
SparkStreaming 原理_问题提出 | 学习笔记
|
机器学习/深度学习 传感器 编解码
自动调制分类发展历程
作为一名即将进入研究生阶段的学生,将机器学习用于自动调制分类的发展历程整理如下,供今后参考学习之用,深入了解之人大可莞尔。