基于Googlenet深度学习网络的信号调制类型识别matlab仿真

举报
简简单单做算法 发表于 2023/10/26 23:34:55 2023/10/26
【摘要】 1.算法运行效果图预览2.算法运行软件版本MATLAB2022a 3.算法理论概述       信号调制类型识别是在无线通信和无线电频谱监测中的一个重要任务。不同信号调制类型具有不同的频谱特征,深度学习方法在信号调制类型识别中取得了显著的成果。 3.1 深度学习与卷积神经网络深度学习是一种机器学习方法,卷积神经网络(CNN)是深度学习的重要分支。CNN通过多层卷积和池化层来学习输入数据的特征...

1.算法运行效果图预览

2.算法运行软件版本

MATLAB2022a

 

3.算法理论概述

       信号调制类型识别是在无线通信和无线电频谱监测中的一个重要任务。不同信号调制类型具有不同的频谱特征,深度学习方法在信号调制类型识别中取得了显著的成果。

 

3.1 深度学习与卷积神经网络

深度学习是一种机器学习方法,卷积神经网络(CNN)是深度学习的重要分支。CNN通过多层卷积和池化层来学习输入数据的特征表示。GoogLeNet是一种深度卷积神经网络结构,其主要创新在于使用了多个并行的卷积层和1x1卷积核来提高网络的效率和准确性。

 

3.2 数据预处理

首先,采集信号数据并对其进行预处理。信号数据通常以复数形式表示,包括实部和虚部。预处理可能包括归一化、去噪等步骤。

 

3.3 GoogLeNet结构

GoogLeNet网络结构使用了Inception模块,每个模块包括不同大小的卷积核和池化层,以捕捉多尺度的特征。每个Inception模块的输出被串联在一起,形成网络的输出。

 

GoogLenet网络亮点

 

1.引入了Inception结构(融合不同尺度的特征信息)

2.使用1x1的卷积核进行降维以及映射处理

3.添加两个辅助分类器帮助训练

4.丢弃全连接层,使用平均池化层(大大减少模型参数)

 

Inception结构

 

 

3.4 分类器

       在网络的顶部,添加一个全连接层作为分类器,将特征映射到各个信号调制类型的概率分布。通常使用softmax函数来获得不同类别的概率。

 

 

4.部分核心程序

% 获取特征学习器和分类器的层名称
Feature_Learner   = net.Layers(142).Name;
Output_Classifier = net.Layers(144).Name;
% 获取类别数量
Number_of_Classes = numel(categories(Training_Dataset.Labels));
% 创建新的特征学习器和分类器层
New_Feature_Learner = fullyConnectedLayer(Number_of_Classes, ...
    'Name', 'Coal Feature Learner', ...
    'WeightLearnRateFactor', 10, ...
    'BiasLearnRateFactor', 10);
 
New_Classifier_Layer = classificationLayer('Name', 'Coal Classifier');
% 构建新的网络架构
Network_Architecture = layerGraph(net);
 
New_Network = replaceLayer(Network_Architecture, Feature_Learner, New_Feature_Learner);
New_Network = replaceLayer(New_Network, Output_Classifier, New_Classifier_Layer);
% 分析新的网络结构
analyzeNetwork(New_Network)
 
% 设置训练选项
maxEpochs = 20;
Minibatch_Size = 8;
Validation_Frequency = floor(numel(Resized_Training_Dataset.Files)/Minibatch_Size);
Training_Options = trainingOptions('sgdm', ...
    'MiniBatchSize', Minibatch_Size, ...
    'MaxEpochs', maxEpochs, ...
    'InitialLearnRate', 1e-3, ...
    'Shuffle', 'every-epoch', ...
    'ValidationData', Resized_Validation_Dataset, ...
    'ValidationFrequency', Validation_Frequency, ...
    'Verbose', false, ...
    'Plots', 'training-progress');
% 训练网络
net = trainNetwork(Resized_Training_Dataset, New_Network, Training_Options);
% 保存训练好的模型
save gnet.mat   
【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。