首页 > 编程语言 >基于DNN深度学习网络的OFDM信号检测算法的matlab仿真,对比LS和MMSE两个算法

基于DNN深度学习网络的OFDM信号检测算法的matlab仿真,对比LS和MMSE两个算法

时间:2023-02-03 17:35:11浏览次数:36  
标签:... MMSE OFDM 检测 信道 网络 算法 信号

1.算法描述 在OFDM系统中,信道估计器的设计上要有两个问题:** 一是导频信息的选择,由于无线信道的时变特性,需要接收机不断对信道进行跟踪,因此导频信息也必须不断的传送: 二是既有较低的复杂度又有良好的导频跟踪能力的信道估计器的设计,在确定导频发送方式和信道估计准则条件下,寻找最佳的信道估计器结构。

    正交频分复用(OFDM,Orthogonal Frequency Division Multiple)技术凭借抗多径能力强、频谱利用率高、易于与其他多种接入方法相结合等特性,在第四代移动通信(The Fourth Generation,4G)系统中广泛使用并被制定在多项标准中。然而,OFDM也有着因为子载波叠加而导致的峰均比过高,和经过衰落信道后产生的非线性失真、多径衰落等问题,从而会严重影响到整个通信系统的误符号率(SER)性能[2]。

    传统的信号检测方法有最小二乘(LS)法和最小均方误差(MMSE)法,LS算法虽然实现起来比较简单、计算复杂度较低,但是其忽略了噪声的影响,因此其信噪比低时性能较差。MMSE算法考虑了噪声的影响,因此其性能比LS算法有所提升,但是这种性能优势需要事先知道信道的先验信息,因而实现起来较为困难,且这2种算法在导频数量较少时的信号检测性能较差。

    近年来,深度学习作为人工智能的基础技术,在计算机视觉和自然语言处理等学科取得巨大的成功,在图像分类、语音识别、面部识别和机器翻译风格转换等方面超越了传统机器学习方法的性能,使得无人驾驶、智能疾病诊断和个性化推荐等应用成为可能。神经网络在无线通信领域得到一些应用,例如直接采取端到端方式神经网络代替整个无线通信系统中的信道估计与均衡模块,也有用神经网络进行对信道估计的优化。将神经网络融到迭代信号重建算法,设计一种基于深度学习去噪的近似信息传递网络,利用大量数据学习信道结构,在较短时间内有效地进行信道估计,解决了由射频链路数量有限导致的信道估计难题。

   因为频谱资源十分珍贵,如果一个信道仅仅只传输一路信号,那无疑是对频谱资源的浪费, 为了能够充分利用信道带宽, 频分复用是一种很好的方法。OFDM技术是频分复用方法的一种,其基本原理如下:将串行的高速数据流转换为低速的并行数据流,然后将数据调制到相互正交的子载波上4Q。OFDM系统可以通过DFT和ID FT的方法产生相互正交的子载波,然后利用子载波之间的正交性,将原始信号从子载波中分离开来,通过这种方法可以实现OFDM无线通信系统中信号的发送与接收。

   如下图所示,经过训练的神经网络以从导频符号所估计的结果作为输入,以所有符号上的信道频率响应作为输出。

1.png 从基于给定信道仿真模型的结果来看,由于能“学习”更准确的导频与数据符号之间的信道变化特性,相比于传统方案,该方案能获得更好的性能。然而,在训练阶段用所有符号上的理想信道信息作为目标优化数据,显然是难以实现的。

    提供了一种基于深度学习的时变OFDM系统信号检测方法,生成信号检测网络模型输入数据集,构建一个信号检测网络模型,在网络训练前需预设好训练和测试参数,采用在线生成训练数据和测试数据的方式训练网络,测试数据喂入信号检测网络,信号检测网络模型根据喂入的特征向量,产生预测出的发送数据比特,与真实的发送数据比特进行对比,测试网络当前的性能.本发明于针对快速时变OFDM系统,结合深度学习方法,利用循环神经网络处理时间序列的优势,简化了接收机架构,成功实现信号的解调,改进了快速时变OFDM系统中的信号检测性能,本发明有效减小了系统实现复杂度,同时也提升了系统整体的误比特率性能.

    针对DNN信号检测网络对OFDM系统信号检测能力不理想的情况,本文提出了LSTM信号检测网络并介绍了框架结构以及训练过程,LSTM信号检测网络主要包含输入层、LSTM层、全连接层、softmax层以及分类层,LSTM信号检测网络能够提取输入数据之间的信息,故相比于DNN网络有更好的性能,该网络需要在已有的信道模型下生成的数据进行训练,然后再将经过训练的网络放入OFDM系统进行应用。仿真表明,LSTM信号检测网络相比于传统算法在不同导频数与有无循环前缀的情况下均有较高的性能提升,与DNN信号检测网络相比,在误符号率为10~(-2)时,有了1d B的性能提升。其次,针对之前提出的LSTM信号检测网络收敛速度慢等问题,本文提出了一种基于双向长短记忆神经网络的信号检测网络,该网络主要包含:输入层、Bi LSTM层、全连接层、softmax层以及分类层。首先需要构建Bi LSTM网络,然后利用3GPP信道模型下生成的数据对已经构建好的神经网络进行训练,最后则可将训练好的神经网络应用于OFDM系统之中,对整个系统进行信号检测。

   dnn结构如下:

2.png

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

3.png

3.MATLAB核心程序

clear;
close all;
warning off;
addpath(genpath(pwd));
 
%% Load training and validation data
 
load('TrainingData.mat');
load('ValidationData.mat');
 
%% Define training parameters
 
MiniBatchSize = 1000;
MaxEpochs = 100;
InputSize = 2*NumOFDMsym*NumSC;
NumHiddenUnits = 16;
NumClass = length(Label);
 
%% Form DNN layers
 
Layers = [ ...
    sequenceInputLayer(InputSize)
    lstmLayer(NumHiddenUnits,'OutputMode','last')
    fullyConnectedLayer(NumClass)
    softmaxLayer
    classificationLayer];
 
%% Define trainig options
 
Options = trainingOptions('adam',...
    'InitialLearnRate',0.01,...
    'ValidationData',{XValid,YValid}, ...
    'ExecutionEnvironment','auto', ...
    'GradientThreshold',1, ...
    'LearnRateDropFactor',0.1,...
    'MaxEpochs',MaxEpochs, ...
    'MiniBatchSize',MiniBatchSize, ...
    'Shuffle','every-epoch', ...
    'Verbose',0,...
    'Plots','training-progress');
 
%% Train DNN
A88

标签:...,MMSE,OFDM,检测,信道,网络,算法,信号
From: https://blog.51cto.com/matworld/6035939

相关文章

  • 算法
    /*1.字符串最后一个单词的长度*/stringstr;getline(cin,str);intcount=0;intlen=str.length();for(inti=len-1;i>-1;i--)......
  • 最大公约数算法真的无趣?一看就会的算法代码示例
    最大公约数算法不是很无聊,计算最大公约数是数学中一个重要的概念,可以用于判断两个数是否互质、求分数的约分等,在很多领域都有广泛的应用。具体如下:判断两个数是否互质:两......
  • LeetCode刷题,代码随想录算法训练营Day3| 链表理论基础 203.移除链表元素 707.设计链
    链表理论基础链表是通过指针串联在一起的线性结构,每个节点由一个数据域和一个指针域构成。链表的类型单链表双链表有两个指针域,一个指向下一个节点,一个指向上一个节......
  • 【算法训练营day39】LeetCode62. 不同路径 LeetCode63. 不同路径II
    LeetCode62.不同路径题目链接:62.不同路径独上高楼,望尽天涯路第一次接触二维的dp数组,初始化会麻烦一点,dp数组表示的是机器人移动到第i行第j列格子的所有路径数。class......
  • ST算法(区间最值)
    ST算法是解决RMQ(区间最值)问题,它能在O(nlogn)的时间预处理,然后酶促查询的复杂度是O(1)。其原理是倍增,f[i][j]表示从i位起的2^j个数中的最大数,即[i,i+2^j-1]中的最大值。首先,我们......
  • 机器学习——k-近邻算法(KNN)、
    k-近邻算法(kNN),它的工作原理是:存在一个样本数据集合,也称作训练样本集,并且样本集中每个数据都存在标签,即我们知道样本集中每一数据与所属分类的对应关系。输入没有标签的新......
  • 6.2RLE算法的机制
    数据后,不难看出有不少字符是重复出现的。在字符后面加上重复出现次数,AAAAAABBCDDEEEEEF就可以用A6B2C1D2E5F1来表示。A6B2CID2E5F1是12个字符也就是12字节,因此结果就将原文......
  • 算法--2023.2.2
    1.力扣72--编辑距离classSolution{//典型动态对话问题publicintminDistance(Stringword1,Stringword2){intm=word1.length(),n=word2.......
  • Snowflake 雪花算法补充
    雪花算法,要保持全局唯一,必须要指定唯一的dataCenterId和workerId,正常这两个数都是0-31之间的一个值。如果我们自己的商用节点,应该依赖注册中心,手动的为每隔节点指定......
  • LeetCode 对称二叉树算法题解 All In One
    LeetCode对称二叉树算法题解AllInOne对称二叉树原理图解101.SymmetricTree对称二叉树https://leetcode.com/problems/symmetric-tree/https://leetcode.c......