概述
BPSK调制与解调-MATLAB基带仿真
仿真步骤
- 产生一定长度的值为0或1的随机序列 s ( t ) s(t) s(t)。
- 将 s ( t ) s(t) s(t)映射到BPSK星座图上的星座点。
- 产生高斯白噪声,将调制后的信号通过AWGN信道,得到输出信号 r ( t ) r(t) r(t)。
- 利用最小距离判决准则实现检测,统计误比特数。
- 绘制仿真误比特率与理论误比特率曲线,进行对比分析。
BPSK发送端星座图:
BPSK相干解调:
最小距离判决准则:
理论误比特率:
仿真结果:
博主其他相关文章链接:
BPSK系统在瑞利衰落信道下的性能-MATLAB基带仿真
(7,4)汉明码在BPSK系统下的性能-MATLAB基带仿真
MATLAB基带仿真程序:
clc
clear
close all
% BPSK调制与解调 %
% 2019.3.26 %
% K.X.Song %
L = 1000000; % 原始数据长度
data = round(rand(1,L)); % 原始数据
send = (data - 1/2) * 2; % BPSK调制
EbN0_dB = 0:12; % Eb/N0 dB形式
EbN0 = 10.^(EbN0_dB/10); % Eb/N0
Eb = 1; % 每比特能量
N0 = Eb ./ EbN0; % 噪声功率
error = zeros(1,length(EbN0_dB)); % 预置错误个数
ber = zeros(1,length(EbN0_dB)); % 预置仿真误比特率
tber = zeros(1,length(EbN0_dB)); % 预置理论误比特率
for q = 1:length(EbN0_dB)
noise = sqrt(N0(q)/2) * randn(1,L); % 高斯白噪声
receive = send + noise; % 接收信号
detect = zeros(1,L); % 预置检测信号
for w = 1:L
if (receive(w) >= 0)
detect(w) = 1; % 数轴右侧 -> 1
else
detect(w) = -1; % 数轴左侧 -> -1
end
if (detect(w) ~= send(w))
error(q) = error(q) + 1; % 错误个数
end
end
ber(q) = error(q) / L; % 仿真误比特率
tber(q) = erfc(sqrt(EbN0(q)))/2; % 理论误比特率
end
figure
semilogy(EbN0_dB,ber,'o',EbN0_dB,tber,'b'); % 画图
grid on; % 坐标轴开启
axis([0 10 10^-5 10^-1]) % 限制作图范围
xlabel('Eb/N0 (dB)'); % 横坐标
ylabel('BER'); % 纵坐标
legend('BPSK仿真误比特率','BPSK理论误比特率'); % 图例
最后
以上就是快乐音响为你收集整理的BPSK调制与解调-MATLAB基带仿真的全部内容,希望文章能够帮你解决BPSK调制与解调-MATLAB基带仿真所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复