主要内容

数码视频广播-有线(DVB-C)

本例显示了ETSI(欧洲电信标准协会)EN 300 429电缆系统传输数字电视信号标准的一部分[1].本例使用通信系统对象来模拟数字视频广播-电缆(DVB-C)发射机-接收机链。

简介

DVB-C标准描述了使用MPEG-2或MPEG-4系列数字音频和视频流在电缆线路上传输数字电视信号。在本例中,我们对该标准的一部分进行建模。数据流采用里德-所罗门码和单载波QAM调制方式传输。该标准规定了发射机的设计,并设置了接收机的最低性能要求。

本例的目的是:

  • 对可能的传输/接收设计的主要部分进行建模(使用MPEG-2传输包数据在64-QAM模式下运行)

  • 说明关键通信工具箱™系统对象在DVB-C(或类似)系统设计中的使用

  • 说明创建包含其他系统对象的更高级别的系统对象,以便对被测系统的大型组件建模

  • 生成有助于确定模型是否满足系统性能要求的错误统计信息

  • 说明可以支持可变数量的测试运行的测试工具的创建。金宝app在这种情况下,我们使用这种支持来支持一个模式,其中只金宝app有一个EbNo被指定,我们观察光谱和散点图。我们还支持指定多金宝app个EbNo的模式,以便生成误码率曲线。

初始化

commdvbc_init.m脚本初始化模拟参数并生成结构prmDVBC。该结构的字段是当前DVB-C系统的参数。

commdvbc_init该结构的字段是DVB-C系统的参数%的手。prmDVBC
prmDVBC = struct with fields: bitsPerByte: 8 bitsPerMTpl: 6 MPEG2DatRateBitPerS: 9600000 rawMPEG2DataPcktLen: 184 MPEG2TrnsprtPcktLen: 188 MPEG2TrnsprtFramePer: 1.5667e-04 MPEG2PcktsPerSprFrm: 8 MPEG2TrnsSuperFrame: 1504 PRBSSeqPeriodBytes: 1503 PRBSSeqPeriodBits: 12024 RSCodewordLength: 204 CableChanFrameLen: 272 CableChanFrmPeriod: 1.5667e-04 RCosineSampsPerSym: 8 CableSymbolPeriod: 7.1998e-08 RCosineFilterSpan: 16 TxRxSymbolSampDelay: 288 DeintrlvrAlignDelay: 192 QAMSymbolMapping:[44 45 41 40 52 54 62 60 46 47 43 42 53 55 63……ConvIntlNumBranches: 12 ConvIntlCellDepth: 17

运行测试系统

被测系统中的主循环逐包处理数据,其中8个包形成一个超帧。设置useCodegen=true以便使用生成的代码而不是MATLAB®代码。为了创建生成的代码,将MATLAB变量compileIt设置为true。

被测系统的代码体系结构

本例模拟了从有线电视运营商到客户机顶盒的链接。该链接的模型包含在一个名为runDVBCSystemUnderTest的函数中。数据处理回路主要分为六个部分。系统对象™用于对该链接中的六个组件进行建模。这些对象是:

1) DVBCSource:生成比特流2)DVBCTransmitter:包含发射机(编码、调制、滤波等)3)com . awgnchannel:对信道建模4)DVBCReceiver:包含接收机5)DVBCBER:计算错误率6)DVBCScopes:提供可视化的可选对象

runDVBCSystemUnderTest的内部循环使用了以下对象:

您可以在被测系统周围使用for循环来处理固定数量的超级帧。或者,您可以使用while循环来根据模拟错误和传输位的数量来控制模拟长度。我们已经实现了后者,目标错误数为100,最大传输数为1e6。

(berEnd2End(2) < totalErrors) && (berEnd2End(3) < totalBits) txBytes = dvbcSource();%的来源[txPckt, modTxPckt] = dvbcTX(txBytes);%发射机chPckt = awgnChan(txPckt);%的通道[rxBytes, modRxPckt, rxPcakt] = dvbcRX(chPckt);%接收[berEnd2End, berDemod] =...dvb (txBytes rxBytes、modTxPckt modRxPckt);%的误码率如果useScopes runDVBCScopes (dvbcScope txPckt、chPckt rxPckt);结束结束

单个组件的描述

MPEG-2基带物理接口-数据源

该节生成随机数据和报头位,并追加一个报头同步字节。每个超帧的第一个包使用报头同步字节的位补。该组件的代码包含在DVBCSource.m

发射机基带处理

本节使用伪噪声序列随机化数据。发射机采用RS编码和卷积交织。这个函数convertBytesToMTuplesDVBCDemo.m为64-QAM调制器将8位字节转换为6位块。对调制后的数据流采用8倍过采样的平方根凸起余弦滤波器。该组件的代码包含在DVBCTransmitter.m

通道

信号通过使用com . awgnchannel System对象通过AWGN通道传输。

接收机基带处理

方法将接收到的符号解调并将6位块转换为字节convertMTuplesToBytesDVBCDemo.m函数。由于过滤操作引入了延迟,本例使用延迟系统对象hPacketSync将接收到的字节同步到包边缘。请注意,交织器延迟是包大小的倍数,因此同步到包边缘就足够了。接收器对数据包同步的字节进行反交织,并使用RS解码器系统对象进行解码。因为这个例子使用了一个PN序列发生器,它在去随机化之前将解码的数据同步到超帧边缘。该示例显示了发射和接收通道信号的频谱。最后,比较发送位和接收位,以及调制器输入和解调器输出,得到误码率。该组件的代码包含在DVBCReceiver.m

误码率计算

该组件比较接收到的解码位,并将其与传输的位进行比较,以计算误码率。该组件的代码包含在DVBCBER.m

可视化

可选的工具提供可视化。该组件的代码包含在DVBCScopes.m

正在运行测试中的系统

我们首先在测试中运行系统,并打开单个EbNo和可视化,以验证系统是否正常工作。

totalErrors = 100;totalBits = 1e6;EbNo = 16.5;useScopes = true;useCodegen = false;compileIt = false;如果compileIt%使EbNo输入不同大小的行向量(最大长度= 100)codegenrunDVBCSystemUnderTest报告arg游戏{code . constant (useScopes),code . constant (prmDVBC), code . constant (num), 1,编码器。typeof(EbNo,[1 100],[false true]), 1,1}结束如果useCodegen常量输入不会出现在对生成代码版本的调用中[berEnd2End, berDemod] = runDVBCSystemUnderTest_mex(useScopes, prmDVBC, num, sigPower, EbNo, totalErrors, totalBits);其他的[berEnd2End, berDemod] = runDVBCSystemUnderTest(useScopes, prmDVBC, num, sigPower, EbNo, totalErrors, totalBits);结束

的误码率曲线

接下来,我们用EbNo的矢量重新运行被测系统,并关闭可视化以生成误码曲线。

调用错误率测量对象berEnd2End和berDemod,输出一个3乘1的向量,其中包含测量的误码率值、错误数和比特传输总数的更新。显示解调器输出端的误码率和端到端的误码率。

EbNo = 11.5:0.5:14.5;useScopes = false;useCodegen = false;compileIt = false;如果compileIt%使EbNo输入不同大小的行向量(最大长度= 100)codegenrunDVBCSystemUnderTest报告arg游戏{code . constant (useScopes),code . constant (prmDVBC), code . constant (num), 1,编码器。typeof(EbNo,[1 100],[false true]), 1,1}结束如果useCodegen常量输入不会出现在对生成代码版本的调用中[berEnd2End, berDemod] = runDVBCSystemUnderTest_mex(useScopes, prmDVBC, num, sigPower, EbNo, totalErrors, totalBits)其他的[berEnd2End, berDemod] = runDVBCSystemUnderTest(useScopes, prmDVBC, num, sigPower, EbNo, totalErrors, totalBits)结束plotDVBCResults(EbNo, berEnd2End, berDemod);
berEnd2End = 0.0193 0.0139 0.0075 0.0038 0.0006 0.0001 0.0000 berDemod = 0.0174 0.0133 0.0083 0.0066 0.0041 0.0028 0.0018

总结

本例利用几个System对象模拟AWGN信道上的部分DVB-C通信系统。演示了如何对DVB-C系统的随机化、编码和交织等部分进行建模。该示例还使用delay System对象来同步发送器和接收器。系统性能的测量使用误码率测量系统对象获得的误码率曲线。

附录

本例使用了以下脚本和helper函数:

选定的参考书目

  1. ETSI标准EN 300 429 V1.2.1:数字视频广播(DVB)电缆系统的帧结构、信道编码和调制,欧洲电信标准协会,法国瓦尔邦,1998。