Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
|
![]() |
#1 |
高级会员
注册日期: 2019-11-21
帖子: 3,006
声望力: 66 ![]() |
![]()
嗨,我在matlab中进行以下操作
values = [0;1;0;0;1;0;1;0]; % can contain only 0s and 1s h = modem.oqpskmod; y = modulate(h, values); g = modem.oqpskdemod(h); z = demodulate(g,y); BER = sum(logical(values(:)-z(:)))/numel(values); % thanks to gnovice! 在计算BER之前,您是否认为我必须仅将数组z转换为1s和0s的数组...例如,我的z可能由3s和0s组成,那么我是否必须将所有大于0的数字转换为1和所有0不变。这样一来,我最终获得了BER的正确比较? 回答: 这取决于您要如何比较输入和输出。 我为您提供的用于计算BER 的代码会将输入和输出之间的任何差异都视为错误。因此,输出的3值和输入的1值被视为不同 。 如果您想以其他方式计算BER,则可以使用以下两个选项。这些每个假设values仅包含零和一:
... g = modem.oqpskdemod(h,'OutputType','bit'); z = demodulate(g,y); BER = sum(values(:)-z(:))/numel(values); 更多&回答... |
![]() |
![]() |