matlab bpsk调制解调代码
时间: 2023-11-03 10:34:25 浏览: 169
以下是一个简单的MATLAB BPSK调制解调代码示例:
% BPSK调制解调示例
% 设置参数
fc = 10e3; % 载波频率
fs = 100e3; % 采样率
T = 1/fs; % 采样时间间隔
SNR = 10; % 信噪比
nbits = 1000; % 位数
% 生成随机二进制序列
bits = randi([0 1], nbits, 1);
% BPSK调制
s = 2*bits-1; % 0变成-1,1保持不变
t = (0:nbits-1)*T;
carrier = cos(2*pi*fc*t);
x = s.*carrier;
% 添加高斯噪声
noise = randn(size(x))*10^(-SNR/20);
y = x+noise;
% BPSK解调
demod = y.*carrier;
filtered = lowpass(demod, fc, fs); % 低通滤波
bits_recovered = (filtered>0); % 大于0为1,否则为0
% 计算误比特率(BER)
ber = sum(bits~=bits_recovered)/nbits;
% 绘图
subplot(311);
plot(t, bits, 'LineWidth', 2);
ylim([-0.5 1.5]);
title('随机二进制序列');
subplot(312);
plot(t, x, 'LineWidth', 2);
ylim([-1.5 1.5]);
title('BPSK调制信号');
subplot(313);
plot(t, y, 'LineWidth', 2);
ylim([-1.5 1.5]);
title('BPSK调制信号加噪声');
xlabel('时间(秒)');
disp(['误比特率(BER)= ' num2str(ber)]);
阅读全文