当前位置: 首页 > news >正文

基于CNN卷积神经网络的调制信号识别算法matlab仿真

目录

1.算法运行效果图预览

2.算法运行软件版本

3.部分核心程序

4.算法理论概述

1. 卷积神经网络(CNN)

2. 调制信号识别

3.实现过程

5.算法完整程序工程


1.算法运行效果图预览

 

 

2.算法运行软件版本

MATLAB2022A

3.部分核心程序

% 构建调制类型分类的卷积神经网络模型modClassNet
modClassNet = [imageInputLayer([1 spf 2], 'Normalization', 'none', 'Name', 'Input Layer')convolution2dLayer(filterSize, 16*netWidth, 'Padding', 'same', 'Name', 'CNN1')batchNormalizationLayer('Name', 'BN1')reluLayer('Name', 'ReLU1')maxPooling2dLayer(poolSize, 'Stride', [1 2], 'Name', 'MaxPool1')convolution2dLayer(filterSize, 24*netWidth, 'Padding', 'same', 'Name', 'CNN2')batchNormalizationLayer('Name', 'BN2')reluLayer('Name', 'ReLU2')maxPooling2dLayer(poolSize, 'Stride', [1 2], 'Name', 'MaxPool2')convolution2dLayer(filterSize, 32*netWidth, 'Padding', 'same', 'Name', 'CNN3')batchNormalizationLayer('Name', 'BN3')reluLayer('Name', 'ReLU3')maxPooling2dLayer(poolSize, 'Stride', [1 2], 'Name', 'MaxPool3')convolution2dLayer(filterSize, 48*netWidth, 'Padding', 'same', 'Name', 'CNN4')batchNormalizationLayer('Name', 'BN4')reluLayer('Name', 'ReLU4')maxPooling2dLayer(poolSize, 'Stride', [1 2], 'Name', 'MaxPool4')convolution2dLayer(filterSize, 64*netWidth, 'Padding', 'same', 'Name', 'CNN5')batchNormalizationLayer('Name', 'BN5')reluLayer('Name', 'ReLU5')maxPooling2dLayer(poolSize, 'Stride', [1 2], 'Name', 'MaxPool5')convolution2dLayer(filterSize, 96*netWidth, 'Padding', 'same', 'Name', 'CNN6')batchNormalizationLayer('Name', 'BN6')reluLayer('Name', 'ReLU6')convolution2dLayer(filterSize, 128*netWidth, 'Padding', 'same', 'Name', 'CNN7')batchNormalizationLayer('Name', 'BN7')reluLayer('Name', 'ReLU7')averagePooling2dLayer([1 ceil(spf/32)], 'Name', 'AP1')fullyConnectedLayer(numModTypes, 'Name', 'FC1')softmaxLayer('Name', 'SoftMax')classificationLayer('Name', 'Output') ]
% 分析网络结构并展示网络的层次结构
analyzeNetwork(modClassNet)% 最大训练轮数,网络将在此轮数结束后停止训练
maxEpochs           = 15;
% 每次迭代的小批量样本数量
miniBatchSize       = 256;
% 每隔多少次迭代进行一次验证,用于观察验证集上的性能
validationFrequency = 20;
% 设置训练选项,包括优化算法(adam)、学习率、训练轮数、小批量样本数量、是否每轮迭代都重新打乱数据、是否绘制训练进度图、是否显示训练过程信息、验证数据和验证频率、学习率衰减策略等options = trainingOptions('adam', ...'InitialLearnRate',1e-2, ...'MaxEpochs',maxEpochs, ...'MiniBatchSize',miniBatchSize, ...'Shuffle','every-epoch', ...'Plots','training-progress', ...'Verbose',false, ...'ValidationData',{rxValidation,rxValidationLabel}, ...'ValidationFrequency',validationFrequency, ...'LearnRateSchedule', 'piecewise', ...'LearnRateDropPeriod', 9, ...'LearnRateDropFactor', 0.1, ...'ExecutionEnvironment', 'multi-gpu');% 使用训练数据集rxTraining和标签rxTrainingLabel,利用设置的模型modClassNet和训练选项options训练得到调制类型分类的神经网络模型trainedNet0SNR_v7trainedNet0SNR_v7 = trainNetwork(rxTraining,rxTrainingLabel,modClassNet,options);
0030

4.算法理论概述

        在无线通信系统中,调制信号的识别是一项重要的任务。通过识别接收到的信号的调制方式,可以对信号进行解调和解码,从而实现正确的数据传输和通信。卷积神经网络(Convolutional Neural Network,CNN)是一种深度学习模型,在图像和信号处理领域取得了显著的成功。

1. 卷积神经网络(CNN)

       CNN是一种深度学习模型,主要用于图像处理和模式识别任务。其核心原理是使用卷积层、池化层和全连接层来提取特征和进行分类。以下是CNN中常用的数学原理:

       卷积层: 卷积层通过滤波器(也称为卷积核)来提取图像或信号的特征。卷积操作通过将滤波器与输入图像或信号的局部区域进行元素相乘,并求和得到输出特征图。

       池化层: 池化层用于减小特征图的尺寸,并降低计算复杂度。常见的池化操作有最大池化和平均池化。 

       全连接层: 全连接层将池化层输出的特征图映射到具体的分类结果,常用于分类任务。

2. 调制信号识别

        调制信号识别任务是将接收到的信号进行分类,确定其调制方式。通常,调制信号可以表示为复数形式:

其中,$A$为信号的幅度,$f_c$为信号的载频频率,$\phi(t)$为信号的相位。 

3.实现过程

1. 数据预处理

        首先,需要准备用于训练和测试的调制信号数据集。数据预处理包括信号采样、归一化、分割成时域序列,并将其转换为CNN网络的输入格式。

2. 搭建CNN网络

        构建卷积神经网络模型,可以根据任务的复杂性和需求选择合适的网络结构。一般来说,包含若干卷积层、池化层、全连接层和输出层。

3. 训练CNN模型

       使用准备好的调制信号数据集,对CNN模型进行训练。训练过程中需要定义损失函数(通常使用交叉熵损失函数)和优化算法(如随机梯度下降),通过反向传播算法不断更新模型的参数,使其逐渐收敛到最优状态。

4. 测试和验证

       训练完成后,使用测试集对模型进行验证和评估。计算准确率、精确度、召回率等指标来评估模型的性能。

5. 调制信号识别

        最终,将训练好的CNN模型用于调制信号的识别。通过将接收到的信号输入CNN模型,得到分类结果,确定信号的调制方式。

5.算法完整程序工程

OOOOO

OOO

O

相关文章:

基于CNN卷积神经网络的调制信号识别算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 1. 卷积神经网络(CNN) 2. 调制信号识别 3.实现过程 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 MATLAB2022A 3.部分核心程序 % 构建调制类型…...

正则,JS:this,同步异步,原型链笔记整理

一 正则表达式 正则表达式(regular expression)是一种表达文本模式(即字符串结构)的方法,有点像字符串的模板,常常用来按照“给定模式”匹配文本 正则表达式可以用于以下常见操作: 匹配&…...

【NOIP】小鱼的数字游戏题解

author:&Carlton tag:递归,栈 topic:【NOIP】小鱼的数字游戏题解 language:C website:洛谷 date:2023年7月29日 目录 我的题解思路 优化 别人的优秀思路: 我的题解思路 题…...

算法的时间复杂度、空间复杂度如何比较?

目录 一、时间复杂度BigO 大O的渐进表示法: 例题一: 例题2: 例题3:冒泡排序的时间复杂度 例题4:二分查找的时间复杂度 书写对数的讲究: 例题5: 实例6: 利用时间复杂度解决编…...

We are the Lights 2023牛客暑期多校训练营4-L

登录—专业IT笔试面试备考平台_牛客网 题目大意&#xff1a;有n*m盏灯&#xff0c;q次操作&#xff0c;每次可以将一整行或一整列的等打开或关闭 1<n,m<1e6;1<q<1e6 思路&#xff1a;对于同一行或者同一列来说&#xff0c;只要最后一次操作时开或者关&#xff0…...

ant-design-vue中table组件使用customRender渲染v-html

ant-design-vue遇到table中列表数据需要高亮渲染 1、customRender可以使用&#xff0c;但是使用v-html发现不生效还报错 const columns [title: name,dataIndex: name,customRender: (val, row) > {return <span v-html{val}></span>} ]2、customeRender函数…...

若依框架实现后端防止用户重复点击

若依框架实现后端防止用户重复点击 基于自定义注解、切面、Redis实现 1. 添加自定义注解&#xff1a; 代码放置位置&#xff1a;com/ruoyi/common/annotation/RepeatClick.java time: 时间默认0; unit&#xff1a;单位默认 秒; key: 默认空字符串 package com.ruoyi.fra…...

PCA对手写数字数据集的降维

手写数字的数据集结构为(42000, 784),用KNN跑一次半小时,得到准确率在96.6%上下,用随机森林跑一次12秒,准确率在93.8%,虽然KNN效果好,但由于数据量太大,KNN计算太缓慢,所以我们不得不选用随机森林。我们使用了各种技术对手写数据集进行特征选择,最后使用嵌入 法Select…...

Python入门【变量的作用域(全局变量和局部变量)、参数的传递、浅拷贝和深拷贝、参数的几种类型 】(十一)

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是爱敲代码的小王&#xff0c;CSDN博客博主,Python小白 &#x1f4d5;系列专栏&#xff1a;python入门到实战、Python爬虫开发、Python办公自动化、Python数据分析、Python前后端开发 &#x1f4e7;如果文章知识点有错误…...

下级平台级联安防视频汇聚融合EasyCVR平台,层级显示不正确是什么原因?

视频汇聚平台安防监控EasyCVR可拓展性强、视频能力灵活、部署轻快&#xff0c;可支持的主流标准协议有GB28181、RTSP/Onvif、RTMP等&#xff0c;以及厂家私有协议与SDK接入&#xff0c;包括海康Ehome、海大宇等设备的SDK等&#xff0c;能对外分发RTSP、RTMP、FLV、HLS、WebRTC等…...

vue : 无法加载文件 C:\Users\jianfei\AppData\Roaming\npm\vue.ps1,因为在此系统上禁止运行脚本。...

背景 在新电脑上配置vue环境 PS E:\CODE_PROJ\myvue\vue23\P61_使用脚手架\vue_test> npm install -g vue/cli npm WARN deprecated source-map-url0.4.1: See https://github.com/lydell/source-map-url#deprecated npm WARN deprecated urix0.1.0: Please see https://git…...

godot引擎c++源码深度解析系列二

记录每次研究源码的突破&#xff0c;今天已经将打字练习的功能完成了一个基本模型&#xff0c;先来看下运行效果。 godot源码增加打字练习的demo 这个里面需要研究以下c的控件页面的开发和熟悉&#xff0c;毕竟好久没有使用c了&#xff0c;先来看以下代码吧。 //第一排 显示文本…...

专才or 通才

前言 不知道大家有没有这样的感觉&#xff0c;现在的工作专业化程度越来越高&#xff0c;而且是细分方向越来越小。IT领域分到你是计算里面的数据库或者了流式计算引擎&#xff0c;或者是协议存储还是KV存储引擎。 专业化的优势 专业化的程度带来了一个好处就是你在这个领域…...

【小白必看】Python爬虫实战之批量下载女神图片并保存到本地

文章目录 前言运行结果部分图片1. 引入所需库2. 发送请求获取网页内容3. 解析网页内容并提取图片地址和名称4. 下载并保存图片完整代码关键代码讲解 结束语 前言 爬取网络上的图片是一种常见的需求&#xff0c;它可以帮助我们批量下载大量图片并进行后续处理。本文将介绍如何使…...

道本科技||全面建立国有企业合规管理体系

为全面深化国有企业法治建设&#xff0c;不断加强合规管理&#xff0c;防控合规风险&#xff0c;保障企业稳健发展&#xff0c;近日&#xff0c;市国资委印发《常州市市属国有企业合规管理办法&#xff08;试行&#xff09;》&#xff08;以下简称《办法》&#xff09;&#xf…...

CentOS 8上安装和配置Redis

在本篇博客中&#xff0c;我们将演示如何在CentOS 8上安装和配置Redis。我们将首先安装Redis&#xff0c;然后配置Redis以设置密码并允许公开访问。 步骤 1&#xff1a;安装Redis 首先&#xff0c;更新软件包列表&#xff1a; sudo yum update安装Redis&#xff1a; sudo yum …...

西北乱跑娃 -- CSS动态旋转果冻效果

<!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title>旋转果冻</title> <style> #myDIV {margin: 250px;width: 250px;height: 250px;background: orange;position: relative;font-size: 20px;animation: anima…...

解决安装office出现1402错误和注册表编辑器无法设置安全性错误

写在前面 可能是由于之前的office没有卸载干净&#xff0c;看了很多文章&#xff0c;也有的说是使用了Windows Installer Clean Up卸载office的缘故&#xff0c;最后导致的结果是出现了再次安装office时出现了1402错误&#xff0c;而在解决1402错误的过程中&#xff0c;修改所…...

Jmeter接口自动化生成测试报告html格式

jmeter自带执行结果查看的插件&#xff0c;但是需要在jmeter工具中才能查看&#xff0c;如果要向领导提交测试结果&#xff0c;不够方便直观。 笔者刚做了这方面的尝试&#xff0c;总结出来分享给大家。 这里需要用到ant来执行测试用例并生成HTML格式测试报告。 一、ant下载安…...

移动IP的原理

目的 使得移动主机在各网络之间漫游时&#xff0c;仍然能保持其原来的IP地址不变 工作步骤 代理发现与注册 主机A&#xff1a;主机A移动到外地网络后&#xff0c;通过“代理发现协议”&#xff0c;与外地代理建立联系&#xff0c;并从外地代理获得一个转交地址&#xff0c;…...

R语言AI模型部署方案:精准离线运行详解

R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...

day52 ResNet18 CBAM

在深度学习的旅程中&#xff0c;我们不断探索如何提升模型的性能。今天&#xff0c;我将分享我在 ResNet18 模型中插入 CBAM&#xff08;Convolutional Block Attention Module&#xff09;模块&#xff0c;并采用分阶段微调策略的实践过程。通过这个过程&#xff0c;我不仅提升…...

macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用

文章目录 问题现象问题原因解决办法 问题现象 macOS启动台&#xff08;Launchpad&#xff09;多出来了&#xff1a;Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显&#xff0c;都是Google家的办公全家桶。这些应用并不是通过独立安装的…...

OkHttp 中实现断点续传 demo

在 OkHttp 中实现断点续传主要通过以下步骤完成&#xff0c;核心是利用 HTTP 协议的 Range 请求头指定下载范围&#xff1a; 实现原理 Range 请求头&#xff1a;向服务器请求文件的特定字节范围&#xff08;如 Range: bytes1024-&#xff09; 本地文件记录&#xff1a;保存已…...

成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战

在现代战争中&#xff0c;电磁频谱已成为继陆、海、空、天之后的 “第五维战场”&#xff0c;雷达作为电磁频谱领域的关键装备&#xff0c;其干扰与抗干扰能力的较量&#xff0c;直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器&#xff0c;凭借数字射…...

[Java恶补day16] 238.除自身以外数组的乘积

给你一个整数数组 nums&#xff0c;返回 数组 answer &#xff0c;其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法&#xff0c;且在 O(n) 时间复杂度…...

pikachu靶场通关笔记22-1 SQL注入05-1-insert注入(报错法)

目录 一、SQL注入 二、insert注入 三、报错型注入 四、updatexml函数 五、源码审计 六、insert渗透实战 1、渗透准备 2、获取数据库名database 3、获取表名table 4、获取列名column 5、获取字段 本系列为通过《pikachu靶场通关笔记》的SQL注入关卡(共10关&#xff0…...

是否存在路径(FIFOBB算法)

题目描述 一个具有 n 个顶点e条边的无向图&#xff0c;该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序&#xff0c;确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数&#xff0c;分别表示n 和 e 的值&#xff08;1…...

基于matlab策略迭代和值迭代法的动态规划

经典的基于策略迭代和值迭代法的动态规划matlab代码&#xff0c;实现机器人的最优运输 Dynamic-Programming-master/Environment.pdf , 104724 Dynamic-Programming-master/README.md , 506 Dynamic-Programming-master/generalizedPolicyIteration.m , 1970 Dynamic-Programm…...

第7篇:中间件全链路监控与 SQL 性能分析实践

7.1 章节导读 在构建数据库中间件的过程中&#xff0c;可观测性 和 性能分析 是保障系统稳定性与可维护性的核心能力。 特别是在复杂分布式场景中&#xff0c;必须做到&#xff1a; &#x1f50d; 追踪每一条 SQL 的生命周期&#xff08;从入口到数据库执行&#xff09;&#…...