通信系统中理论与实际BER的Matlab函数实现

 实际:

```

biteer    比特错误数和比特错误率(BER)

symerr    计算符号错误数和符号错误率

```

```

[number,ratio] = biterr(x,y)

[number,ratio] = biterr(x,y,k)

[number,ratio] = biterr(x,y,k,flag)

```

```

[number,ratio] = symerr(x,y)

[number,ratio] = symerr(x,y,flg)

```

理论:

```

通信系统类型                                                    函数

非编码AWGN信道                                          berawgn

编码AWGN信道                                             bercoding

非编码瑞利和Rician衰落信道                         berfading

不完全同步的非编码AWGN信道                       bersync

蒙特卡罗模拟的误比特率和置信区间                berconfint

用半解析技术计算误码率                                semianalytic

```

主要理论情况列举

berawgn

```

ber=berawgn(EbNo,'psk',M,dataenc)

返回在AWGN信道上一致检测到的未编码psk的ber。

对于差分数据编码,dataenc是diff,M必须不大于4,K=log2(M)。

对于非差分数据编码,dataenc是nondiff。

```

```

ber=berawgn(EbNo,'dpsk',M)

返回AWGN信道上未编码dpsk调制的ber。

```

```

ber=berawgn(EbNo,'fsk',M,coherence)

返回AWGN信道上正交未编码fsk调制的ber。

coherence要么是相干解调的“相干”,要么是非相干解调的“非相干”。“非相参”的M不能大于64。

```

```

ber=berawgn(EbNo,'fsk',2,coherence,rho)

返回未编码AWGN信道上二进制非正交fsk的ber,其中rho是复相关系数。

复相关系数的定义以及如何计算非正交BFSK的复相关系数,见带相干检测的非正交2-FSK。

```

```

ber=berawgn(EbNo,'msk',precoding)

返回未编码AWGN信道上相干检测的msk调制的ber。

将预编码设置为“off”将返回常规MSK的结果,而将预编码设置为“on”则返回预编码MSK的结果。

```

```

ber=berawgn(EbNo,'msk',precoding,coherence)

指定检测是相干还是非相干。

```

```

berlb=berawgn(EbNo,'cpfsk',M,modindex,kmin)

返回AWGN信道上未编码cpfsk调制的BER的下限。

modindex是调制指数,一个正实数。

kmin是具有最小距离的路径数;如果此数字未知,则可以假定值为1。

```

```

[BER,SER]=berawgn(EbNo,…)

返回BER和SER。

```

bercoding

```

berub = bercoding(EbNo,'conv',decision,coderate,dspec)

返回在加性高斯白噪声(AWGN)信道上具有相干相移键控(PSK)调制的二进制卷积码的误码率的上界或近似值。若要指定硬判决解码,请将decision设置为“hard”;若要指定软判决解码,请将decision设置为“soft”。卷积码的码速率等于coderate。dspec输入是一种结构,包含有关代码的距离谱的信息.

```

```

berub = bercoding(EbNo,'block','hard',n,k,dmin)

返回具有硬判决解码和相干BPSK或QPSK调制的[n,k]二进制分组码的BER的上界。dmin是代码的最小距离。

```

```

berub = bercoding(EbNo,'block','soft',n,k,dmin)

返回具有软判决解码和相干BPSK或QPSK调制的[n,k]二进制分组码的BER的上界。dmin是代码的最小距离。

```

```

berapprox = bercoding(EbNo,'Hamming','hard',n)

使用硬判决解码和相干BPSK调制返回Hamming码的误码率的近似值。(对于汉明码,如果n已知,则k可以直接从n计算。)

```

```

berub = bercoding(EbNo,'Golay','hard',24)

使用硬判决解码和相干BPSK调制返回Golay码的BER的上界。目前对Golay的支持仅限于n=24。

```

```

berapprox = bercoding(EbNo,'RS','hard',n,k)

使用硬判决解码和相干BPSK调制返回(n,k)Reed-Solomon码的误码率的近似值。

```

```

berapprox = bercoding(...,modulation)

当您指定调制类型时,berapprox=bercoding(…,modulation)返回编码AWGN信道的误码率近似值。

```

berfading

divorder是分集阶数(分集分支的数目),是一个正整数。

```

ber = berfading(EbNo,'pam',M,divorder)

返回具有相干解调的非编码瑞利衰落信道上pam的ber。

```

```

ber = berfading(EbNo,'qam',M,divorder)

返回具有相干解调的非编码瑞利衰落信道上qam的ber。M必须至少是4。

```

```

ber = berfading(EbNo,'psk',M,divorder)

返回未编码瑞利衰落信道上相干检测到的psk的ber。

```

```

ber = berfading(EbNo,'depsk',M,divorder)

返回在非编码Rayleigh衰落信道上使用差分数据编码的相干检测PSK的ber。当前仅支持M=2。

```

```

ber = berfading(EbNo,'oqpsk',divorder)

返回未编码瑞利衰落信道上相干检测到的偏移QPSK的误码率。

```

```

ber = berfading(EbNo,'dpsk',M,divorder)

返回非编码瑞利衰落信道上dpsk的ber。对于DPSK,假设衰落足够慢,使得两个连续符号受到相同衰落系数的影响。

```

```

ber = berfading(EbNo,'fsk',M,divorder,coherence)

返回非编码瑞利衰落信道上正交fsk的ber。相干检测应为“coherence”,非相干检测应为“noncoherent”。

```

```

ber = berfading(EbNo,'fsk',2,divorder,coherence,rho)

返回非编码Rayleigh衰落信道上二进制非正交fsk的ber。rho是复相关系数。复相关系数的定义以及如何计算非正交BFSK的复相关系数,见带相干检测的非正交2-FSK。

```

```

ber = berfading(EbNo,...,K)

返回非编码Rician衰落信道上的ber,其中K是线性尺度上镜面反射能量与漫反射能量的比值。对于“fsk”,必须在K之前指定rho。

```

```

ber = berfading(EbNo,'psk',2,1,K,phaserr)

返回相位同步不完全的非编码Rician衰落信道上BPSK的ber。phaserr是参考载波相位误差的标准差,单位为弧度。

```

```

[BER,SER] = berfading(EbNo, ...)

返回BER和SER。

```

参考资料

```

参考链接:https://ww2.mathworks.cn/help/comm/test-and-measurement.html?s_tid=CRUX_lftnav

```

原文链接:https://blog.csdn.net/qq_43797817/article/details/105877474

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。