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

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

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

http://www.kler.cn/a/384667.html

相关文章:

  • 深度学习:自注意力机制(Self-attention)详解
  • git的使用、router和route的区别以及v-show和v-if的差别
  • 使用文心快码生成口算题,妈妈再也不用担心我的学习了
  • leetcode字符串(二)-重复的子字符串
  • Docker基本概念汇总(更全面了解Docker)
  • ChatGPT 新体验:AI 搜索功能与订阅支付指南
  • HarmonyOS第一课——DevEco Studio的使用
  • 使用Spring Boot搭建简单的web服务
  • Spring Boot代理问题
  • SpringBoot(二)
  • Redisson分布式锁全解析
  • 技术总结(二十二)
  • 【开源免费】基于SpringBoot+Vue.JS周边产品销售网站(JAVA毕业设计)
  • 使用 `Celery` 配合 `RabbitMQ` 作为消息代理,实现异步任务的调度、重试、定时任务以及错误监控等功能
  • [ vulnhub靶机通关篇 ] 渗透测试综合靶场 DarkHole:1 通关详解 (附靶机搭建教程)
  • Android Studio打包时不显示“Generate Signed APK”提示信息
  • IPhone16评论自然语言处理
  • 服务器技术(一)--Linux基础入门
  • 2025年PMI-ACP敏捷项目管理认证考试时间及费用
  • angular实现list列表和翻页效果
  • ESLint 使用教程(一):从零配置 ESLint
  • MYSQL 真实高并发下的死锁
  • Swift 开发教程系列 - 第5章:集合类型
  • Docker 常用命令详解(详细版)
  • Flutter 中的那些设计模式的写法(持续更新)
  • VSCode 1.82之后的vscode server离线安装