Matlab通信工具箱comm.ErrorRate思考

原函数Mathworks介绍地址:Compute bit or symbol error rate of input data - MATLAB- MathWorks 中国

其实函数本质很好懂,给定待比较的两个向量,计算差异值,给出ber或ser信息。

不过Matlab的这个函数在小细节处需要留意:

这个函数主要是比较原始数字信号和接受数字信号的误bit率或误码率,支持传入bit流和symbol流

如果在BPSK 调制下比较:发送了[0 1 1 0] ,经过调制和信道传输后收到了[0 0 1 0]

函数会识别到 ber是0.25,一共发生1 bit错误,总共处理了4个bit;

返回值是向量[0.25, 1, 4];这没有问题,很好理解,因为此时ber数值上就等于ser。

如果在QPSK 格雷码调制下比较:发送了bit流[0 1 1 0],symbol符号意义即([1 2]),经过调制和信道传输后收到了[0 0 1 0] symbol符号意义即([0 2])

如果函数的输入是bit流,则会识别到ber是0.25,发生1bit错误,总共处理4bit(4个样本);

但如果给函数输入的不是bit流,而是让他比较[1 2] ,[0 2], 也能识别出发生1bit错误, 但由于处理样本只有2(symbol),所以返回值会变成[0.5, 1, 2],本质是就是返回了误码率ser

所以如果输入不是bit流, 使用此函数的结果并不是ber而是ser,需要手动更新返回值,否则可能会影响ber仿真作图效果。