正交相移编码模拟AWGN和误码率

253(30天)
嘿,
我有一个matlab代码的正交相移编码模拟基带AWGN噪音,我在每个信噪比计算误码率值并绘制
理论误码率。
当我在dB生成SNR值从1到20的代码只计算模拟误码率值从0到10,为什么会这样?
% QPSK调制和误码率在AWGN信道估计
clc;清晰的所有;关闭所有;
N = 1 e6;%网络传输的比特数
SNRdB = 0:1:20;%对模拟信噪比
SNRlin = 10 ^ (SNRdB / 10);
1 = 0(1、长度(SNRlin));%模拟系统
SER = 0(1、长度(SNRlin));%模拟SER
b1 =兰德(1,N) > 0.5;
b2 =兰德(1,N) > 0.5;
% QPSK符号映射
我= (2 * b1) - 1;
Q = (2 * b2) - 1;
S = I + 1 j *问;
N0 = 1. / SNRlin;%方差
k = 1:长度(SNRdB)
噪音=√N0 (k) / 2) * (randn (1, N) + 1 j * randn (1, N));% AWGN噪音
sig_Rx = S +噪声;%收到信号
%的误码率计算
sig_I =实际(sig_Rx);% I分量
sig_Q =图像放大(sig_Rx);% Q分量
bld_I = sig_I > 0;%我的决定
bld_Q = sig_Q > 0;% Q决定
b1_error = (bld_I ~ = b1);%同相的位错误
b2_error = (bld_Q ~ = b2);%正交位错误
Error_bit =和(b1_error) +和(b2_error);%总有些误差
BER (k) =总和(Error_bit) / (2 * N);%模拟系统
%的SER计算
error_symbol =或(b1_error b2_error);%如果一点一点在我或问错误比错误
SER (k) = (error_symbol) / N;
结束
BER_theo = 2 * qfunc (sqrt (2 * SNRlin));%理论误码率
SER_theo = 2 * qfunc (sqrt (2 * SNRlin)) - (qfunc (sqrt (2 * SNRlin))) ^ 2;%理论SER
图(1);
semilogy (SNRdB BER_theo,的r -)
持有
semilogy (SNRdB误码率,“k *’)
包含(“信噪比(dB)”)
ylabel (的误比特率);
传奇(“理论”,“模拟”);
标题([QPSK调制的比特错误概率的]);
网格;
持有;
图(2);
semilogy (SNRdB SER_theo,的r -)
持有
semilogy (SNRdB,爵士,“k *’)
包含(“信噪比(dB)”)
ylabel (“符号错误率”);
传奇(“理论”,“模拟”);
标题([“QPSK调制符号错误的概率”]);
网格;
持有;
这是我的输出图:
2的评论
杰瑞·马龙
杰瑞·马龙 2022年10月20日
这是问题:
BER_theo = 2 * qfunc (sqrt (2 * SNRlin)); %理论误码率
这两个系数不应在情况下的误码率。应该是:
BER_theo = qfunc (sqrt (2 * SNRlin)); %理论误码率

登录置评。

接受的答案

Ashutosh辛格Baghel
Ashutosh辛格Baghel 2021年12月20日
编辑:Ashutosh辛格Baghel 2021年12月20日
嗨,丹尼尔,
我理解你想阴谋的误码率与信噪比半对数的规模。如果你看到的价值“方方面面”,它有一个“0”值> 10“信噪比”。只有数据点与非零项标注因为对数刻度没有合适的值为零。例如,
x =一24;
y = 11 [2 0 0 0 2 6 0 22 25 27 0 25 20 14 9 4 1 0 0 0 0 0 0];
图;
semilogy (x, y,“r *……”);
图;
semilogy (x,马克斯(eps, y));
在第二个图,EPS值显示为2 e-16(当然)。得到一个真正的零,规模必须无限大。
欲了解更多信息,请访问这个链接在Matlab Documnetation” semilogy 的函数。

更多的答案(0)

类别

找到更多的在正交相移编码帮助中心文件交换

s manbetx 845


释放

R2020a

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!