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

news2024/9/21 12:25:24

目录

1.算法描述

2.仿真效果预览

3.MATLAB核心程序

4.完整MATLAB


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无线通信系统中信号的发送与接收。

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

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

        提供了一种基于深度学习的时变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.仿真效果预览

matlab2022a仿真如下:

3.MATLAB核心程序

 
 
clc;
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
 

4.完整MATLAB

V

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/61766.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【科技与狠活】如何利用Python绘制足球场

卡塔尔世界杯赛程近半,朋友圈都在晒中奖的体育彩票,而我在搬砖🧱。 今天我将介绍如何使用Python Matplotlib创建一个足球场,本文设计球场尺寸为10568。 首先导入所需的依赖包: import pandas as pd import numpy as…

Spring框架(八):基于xml方式Bean的配置

基于xml方式Bean的配置引子基于xml方式Bean的配置Sping工厂实现静态工厂实例工厂FactoryBeanBean的依赖注入Spring的xml标签Spring的getBean方法Spring配置非自定义BeanSpringBean实例化的基本流程引子 痛定思痛,主要问题出现在自己雀氏不熟悉框架底层、一些面试题…

Vue 官方文档2.x教程学习笔记 1 基础 1.5 计算属性和侦听器 1.5.1 计算属性

Vue 官方文档2.x教程学习笔记 文章目录Vue 官方文档2.x教程学习笔记1 基础1.5 计算属性和侦听器1.5.1 计算属性1 基础 1.5 计算属性和侦听器 1.5.1 计算属性 模板内的表达式非常便利,但是设计它们的初衷是用于简单运算的。 在模板中放入太多的逻辑会让模板过重且…

【Linux内核】Linux内核介绍

Linux学习内核思路 学习过程: Linux内核引导及如何初始化进程管理、内存管理 内核引导及过程:CPU通电后,首先执行引导程序,引导程序把内核加载到**内存,**然后执行内核,内核初始化完成后,启动…

[附源码]计算机毕业设计二次元信息分享平台的设计及实现

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

年产2万吨山楂酒工厂的设计-陈酿工段及车间的设计(lunwen+任务书+cad图纸)

目录 摘 要 I Abstract II 1前 言 1 1.1设计背景及目的 1 1.1.1山楂酒的介绍及功效 1 1.1.2目标人群 1 1.1.3发展前景 2 1.2设计依据 2 1.3设计内容 2 1.4原材料的选择 3 第二章 山楂酒生产工艺设计 5 2.1工艺流程 5 2.2 操作要点 5 2.2.1 原料选择 5 2.2.2清洗: 5 …

机器学习:详细推导高斯混合聚类(GMM)原理(附Python实现)

目录0 写在前面1 高斯概率密度2 混合高斯分布3 GMM算法3.1 定义3.2 参数估计4 Python实现4.1 算法流程4.2 E步4.3 M步4.4 可视化0 写在前面 机器学习强基计划聚焦深度和广度,加深对机器学习模型的理解与应用。“深”在详细推导算法模型背后的数学原理;“…

用 NEON 实现高效的 FIR 滤波器

系列文章目录 数字信号处理中的 SIMDNeon intrinsics 简明教程 文章目录系列文章目录写在前面前言FIR 滤波器优化方案何时应该使用时域的滤波器?如何加快FIR滤波器的实现速度?初步假设有限长度信号反转的滤波器系数实际的卷积公式卷积过程可视化线性卷积…

第二期 微信云开发之位置信息获取(wx.getLocation)

很多小伙伴在开发微信小程序的时候,需要获取当前用户位置信息时,都会遇到该如何获取位置详细信息的问题,以下是我的处理方法。 首先,我在生活智打卡小程序使用的是微信小程序自带的获取用户的位置信息的接口(wx.getLoc…

基于JSP技术的猎头公司管理软件的设计和实现——内部事务部分(源代码+论文)

分类号:TP315 U D C:D10621-408-(2007)5978-0 密 级:公 开 编 号:2003031227 成都信息工程学院 学位论文 基于JSP技术的猎头公司管理软件的设计和实现 ——内部事务部分 基于JSP技术的猎头公司管理软件的设计和实现 ——内…

世界杯太精彩了,带大家用Python做个足球游戏,边玩游戏边看比赛

文章目录 Python零基础快速制作足球游戏(附源代码) 前言 一、Python环境说明 二、游戏程序说明 1、游戏开始界面 2、人物移动规则说明,可支持两位玩家 3、足球规则 4、主方法调取 三、游戏运行效果与比赛结果 1、游戏开始界面 2、…

桥接设计模式

一、桥接模式 1、定义 桥接模式(Bridge Pattern)又称作桥梁模式,指将抽象部分与具体实现部分分离,使它们都可以独立地变化,属于结构型设计模式。 桥接模式的主要目的是通过组合的方式建立两个类之间的联系&#xff0c…

java计算机毕业设计ssm社区养老服务管理系统iq0w7(附源码、数据库)

java计算机毕业设计ssm社区养老服务管理系统iq0w7(附源码、数据库) 项目运行 环境配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#…

海口市美兰区图书馆建筑结构设计(计算书+任务书+建筑结构施工组织设计cad图纸)

【目录】 1目录……………………………………………………………………………………………………….1 2前言……………………………………………………………………………………………………3 3 摘要……………………………………………………………….…………………………1 结…

Java项目:SSM出租车管理系统

作者主页:源码空间站2022 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 超级管理员角色包含以下功能: 超级管理员管理,公告管理,系统管理员管理,司机管理,车辆管理,维修保养管理,运营里程记录等功能。 普通…

12.4泛型 map set

目录 一,泛型 1 什么是泛型 2 引出泛型 2.1语法 3 泛型类的使用 3.1 语法 3.2 示例 3.3 类型推导(Type Inference) 4.裸类型(Raw Type) 5 泛型如何编译的 5.2 为什么不能实例化泛型类型数组 6 泛型的上界 6.1 语法 6.3 复杂示例 7 泛型方法 7.1 定义语法 二.通…

【数据结构】二分搜索树

集合java.util包下的常用子类,集合无非就是各种数据结构的应用。集合存在的目的就是为了将数据高校进行读写,无论哪种具体的集合无外乎CURD。 Collection->单个元素保存的父接口。 List->可以保存重复的单个元素。 Set->保存单个不重复元素。…

python在centos7.x下建立虚拟环境

(327条消息) python在centos下安装以及配置_雨师的博客-CSDN博客 https://blog.csdn.net/wtt234/article/details/128172281 python离线环境下安装第三方模块的方法: https://blog.csdn.net/wtt234/article/details/128162292 上篇已经把python在centos下的安装以及…

红蓝对抗--sliver 搭建

使用sliver的优点: 1 支持macos、win、linux上线 2 支持丰富的插件加载扩展,功能选择多,CS已经很普遍了,可以尝试sliver做C2 sliver相关构成: Implant:生成植入的木马 sliver-client :C2的控制端 Sliver Server:C2的控制端,客户端通过gRPC接口与server交互 架构: […

【 java 集合】Collection 接口中的常用方法

📋 个人简介 💖 作者简介:大家好,我是阿牛,全栈领域优质创作者。😜📝 个人主页:馆主阿牛🔥🎉 支持我:点赞👍收藏⭐️留言&#x1f4d…