biterr
误码数和误码率(BER)
语法
描述
例子
误码率计算
创建两个二进制矩阵。
X = [0 0;0 0;0 0;0 0]
x =4×20 0 0 0 0 0 0
Y = [0 0;0 0;0 0;1 (1)
y =4×20 0 0 0 0 0 1 1
确定误码数。
数字= biterr(x,y)
Numerrs = 2
计算逐列错误的数量。
biterr(x,y,[],“列”)
numerrs =1×21
计算逐行错误的数量。
biterr(x,y,[],一点的行操作的)
numerrs =4×10 0 0 2
计算总体错误的数量。行为与默认行为相同。
biterr(x,y,[],“整体”)
Numerrs = 2
AWGN中64-QAM误码率估计
解调一个有噪声的64-QAM信号并估计Eb/No值范围内的误码率(BER)。将误码率估计值与理论值进行比较。
设置仿真参数。
M = 64;调制阶数k = log2(M);每个符号的比特数%EbNoVec = (5:15)';% Eb/No值(dB)numSymPerFrame = 100;每帧QAM符号的百分比
初始化结果向量。
berEst = 0 (size(EbNoVec));
主处理循环执行这些步骤。
生成二进制数据并转换为64元符号。
qam -调制数据符号。
将调制信号通过AWGN信道传递。
解调接收信号。
将解调后的符号转换为二进制数据。
计算误码数。
的而
循环继续处理数据,直到遇到200个错误或传输1e7位。
为n = 1:长度(EbNoVec)将Eb/No转换为信噪比snrdB = EbNoVec(n) + 10*log10(k);重置错误和位计数器数字errs = 0;numBits = 0;而numErrs < 200 && numBits < 1e7生成二进制数据并转换为符号dataIn = randi([0 1],numSymPerFrame,k);dataSym = bi2de(dataIn);% QAM调制使用'灰色'符号映射txSig = qammod(dataSym,M);%通过AWGN通道rxSig = awgn(txSig,snrdB,“测量”);解调噪声信号rxSym = qamdemod(rxSig,M);将接收到的符号转换为比特dataOut = de2bi(rxSym,k);计算误码数errors = biterr(dataIn,dataOut);增加错误计数器和比特计数器number errs = number errs + nErrors;numBits = numBits + numSymPerFrame*k;结束估计误码率berEst(n) = numErrs/numBits;结束
确定理论误码率曲线使用berawgn
函数。
n .理论;理论;理论;“qam”, M);
绘制估计误码率和理论误码率数据。估计的误码率数据点与理论曲线很好地对齐。
semilogy (EbNoVec大麦的一种,‘*’)举行在符号学(EbNoVec,berTheory)“估计误码率”,“理论误码率”)包含(“Eb /不(dB)”) ylabel (“误码率”)
输入参数
x, y
- - - - - -要比较的输入(作为单独的参数)
向量|矩阵
要进行比较的输入,指定为单独的参数,如非负整数元素的向量或矩阵。函数转换的每个元素x
而且y
与它的无符号二进制表示进行比较。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|逻辑
k
- - - - - -输入元素的最大比特数
正整数
的输入元素的最大比特数x
而且y
,指定为正整数。中任何元素的二进制表示所需的比特数x
或y
大于k
,函数错误。
如果不设置k
,函数将其设置为中最大元素的二进制表示中的位数x
而且y
.
数据类型:单
|双
国旗
- - - - - -标志以覆盖默认设置
“整体”
|一点的行操作的
|“列”
标志,以覆盖函数的默认设置,指定为“整体”
,一点的行操作的
,或“列”
.Flag指定函数如何比较输入中的元素x, y
然后计算输出。有关更多信息,请参见算法部分。
数据类型:字符串
|字符
输出参数
算法
根据大小比较输入
函数使用的大小x
而且y
来确定比较它们元素的顺序。
如果输入是相同维度的矩阵,则该函数逐个元素比较输入。
数量
在本例中为非负整数。例如,参见图中的情况(a)。如果一个输入是一个矩阵,另一个输入是一个列向量,那么该函数将矩阵的每一列逐个元素与列向量进行比较。矩阵中的行数必须等于列向量的长度。换句话说,如果矩阵有维数米——- - - - - -n,则列向量必须有维数米1。例如,参见图中的情形(b)。
如果一个输入是一个矩阵,另一个输入是一个行向量,那么该函数将矩阵的每一行逐个元素与行向量进行比较。矩阵的列数必须等于行向量的长度。换句话说,如果矩阵有维数米——- - - - - -n,那么行向量的维数必须是1 × -n.例如,参见图中的情况(c)。
基于Flag比较输入
该表描述了如何根据的不同值计算输出国旗
.x
在这个表中被认为是一个矩阵的大小y
是多种多样的。
的大小y |
国旗 价值 |
比较类型 | 数量 价值 |
总比特数 |
---|---|---|---|---|
矩阵 | “整体” (默认) |
逐个元素 | 总误码数 | k 乘以元素的个数y |
一点的行操作的 |
米第Th行x 来米第Th行y |
列向量,其元素表示每一行的误码 | k 乘以元素的个数y |
|
“列” |
米的第Th列x 来米的第Th列y |
行向量,其元素表示每列的误码 | k 乘以元素的个数y |
|
行向量 | “整体” |
y 每一行x |
总误码数 | k 乘以元素的个数x |
一点的行操作的 (默认) |
y 每一行x |
列向量,其元素表示数组中每一行的误码x |
k 乘以y |
|
列向量 | “整体” |
y 的每一列x |
总误码数 | k 乘以元素的个数x |
“列” (默认) |
y 的每一列x |
行的向量,其元素表示的每列的误码x |
k 乘以y |
扩展功能
C/ c++代码生成
使用MATLAB®Coder™生成C和c++代码。
版本历史
R2006a之前介绍
另请参阅
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。