项目资料 / OFDM 毕业设计

调制可视化源码

我的毕业设计:看看衰落信道怎样影响 OFDM

这篇是我整理的项目笔记,也可以先看看项目介绍。

先把星座图画出来

这段是毕设里 star3.m 的代码,分别画 QPSK 和 16QAM 星座图,让每个符号的同相、正交分量直接显示在坐标上。

QPSK 用四个复数点并除以平方根 2;16QAM 从四个电平组合出 16 个点,再做平均功率归一化。两张图最后分别保存成 PNG,下面保留了当时的文件名。

这次整理只翻了源码,完整的 OFDM 信道仿真还没重新跑过。

源码摘录

matlab

clc;
clear;
close all;

%% QPSK调制星座图
qpsk_symbols = [1+1j, -1+1j, -1-1j, 1-1j] / sqrt(2);
qpsk_labels = {'00','01','11','10'};

figure;
plot(real(qpsk_symbols), imag(qpsk_symbols), 'bo', ...
    'MarkerSize', 10, 'LineWidth', 2);
grid on;
axis equal;
xlim([-1.5 1.5]);
ylim([-1.5 1.5]);
xlabel('同相分量 I');
ylabel('正交分量 Q');
title('QPSK调制星座图');
set(gca, 'FontSize', 12);

for k = 1:length(qpsk_symbols)
    text(real(qpsk_symbols(k))+0.05, imag(qpsk_symbols(k))+0.05, ...
        qpsk_labels{k}, 'FontSize', 11);
end

saveas(gcf, 'Fig3_2_QPSK_Constellation.png');

%% 16QAM调制星座图
levels = [-3 -1 1 3];
[I, Q] = meshgrid(levels, levels);
qam16_symbols = I(:) + 1j * Q(:);

% 平均功率归一化
qam16_symbols = qam16_symbols / sqrt(mean(abs(qam16_symbols).^2));

figure;
plot(real(qam16_symbols), imag(qam16_symbols), 'rs', ...
    'MarkerSize', 8, 'LineWidth', 2);
grid on;
axis equal;
xlim([-1.5 1.5]);
ylim([-1.5 1.5]);
xlabel('同相分量 I');
ylabel('正交分量 Q');
title('16QAM调制星座图');
set(gca, 'FontSize', 12);

saveas(gcf, 'Fig3_3_16QAM_Constellation.png');
← 返回 OFDM 毕业设计回到顶部 ↑