1:信噪比SNR、EsN0、EbN0 转化关系

 重点公式:SNR = EbN0 + 10log10(nBits*coderate) - 10log10(0.5or1 * upfactor);

note:转化关系出错会导致与理想误码率之间相差3db

2:验证绘制误码率曲线与理想误码率一致性

     方式一:matlab中有通过bertool 工具绘制相应常规的调制方式的误码率曲线导入matlab工作区,与自己绘制的误码率曲线进行对比。

    方式二:bertool工具中没有有些不常见的调制方式如apsk。其并不在之中,这时如何绘制理想误码率曲线? 直接通过相应的符号映射,送入信道例如最常见的高斯白噪声。然后直接映射解码。绘制出理想误码率曲线。

例如如下的QPSK调制方式。

[I_data Q_data] = constellationmapbpsk( s_IN,N );
Modulation_data=I_data+j*Q_data;
scatterplot(Modulation_data(1:end));

%%%%%%%%%%%%%%%%%  信道    %%%%%%%%%%%%%%%%%%%
%设置信噪比,单位dB
ebn0 =[-5:8];
snr = ebn0+10*log10(2);

for i =1:length(snr)

%%%线性高斯白噪声信道
rcos_msg_source_carrier_addnoise = awgn(Modulation_data,snr(i),'measured');

[ CurSymbolBits_dem] = QPSK_AWGN_dem( rcos_msg_source_carrier_addnoise(1:end) );

%%%%%%%%%%%%%%%%%   信宿    %%%%%%%%%%%%%%%%%%%%
%%%误码率性能比对
[err_number(i),bit_err_ratio(i)]=biterr(input_bit(1:length(CurSymbolBits_dem)),CurSymbolBits_dem);

matlab仿真图如下:

optisystem误码率曲线怎么画_知乎

 可见此方式可以提供一些参考。

3:更改采样率倍数与理想误码率不一致的思考

symbol_rate = 1000;%符号率
sps =8;%每个符号的采样点数
fc =2000; %载波频率
fs =8000; %采样频率

optisystem误码率曲线怎么画_知乎_02

8倍采样

sps =16;%每个符号的采样点数
fc =2000; %载波频率
fs =16000; %采样频率
N=100000;

optisystem误码率曲线怎么画_matlab_03

16倍采样

 曲线变化同步不是因为采样倍数的影响,是因为采用滤波器估计法粗略估计最佳采样点,所以根据采样倍数的不同,误差点也会不同,因为采样速率为16倍时,偏移1,2位影响不大,但是采样倍数较小,最佳采样点偏移一位会有较大的影响。