符号映射的例子
比较错误率为灰色和二进制编码排序
比较灰色编码和二进制编码通过适当配置相移键控调制和相移键控解调系统对象。这个模拟遍历一系列能源噪声功率谱密度,
、价值观和运行,直到指定的最大数量的错误(maxNumErrs
)或位的最大数量(maxNumBits
)达到灰色编码为每个
点。
初始化
初始化系统变量和创建系统对象调制,解调,AWGN信道和错误率操作。自comm.AWGNChannel
™和系统对象兰迪
函数使用默认随机流,设置随机数生成器的种子,以确保可重复的结果。随机数发生器的状态存储设置随机流种子之前,和恢复的例子。
M = 8;% 8-PSK调制订单sps = 10000;%样本每帧maxNumErrs = 100;如果100错误达到%停止仿真maxNumBits = 1 e8;如果1 e8 %停止模拟传输prevState =提高;rng (529558);
创建相移键控调制和解调系统对象的二进制输入数据映射到8-PSK灰色和二进制编码星座。
pskmod = comm.PSKModulator (…ModulationOrder = M,…SymbolMapping =“灰色”,…PhaseOffset = 0,…BitInput = true);pskdemod = comm.PSKDemodulator (…ModulationOrder = M,…SymbolMapping =“灰色”,…PhaseOffset = 0,…BitOutput = true,…OutputDataType =“uint8”,…DecisionMethod =“艰难的决定”);pskmodb = comm.PSKModulator (…ModulationOrder = M,…SymbolMapping =“二元”,…PhaseOffset = 0,…BitInput = true);pskdemodb = comm.PSKDemodulator (…ModulationOrder = M,…SymbolMapping =“二元”,…PhaseOffset = 0,…BitOutput = true,…OutputDataType =“uint8”,…DecisionMethod =“艰难的决定”);
创建一个AWGN信道系统对象添加噪声调制信号。配置为噪声方法 处理循环。相移键控调制生成符号1 W的权力,所以AWGN信道的信号功率属性对象设置为1 W。
awgnchan = comm.AWGNChannel (…NoiseMethod =“信号噪声比(Eb /不)”,…BitsPerSymbol = log2 (M),…SignalPower = 1);
创建一个符号误码率和误比特率计算器系统对象比较解调整数和一些数据与原始数据。这种比较收益率符号误差和位误差的统计数据。出错率计算器系统对象的输出是一个三元素向量包含计算出错率,观察到的错误数量,处理的数据量。模拟使用三元素向量来确定何时停止仿真。
symerror = comm.ErrorRate;biterror = comm.ErrorRate;biterrorb = comm.ErrorRate;
框架处理循环
配置一个帧处理循环数据编码,调制,并使用8-PSK调制解调。循环模拟通信系统 值在0分贝范围12 dB 2 dB的步骤。
为每一个
值,仿真停止时的最大数量错误(maxNumErrs
)或位的最大数量(maxNumBits
)处理的比特误码率达到计算器系统对象的灰色编码比特。
EbNoVec = 0:2:12;% Eb /不模拟值SERVec = 0(大小(EbNoVec));% SER历史BERVec = 0(大小(EbNoVec));%的误码率为灰色命令历史BERVecb = 0(大小(EbNoVec));%的误码率为二进制命令历史为p = 1:长度(EbNoVec)%重置系统对象重置(symerror);重置(biterror);重置(biterrorb);awgnchan。EbNo = EbNoVec(p);%重置SER和误码率为当前Eb /没有价值SER = 0 (3,1);数量= 0 (3,1);而(2)< maxNumErrs) & &(误码率(BER (3) < maxNumBits)%产生随机数据txSym =兰迪([0 m - 1], sps, 1,“uint8”);txBits = int2bit (txSym log2 (M),真的);%符号转换成碎片tx = pskmod (txBits);txb = pskmodb (txBits);rx = awgnchan (tx);rxb = awgnchan (txb);rxBits = pskdemod (rx);rxBitsb = pskdemodb (rxb);rxSym = bit2int (rxBits log2 (M),真的);SER = symerror (txSym rxSym);% SER Gray-coded数据数量= biterror (txBits rxBits);% BER Gray-coded数据BERb = biterrorb (txBits rxBitsb);% BER对二进制编码数据结束%保存SER的历史和BER值SERVec (p) = SER (1);BERVec (p) = 1 (1);BERVecb (p) = BERb (1);结束
恢复默认流。
rng (prevState)
结果分析
分析数据的例子,比较理论性能与仿真性能。计算理论错误概率通过使用berawgn
函数。情节格雷编码的模拟符号错误率,为灰色和二进制编码比特误码率,灰色的理论符号误差和位误差概率编码。
[theorBER, theorSER] = berawgn (EbNoVec,“相移键控”米,“nondiff”);图;semilogy (…EbNoVec SERVec,“o”,…EbNoVec BERVecb,“x”,…EbNoVec BERVec,“*”,…EbNoVec theorSER,“-”,…EbNoVec theorBER,“-”);传奇(“符号错误率”,“比特误码率(二进制)”,…“比特误码率(灰色)”,“理论符号错误率”,…“理论上的误比特率”,“位置”,“西南”);包含(“Eb /没有(dB)”);ylabel (“误差概率”);标题(“符号和一点误差概率”);网格在;
Gray-Coded M-PSK调制误差率在AWGN信道使用仿真软件金宝app
下面的例子使用了doc_gray_code
计算误比特率(BER)和符号错误率(SER) M-PSK调制。理论误码率性能摘要M-PSK调制的误码率性能相比Gray-coded符号映射和二进制编码的误码率性能符号映射。
随机整数生成器块作为源,产生一个整数序列。整数位转换器块每个整数转换成相应的二进制表示。的M-PSK调制器基带块的doc_gray_code
模型:
接受binary-valued输入表示整数的范围[0,(米- 1),在那里米是调制的秩序。
地图的二进制表示使用Gray-coded星座点排序。
生产unit-magnitude复杂矢量输出,与等间距的阶段在[0,(2(米- 1)/米)]。
AWGN信道的块添加高斯白噪声调制数据。M-PSK解调器基带解调吵闹的数据块。位整数转换器块将每个二进制表示转换为相应的整数。然后两个独立的出错率计算块计算解调数据的错误率。块标记SER的计算比较了整数数据计算符号错误率统计和块标记误码率计算比较了计算比特误码率统计数据。错误率的计算块的输出是一个三元素向量包含计算出错率,观察到的错误数量,处理的数据量。
减少仿真运行时保持稳定,确保统计数据的错误随着Eb / N0比率的增加,模型配置为运行直到100年发生错误或直到1 e8比特传输。
模型初始化变量用于配置块参数使用PreLoadFcn
回调函数。有关更多信息,请参见模型的回调(金宝app模型)。
格雷编码调制信号
相移键控,DPSK,移频键控、QAM和PAM调制类型,灰色的星座了通过设置符号映射到Gray-encoding在相应的调制函数,系统对象™或块。默认的象征秩序为调制使用Gray-encoded排序。
调制函数,您可以指定“灰色”
,“本”
,或一个向量指定自定义符号排序。下面的例子使用了qammod
函数与Gray-encoded符号映射。检查调制符号Gray-encoded星座情节,因为所有相邻元素只有一点不同。
k = 4;M = 2 ^ k;y = int2bit ([0: m - 1], k,假);symorder =“灰色”;xmap = qammod (y、M、symorder…InputType =“一点”,…PlotConstellation = true);