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仿真图如下:
可见此方式可以提供一些参考。
3:更改采样率倍数与理想误码率不一致的思考
symbol_rate = 1000;%符号率
sps =8;%每个符号的采样点数
fc =2000; %载波频率
fs =8000; %采样频率
8倍采样
sps =16;%每个符号的采样点数
fc =2000; %载波频率
fs =16000; %采样频率
N=100000;
16倍采样
曲线变化同步不是因为采样倍数的影响,是因为采用滤波器估计法粗略估计最佳采样点,所以根据采样倍数的不同,误差点也会不同,因为采样速率为16倍时,偏移1,2位影响不大,但是采样倍数较小,最佳采样点偏移一位会有较大的影响。