【信号处理】基于联合图像表示的深度学习卷积神经网络

Combined Signal Representations for Modulation Classification Using Deep Learning: Ambiguity Function, Constellation Diagram, and Eye Diagram

在这里插入图片描述

信号表示

在这里插入图片描述

Ambiguity Function(AF)

模糊函数描述了信号的两个维度(dimensions):延迟(delay)和多普勒(Doppler)。

clear;
clc;

snr = 15;
modulation = [8, 16, 32];
ml = dictionary(15, "test", 35, "train");  % 检查是否已正确定义
base_path = sprintf('C:\\data\\AF%d', snr);  % 正确的路径格式
disp(base_path);
mkdir(sprintf('AF%d', snr));
cd(sprintf('AF%d', snr));

for operation = [15, 35]
    for p = 1:length(modulation)
        mod_dir = sprintf('%s/%d', ml(operation), modulation(p));
        if ~exist(mod_dir, 'dir')
            mkdir(mod_dir);  % 如果目录不存在,则创建
        end
    end    
end

% 滤波器和采样参数
sps = 1;  % 每个符号的采样数(过采样因子)
fs = 20;  % 采样率设置为20 Hz
prf = 1;  % 脉冲重复频率设置为1 Hz
filtlen = 20;  % 滤波器长度,单位:符号
rolloff = 1;  % 滤波器滚降因子
rrcFilter = rcosdesign(rolloff, filtlen, sps);  % 设计升余弦 FIR 脉冲整形滤波器

% 主模拟循环
for m = [15, 35]
    for j = 1:length(modulation)
        M = modulation(j);
        k = log2(M);  % 每个符号的比特数
        numBits = 2 * k;  % 对于 QAM,这个值调整为 2*k
        for i = 1:m
            rng shuffle;  % 使用默认的随机数生成器
            dataIn = randi([0 M-1], numBits, 1);  % 生成随机数据
            disp(i);

            % 使用 QAM 进行调制
            dataMod = qammod(dataIn, M);  % 使用 qammod 进行 QAM 调制

            % 滤波并加入噪声
            txFiltSignal = upfirdn(dataMod, rrcFilter, sps, 1);
            rxSignal = awgn(txFiltSignal, snr, 'measured');
            
            % 计算模糊函数
            x = rxSignal;  % 正确使用 rxSignal
            [afmag, delay, doppler] = ambgfun(x, fs, prf);<

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

05 SQL炼金术:深入探索与实战优化

文章目录 SQL炼金术&#xff1a;深入探索与实战优化一、SQL解析与执行计划1.1 获取执行计划1.2 解读执行计划 二、统计信息与执行上下文2.1 收集统计信息2.2 执行上下文 三、SQL优化工具与实战3.1 SQL Profile3.2 Hint3.3 Plan Baselines3.4 实战优化示例 SQL炼金术&#xff1a…

MySQL_第13章_视图

1. 常见的数据库对象 2. 视图概述 2.1 为什么使用视图&#xff1f; 视图一方面可以使用表的一部分而不是所有的表&#xff0c;另一方面也可以针对不同的用户制定不同的查询视图。 2.2 视图的理解 视图是一种虚拟表&#xff0c;本身是不具有数据的&#xff0c;占用很少的内存…

【代码随想录day24】【C++复健】93.复原IP地址; 78.子集 ;90.子集II

今天写代码的时候整体状态其实就不太好&#xff0c;整个人晕晕的&#xff0c;好多时候写出来的代码也是多少带点愚蠢。 93.复原IP地址 看卡哥说“大家做完 分割回文串 之后&#xff0c;本题就容易很多了”还以为是秒杀题呢&#xff0c;结果直接被卡住。怎么说呢&#xff0c;…

Vue:条件渲染 列表渲染

Vue&#xff1a;条件渲染 & 列表渲染 条件渲染v-showv-if 列表渲染v-for数组对象 条件渲染 Vue允许依据一定的条件&#xff0c;通过表达式的布尔值&#xff0c;来决定是否渲染某些元素&#xff0c;其依赖于v-show和v-if两条指令。 v-show v-show可以依据表达式的布尔值&…

计算机的错误计算(一百四十八)

摘要 本节探讨 MATLAB 中 附近数的正割函数与 附近数的余割函数的计算精度问题。 例1. 已知 计算 直接贴图吧&#xff1a; 另外&#xff0c;16位的正确值分别为 0.4105556037464873e9、0.3670813182326778e13、-0.2549029285657875e8 与 -0.1248777628817462e12&am…

input file检验成功之后才可以点击

input file检验成功之后才可以点击 需求 在上传发票前需要先填写发票号&#xff0c;然后点击选择文件直接完成上传功能 实现思路 在没有输入发票号之前&#xff0c;file按钮不可用不能点击&#xff0c;输入之后&#xff0c;按钮可用&#xff0c;点击之后选择文件&#xff…

理解鸿蒙app 开发中的 context

是什么 Context是应用中对象的上下文&#xff0c;其提供了应用的一些基础信息&#xff0c;例如resourceManager&#xff08;资源管理&#xff09;、applicationInfo&#xff08;当前应用信息&#xff09;、dir&#xff08;应用文件路径&#xff09;、area&#xff08;文件分区…

算法每日练 -- 双指针篇(持续更新中)

介绍&#xff1a; 常见的双指针有两种形式&#xff0c;一种是对撞指针&#xff08;左右指针&#xff09;&#xff0c;一种是快慢指针&#xff08;前后指针&#xff09;。需要注意这里的双指针不是 int* 之类的类型指针&#xff0c;而是使用数组下标模拟地址来进行遍历的方式。 …

Python学习从0到1 day26 第三阶段 Spark ①

要学会 剥落旧痂 然后 循此新生 —— 24.11.8 一、Spark是什么 定义&#xff1a; Apache Spark 是用于大规模数据处理的统一分析引擎 简单来说&#xff0c;Spark是一款分布式的计算框架&#xff0c;用于调度成百上千的服务器集群&#xff0c;计算TB、PB乃至EB级别的海量数据…

jenkins使用slave节点进行node打包报错问题处理

jenkins使用slave打包报错 Also: hudson.remoting.Channel$CallSiteStackTrace: Remote call to 21.136 解决方法&#xff1a; 重启从节点 选择断开连接再重新连

python登录功能实现

一.用python实现基本的登录功能 #-----------------1.基本登录功能------------------- nameinput("qq账号&#xff1a;") if name"jc":passwdinput("密码&#xff1a;")if passwd"123456":print("登录成功")else:print(&q…

三菱MR-J4伺服绝对位置检测系统

发生[AL.25 绝对位置丢失]或[AL.E3 绝对位置计数器警告]时&#xff0c;必须再次进行原点设定。否则可能会因此发生预料之外的动作。 概要 常规运行时&#xff0c;编码器由检测1转内位置的编码器和检测转数的旋转累计计数器构成。 绝对位置检测系统与伺服系统控制器电源…

mac 中python 安装mysqlclient 出现 ld: library ‘ssl‘ not found错误

1. 出现报错 2. 获取openssl位置 brew info openssl 3. 配置环境变量&#xff08;我的是在~/.bash.profile&#xff09; export LDFLAGS"-L/opt/homebrew/Cellar/openssl3/3.4.0/lib" export CPPFLAGS"-I/opt/homebrew/Cellar/openssl3/…

OceanBase详解及如何通过MySQL的lib库进行连接

OceanBase详解及如何通过MySQL的lib库进行连接 一、引言二、OceanBase概述1. 起源与发展2. 核心技术特点3. 应用场景三、OceanBase架构解析1. 系统架构2. 存储引擎3. 分布式架构四、如何使用MySQL的lib库连接OceanBase1. 前提条件2. 安装MySQL Connector/C3. 编写连接代码4. 编…

aspose如何获取PPT放映页“切换”的“持续时间”值

aspose如何获取PPT放映页“切换”的“持续时间”值 项目场景问题描述问题1&#xff1a;从官方文档和资料查阅发现并没有对切换的持续时间进行处理的方法问题2&#xff1a;aspose的依赖包中&#xff0c;所有的关键对象都进行了混淆处理 解决方案1、找到ppt切换的持续时间对应的混…

SpringBoot开发——SpringBoot3.3 中实现多端口监听

文章目录 1、项目环境与依赖配置2、配置多端口监听3、编写配置类实现多端口监听4、为每个端口创建独立的配置类4.1 8081 端口配置类4.2 8082 端口配置类 5、控制器类定义5.1 8080 端口的控制器&#xff08;保持原有配置&#xff09;5.2 8081 端口的控制器5.3 8082 端口的控制器…

大数据湖项目建设方案(100页WORD)

文档介绍&#xff1a; 随着信息技术的飞速发展&#xff0c;数据量呈现出爆炸性增长的趋势。企业、政府机构及科研单位在运营过程中积累了大量的数据资源&#xff0c;这些数据中蕴含着巨大的价值&#xff0c;但如何高效地存储、处理和分析这些数据&#xff0c;成为了一个亟待解…

【SpringBoot】SpringCloud一些常用依赖

SpringChoudAlibaba springcloud版本对应关系 可以按照hm这样写 ----以下是我自己使用过的&#xff0c;比较乱 parent <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><versi…

Webserver(5.3)线程池实现

目录 线程池locker.hthreadpool.h 线程池 相比于动态地创建子线程&#xff0c;选择一个已经存在的子线程的代价显然要小得多。至于主线程选择哪个子线程来为新任务服务&#xff0c;有多种方式&#xff1a; 主线程使用某种算法来主动选择子线程。最简单、最常用的算法是随机算…

解决:使用EasyExcel导入Excel模板时出现数据导入不进去的问题

解决&#xff1a;使用EasyExcel导入Excel模板时出现数据导入不进去的问题 在Java中&#xff0c;当我们用EasyExcel导入Excel时&#xff0c;可能会出现数据导入不进去的问题。例如&#xff1a; 这种异常等。 问题原因1&#xff1a;这个1代表从第几行开始&#xff0c;你的exce…