0
点赞
收藏
分享

微信扫一扫

Eclipse 基金会发布基于以太坊的 Solana 虚拟机链主网

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

相关推荐

0 条评论