m分别使用能量检测法和循环谱实现ofdm信号检测matlab仿真

1.算法描述

        为了在接收端进行数据恢复,需要知道调制值的参考相位和幅度,在实际系统中,由于载波频率偏移、定时偏差记忆信道的频率选择性衰落等的影响信号会收到破坏,导致相位偏移和幅度变化。为了恢复信号,接收端存在两种信号检测方法,查分检测和相干检测。差分检测可以在时域和频域内分别进行:时域内差分通过比较当前OFDM符号子载波与前一个OFDM符号中对应子载波间幅度和相位的差值来实现。相干检测利用信号的参考值来检测信号,所以在使用相干信号检测的时候,前面需要一个信道估计。差分检测方法比较适合较低传输速率的OFDM系统,如欧洲的DAB系统。而对于要求更高的传输速率和频谱效率的OFDM系统,相干检测更合适。

 

      OFDM 中信号检测算法总体分为三类,线性检测、非线性检测、最优检测。常用的算法有迫零ZF检测、均方误差MMSEV-BLAST 检测和最大似然检测算法。在最优检测中的最大似然(ML)检测算法虽然性能是这几类中最好的,但其复杂度是随着天线数和信号调制阶数的逐渐的增加而成指数量级快速增加。当在实际应用中天线数目过多时,该检测算法的计算量将非常大,所以不适合实际使用。线性检测中最小均方误差(MMSE)信号检测算法和迫零(ZF)信号检测算法都归属于线性检测算法类型,它们只能对在信道矩阵方面对接收信号进行相对于线性均衡性质的检测,实现虽然简单,但是检测性能不理想,对比最大似然(ML)检测算法的精确度相差很多。V-BLAST 检测算法的性能和复杂度介于最大似然检测和线性检测之间,在现实中被广泛地应用。

 

1.1能量检测法

 

       能量检测法是一种非相干的检测手段,与频谱分析非常相似,也是通过判决来实现的。该方法依据感知器在信号有无两种假设情况下按接收信号功率大小的不同对信号进行检测。这种方法是一种对未知参数的确定性信号及其存在性检测的有效方法。由于能量检测对信号类型不作限制,因此不需要授权信号的先验信息。能量检测的主要思想是:将授权信号St)的功率在一个时间段(N个采样点)内取平均:

 

 

 

 

1.2循环谱检测法

 

谱相关分析方法主要有以下特点:

1.很多声呐信号都是循环平稳信号,而噪声却是平稳信号。当给回波信号做循环相关时,噪声大都集中在alpha=0上,而alpha=0相当于传统功率谱,如果采用传统功率谱方法,无法针对噪声进行抑制,而循环谱却可以在低信噪比的情况下很好的抑制平稳噪声。

2.由于循环谱包含幅度和相位,谱相关函数能为信号分析提供更多的信息(信号载频,带宽,符号速率,相位和时间)。所以采用循环谱方法,可以通过二维空间来提取更多的特征参数。

3.由于大多人造信号都是循环平稳信号,和传统的功率谱分析方法,谱相关分析更准确地揭示令循环平稳信号的本质。

 

 

 

 

2.仿真效果预览

matlab2022a仿真结果如下:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3.MATLAB核心程序

 

%OFDM参数
%数据长度
paras.lens   = 2000; 
%数据速率
paras.rate   = 6; 
%信号发射速率,恒定
Rate              = 20e6;
fc                = 100e6;
%循环谱检测参数
%采样频率
fs      = 300e6; 
%采样长度
N       = 2048;  
%平滑点数
M       = 20;    
%信噪比
SNR     = 15;
%数据
Signals     = round(rand(1,8*paras.lens));
%OFDM信号生成
Signal_OFDM = transmitter(Signals,paras);
%提升信号采样率
s_n         = ceil(fs/Rate); 
Signal_OFDM = Signal_OFDM(ones(s_n,1),:);
Signal_OFDM = reshape(Signal_OFDM, 1, s_n*length(Signal_OFDM));
 
%载波调制
Signal_channel = real(Signal_OFDM.*exp(j*2*pi*fc/fs*(0:length(Signal_OFDM)-1)));
Signal_channel = [Signal_channel]; 

 

  

 

posted @ 2023-03-09 22:01  我爱C编程  阅读(100)  评论(0编辑  收藏  举报