以下为Matlab代码实现:

% 频率选择性信道中单载波系统使用BPSK调制解调的最大似然检测的基带仿真

% 发送方一次性发送N个码元
N = 100;

% 多径条数
L = 2;

% 信道冲激响应
h = [1 0.5];

% 信噪比
SNR = [0:7];

% 误码率
BER = zeros(size(SNR));

for i = 1:length(SNR)
    % 生成随机发送比特
    s = randi([0 1], 1, N);

    % BPSK调制
    x = 2*s - 1;

    % 发送信号经过信道
    y = zeros(1, N+length(h)-1);
    for j = 1:length(h)
        y(j:N+j-1) = y(j:N+j-1) + h(j)*x;
    end

    % 加入高斯白噪声
    n = sqrt(0.5)*randn(1, N+length(h)-1);
    y = y + 10^(-SNR(i)/20)*n;

    % 最大似然检测
    s_hat = zeros(1, N);
    for j = 1:N
        y_tmp = y(j:j+length(h)-1);
        s_hat(j) = (y_tmp*h') > 0;
    end

    % 计算误码率
    BER(i) = sum(s ~= s_hat) / N;
end

% 绘制误码率曲线
semilogy(SNR, BER, 'o-');
xlabel('SNR (dB)');
ylabel('BER');
grid on;

注意,这里使用了随机发送比特,因此每次运行结果可能不同


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

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