以下是一个简单的 2DPSK 调制程序,采样点数为 4096。

% 2DPSK 调制
clear all;
clc;

% 参数设置
fs = 1000000; % 采样频率
fc = 100000; % 载波频率
Tb = 1/1000; % 符号周期
N = 4096; % 采样点数
SNR = 10; % 信噪比

% 生成随机比特序列
data = randi([0,1],1,N/2);

% 调制
s = zeros(1,N);
for i = 1:N/2
    if data(i) == 0
        s(2*i-1) = 1; % 0 映射为正弦波
    else
        s(2*i-1) = -1; % 1 映射为负弦波
    end
end

% 生成载波
t = 0:1/fs:(N/2-1)*Tb;
carrier = cos(2*pi*fc*t);

% 2DPSK 调制
x = s.*carrier;

% 添加高斯白噪声
noise = randn(1,N).*sqrt(1/(2*10^(SNR/10))); % 计算噪声方差
r = x + noise;

% 解调
demod = zeros(1,N/2);
for i = 1:N/2
    if r(2*i-1) > 0
        demod(i) = 0;
    else
        demod(i) = 1;
    end
end

% 统计误比特率
BER = sum(abs(demod-data))/N*2;
disp(['误比特率:',num2str(BER)]);

程序首先生成随机比特序列,然后将 0 映射为正弦波,1 映射为负弦波,生成 2DPSK 调制信号。接着生成载波,并将调制信号与载波相乘得到 2DPSK 调制信号。在信号中添加高斯白噪声后,解调信号并统计误比特率。

MATLAB 2DPSK 调制实现:4096 采样点示例

原文地址: https://www.cveoy.top/t/topic/oWII 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录