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); % 如果目录不存在,则创建endend
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*kfor i = 1:mrng 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);<