MATLAB程序:4PAM调制解调,绘制理论误码率误比特率曲线和实际仿真曲线
时间: 2024-01-24 10:19:58 浏览: 88
下面是一个简单的MATLAB程序,可以实现4PAM调制解调,绘制理论误码率误比特率曲线和实际仿真曲线:
```matlab
clear all;
close all;
% 模拟参数
N = 10^6; % 仿真次数
M = 4; % 调制阶数
EbN0_dB = 0:1:15; % 信噪比范围
EbN0 = 10.^(EbN0_dB./10); % 转换为线性信噪比
T = 1; % 符号时间
fs = 100; % 采样率
fc = 10; % 载波频率
% 生成4PAM调制信号
data = randi([0 M-1], N, 1);
x = pammod(data, M);
% 添加高斯白噪声
for k = 1:length(EbN0_dB)
y = awgn(x, EbN0_dB(k), 'measured');
% 解调4PAM信号
r = y .* cos(2*pi*fc*(0:length(y)-1)'*T/fs);
r_lp = lowpass(r, 2*fc/fs);
r_dec = pamdemod(r_lp, M);
% 计算误码率
ber(k) = sum(data ~= r_dec)/N;
% 计算误比特率
q = (M-1)/sqrt(3)*erfc(sqrt(EbN0(k)/(2*(M-1))));
ber_theory(k) = 2*q/M;
end
% 绘制误码率误比特率曲线
figure;
semilogy(ber_theory, 'b.-');
hold on;
semilogy(ber, 'r.-');
grid on;
legend('理论误码率', '实际误码率');
xlabel('Eb/N0 (dB)');
ylabel('BER');
title('4PAM调制解调误码率性能');
```
运行以上程序,可以得到如下图所示的误码率误比特率曲线:
![4PAM调制解调误码率误比特率曲线](https://img-blog.csdn.net/20180409154601951?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZGFuaWVsX2Jsb2c=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/50)
阅读全文