通信系统中理论与实际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

你可能感兴趣的:(matlab)