主要内容

端到端DVB-S2模拟射频损伤和修正

这个例子展示了如何衡量误比特率(BER)和包错误率(/)的单个流数字视频广播卫星第二代(DVB-S2)不断的编码和调制的链接。实例详细描述了符号定时和载波同步策略,强调如何估计射频前端沉重的噪音条件下损伤。单流信号增加射频前端障碍,然后通过波形通过加性高斯白噪声(AWGN)信道。

介绍

DVB-S2接收器接受大载波频率误差的顺序输入符号率和20%的可观的相位噪声。使用强大的前向纠错(FEC)机制,如Bose-Chaudhuri-Hocquenghem (BCH)和低密度奇偶校验(LDPC)码,导致DVB-S2每个符号系统工作在非常低的能量与噪声功率谱密度比( E 年代 / N o )值,接近香农极限。

ETSI EN 302 307 - 1第6节表13[1]总结了Quasi-Error-Free(意见)在AWGN信道的性能需求不同的调制方案和代码率。操作 E 年代 / N o 范围不同的传播模式可以被认为是+ 2或2 dB E 年代 / N o 点意见性能观察。因为操作 E 年代 / N o 范围低,载波和符号定时同步策略是具有挑战性的设计问题。

这个图表总结了工作流实例。

主要处理循环

示例流程25物理层(PL)帧的数据 E 年代 / N o 设置为20 dB,然后计算数量和每。载波频率偏移,采样时钟偏移,相位噪声损伤应用于调制信号,和AWGN添加到信号。

接收器,匹配滤波后,定时和载波恢复操作运行恢复传输数据。提取PL框架,扭曲的波形处理通过各种提取PL帧定时和载波恢复策略。pilot-aided载波恢复算法。解码数据帧,物理层传输参数如调制方案,编码速率,和选举委员会的帧类型,从PL头中恢复过来。重新生成输入比特流,基带(BB)头是解码。

因为DVB-S2标准支持通过连续的传输模式,BB框架可以金宝app是连接用户数据包或比特流。BB头恢复到确定的传输方式。如果BB框架是连接用户数据包,数据包循环冗余校验(CRC)的状态返回每个数据包解码比特,然后测量每和误码率。

这些方框图显示同步和输入一些恢复工作流。

下载DVB-S2 LDPC的奇偶校验矩阵的数据集

这个示例加载MAT-file DVB-S2 LDPC的奇偶校验矩阵。如果MAT-file不可用MATLAB®路径,使用这些命令来下载并解压缩MAT-file。

如果~ (“dvbs2xLDPCParityMatrices.mat”,“文件”)如果~ (“s2xLDPCParityMatrices.zip”,“文件”)url =“https://ssd.mathworks.com/金宝appsupportfiles/spc/satcom/DVB/s2xLDPCParityMatrices.zip”;websave (“s2xLDPCParityMatrices.zip”url);解压缩(“s2xLDPCParityMatrices.zip”);结束目录“s2xLDPCParityMatrices”);结束

在Pilot-Aided DVB-S2配置模式

指定cfgDVBS2结构定义DVB-S2传输配置参数。的ScalingMethod属性适用于当MODCOD在范围(18、28)(也就是说,当调制方案只APSK)。推高当你设置属性是适用的StreamFormatGS”。

cfgDVBS2。StreamFormat =“t”;cfgDVBS2。FECFrame=“正常”;cfgDVBS2。MODCOD= 18;% 16 apsk 2/3cfgDVBS2。分= 42960;cfgDVBS2。ScalingMethod =“单元平均功率”;cfgDVBS2。RolloffFactor = 0.35;cfgDVBS2。HasPilots = true;cfgDVBS2。SamplesPerSymbol = 2
cfgDVBS2 =结构体字段:StreamFormat:“t”FECFrame:“正常”MODCOD: 18分:42960 ScalingMethod:“单位平均功率”RolloffFactor: 0.3500 HasPilots: 1 SamplesPerSymbol: 2

仿真参数

DVB-S2标准支持灵活的信道带宽。金宝app使用一个典型的通道带宽等36 MHz。信道带宽可以不同。粗频率同步算法实现在这个例子可以跟踪载波频率偏移量高达20%的输入符号率。计算符号率作为B / (1 + R), B通道带宽,R是传输过滤器碾轧的因素。这个例子中实现的算法可以正确的采样时钟偏移10 ppm。

simParams。年代ps = cfgDVBS2.SamplesPerSymbol;每个符号%样本simParams。numFrames = 25;%处理的帧数simParams。chanBW = 36 e6;信道带宽百分比赫兹simParams。首席财务官= 3 e6;在赫兹%载波频率偏移simParams。上海合作组织= 5;%采样时钟偏移的部分%每百万simParams。phNoiseLevel =“低”;%作为相位噪声水平%“低”、“媒介”或“高”simParams.EsNodB= 20;%每个符号能量噪声比%的分贝

这个表定义了相位噪声面具(dBc / Hz)用于生成相位噪声应用于传输信号。

与射频损伤产生DVB-S2波形失真

创建一个DVB-S2波形,可以使用HelperDVBS2RxInputGeneratehelper函数与simParamscfgDVBS2结构作为输入。函数返回的数据信号,发送和接收波形和接收器处理结构。接收到的波形与载波频率受损,定时相位偏移,相位噪声,然后通过一个AWGN信道。接收方工艺参数结构,rxParams,包括参考试点领域,试验指标,计数器和缓冲区。情节收到的星座符号和传播和接收波形的频谱。

(数据、txOut rxIn rxParams] = HelperDVBS2RxInputGenerate (cfgDVBS2 simParams);%接收信号星座图rxConst = comm.ConstellationDiagram (“标题”,接收的数据的,“XLimits”[1],“YLimits”[1],“ShowReferenceConstellation”假的,“SamplesPerSymbol”,simParams.sps);rxConst (rxIn(1:长度(txOut)))

%传播和接收信号频谱可视化Rsymb = simParams。chanBW / (1 + cfgDVBS2.RolloffFactor);Fsamp = Rsymb * simParams.sps;specAn = dsp.SpectrumAnalyzer (“SampleRate”Fsamp,“ChannelNames”,{传输波形的,接收波形的},“ShowLegend”,真正的);specAn ([txOut rxIn(1:长度(txOut))));

配置接收机参数

接收器,符号定时同步接收的数据,然后执行帧同步紧随其后。接收机算法包括粗和细损伤频率校正算法。载波频率估计算法可以跟踪载波频率偏移量高达20%的输入符号率。粗频率估计,实现为一个锁频环路(算法),减少了频率偏移水平,优良的频率估计可以跟踪。象征的首选环路带宽取决于时机和粗频率补偿 E 年代 / N o 设置。

36块飞行员重复每1476个符号。粗频率误差估计使用34 36飞行员的符号。飞行员使用的比例每个块(34)和飞行员周期性(1476)是0.023。0.023使用价值的比例因子频率粗同步器回路带宽优先。

当你降低 E 年代 / N o ,你可以减少环路带宽在收购过滤噪音。所需的的帧数符号同步器和粗算法收敛取决于环路带宽设置。

帧同步使用PL头。因为承运人data-aided同步、帧同步必须准确检测帧的开始。 E 年代 / N o 扮演一个重要角色在决定帧同步的准确性。QPSK调制时帧被恢复 E 年代 / N o 值低于3 dB,必须进行帧同步多个帧精确检测。

优良的频率估计可以跟踪载波频率偏移量高达4%的输入符号率。优良的频率估计必须处理多个试点块剩余载波频率偏移的相位估计算法减少到可接受的水平。相位估计算法可以处理剩余载波频率误差不到0.02%的输入符号率。好所需相位补偿只是APSK调制方案存在明显的相位噪声。

这些设置被分配rxParams结构进行同步处理。有关如何设置这些参数为低 E 年代 / N o 值,请参阅进一步的探索部分。

rxParams.carrSyncLoopBW= 1e-2*0.023;%粗频率估计量回路带宽%符号率归一化rxParams.symbSyncLoopBW= 8e-3;%符号定时同步器回路带宽%符号率归一化rxParams.symbSyncLock= 6;%符号所需的帧数%计时误差收敛rxParams.frameSyncLock = 1;%的帧数所需的框架%的同步rxParams.coarseFreqLock= 3;%粗所需的帧数%频率采集rxParams.fineFreqLock= 6;%好所需的帧数%频率估计rxParams。hasFinePhaseCompensation = false;%国旗表明是否良好的阶段使用%赔偿rxParams。finePhaseSyncLoopBW = 3.5的军医;%好相位补偿回路带宽%符号率归一化%的总帧符号定时和粗频率锁发生rxParams。initialTimeFreqSync = rxParams。年代ymbSyncLock + rxParams.frameSyncLock +rxParams.coarseFreqLock;%用于整体总帧同步rxParams。totalSyncFrames = rxParams。initialTimeFreqSync + rxParams.fineFreqLock;%通过使用创建时间频率同步系统对象% HelperDVBS2TimeFreqSynchronizer helper对象timeFreqSync = HelperDVBS2TimeFreqSynchronizer (“CarrSyncLoopBW”rxParams.carrSyncLoopBW,“SymbSyncLoopBW”rxParams.symbSyncLoopBW,“SamplesPerSymbol”simParams.sps,“DataFrameSize”rxParams.xFecFrameSize,“SymbSyncTransitFrames”rxParams.symbSyncLock,“FrameSyncAveragingFrames”,rxParams.frameSyncLock);通过使用%创建良好的相位补偿系统对象% HelperDVBS2FinePhaseCompensator helper对象。好相%赔偿只需要16和32 APSK调制帧如果cfgDVBS2。MODCOD>= 18 && rxParams.hasFinePhaseCompensation finePhaseSync = HelperDVBS2FinePhaseCompensator(“DataFrameSize”rxParams.xFecFrameSize,“NormalizedLoopBandwidth”,rxParams.finePhaseSyncLoopBW);结束normFlag = cfgDVBS2。MODCOD>= 18 && strcmpi(cfgDVBS2.ScalingMethod,外半径为1的);%初始化错误计算参数[numFramesLost, pktsErr bitsErr pktsRec] =交易(0);%初始化数据索引变量stIdx = 0;dataSize = rxParams.inputFrameSize;plFrameSize = rxParams.plFrameSize;dataStInd = rxParams。totalSyncFrames + 1;isLastFrame = false;symSyncOutLen = 0 (rxParams.initialTimeFreqSync, 1);

定时和载波同步和数据恢复

同步接收的数据和恢复输入比特流,扭曲的DVB-S2波形样本处理一帧通过以下步骤。

  1. 应用匹配滤波,输出每个符号两个样品的速度。

  2. 运用符号定时同步使用Gardner定时误差检测器和一个输出生成速度的符号。加德纳TED不是data-aided,所以之前完成载波同步。

  3. 应用帧同步检测的开始帧和识别驾驶员的位置。

  4. 估计和应用粗频率偏移校正。

  5. 估计和应用好频率偏移校正。

  6. 估计和补偿剩余载波频率和相位噪声。

  7. 解码PL头和计算传输参数。

  8. 解调和解码PL画框。

  9. 对BB头执行CRC检查,如果检查通过,恢复头参数。

  10. 再生的数据输入流或从BB帧数据包。

stIdx <长度(rxIn)%使用一个DVB-S2 PL框架为每个迭代。endIdx = stIdx + rxParams.plFrameSize * simParams.sps;%在过去的迭代,所有剩下的样品收到了%波形。isLastFrame = endIdx >长度(rxIn);endIdx长度(isLastFrame) = (rxIn);rxData = rxIn (stIdx + 1: endIdx);%粗频率偏移循环聚合后,算法使用%降低环路带宽。如果rxParams.frameCount < rxParams。initialTimeFreqSync coarseFreqLock = false;其他的coarseFreqLock = true;结束%检索最后一帧样本。如果isLastFrame resSymb = plFrameSize -长度(rxParams.cfBuffer);resSampCnt = resSymb * rxParams。sps -长度(rxData);如果resSampCnt > = 0%的样本数量不足填补最后一帧syncIn = [rxData; 0 (resSampCnt 1)];其他的%多余的样品可用来填补最后一帧syncIn = rxData (1: resSymb * rxParams.sps);结束其他的syncIn = rxData;结束%应用匹配滤波,符号定时同步、帧%同步和粗频率偏移补偿。[coarseFreqSyncOut, syncIndex, ph值]= timeFreqSync (syncIn coarseFreqLock);如果rxParams.frameCount < = rxParams。initialTimeFreqSync symSyncOutLen长度(rxParams.frameCount) = (coarseFreqSyncOut);如果任何(abs (diff (symSyncOutLen (1: rxParams.frameCount))) > 5)错误([的符号定时同步失败。循环不会的“收敛。没有框架会恢复。更新symbSyncLoopBW”的参数根据EsNo设置适当的循环收敛。”]);结束结束rxParams。年代yncIndex = syncIndex;% PL帧开始指数介于两者中间的一部分正在处理。%从开始,细频偏估计处理的PL框架。%缓冲区用于存储符号需要填补一个PL框架。如果isLastFrame fineFreqIn = [rxParams.cfBuffer;coarseFreqSyncOut];其他的fineFreqIn = [rxParams.cfBuffer;coarseFreqSyncOut (1: rxParams.syncIndex-1)];结束%估计频率错误使用HelperDVBS2FineFreqEst罚款% helper函数。% 1添加到条件检查因为缓冲区用于获取一个PL%框架引入了一个延迟的循环计数。如果(rxParams.frameCount > rxParams。initialTimeFreqSync + 1) & &(rxParams.frameCount < = rxParams。totalSyncFrames rxParams + 1)。fineFreqCorrVal = HelperDVBS2FineFreqEst (rxParams.numPilots fineFreqIn (rxParams.pilotInd),rxParams.refPilots rxParams.fineFreqCorrVal);结束如果rxParams.frameCount > = rxParams。totalSyncFrames + 1 fineFreqLock = true;其他的fineFreqLock = false;结束如果fineFreqLock%正常化的频率估计的输入符号率%频率=角(R) /(π* (N + 1)),其中N(18)元素的数量%用于计算汽车相关(R)的意思% HelperDVBS2FineFreqEst。频率=角(rxParams.fineFreqCorrVal) /(π* (19));%生成指数使用frameCount和plFrameSize象征。% rxParams.frameCount减去2,因为所使用的缓冲区% PL框架引入了一个延迟的一个计数。印第安纳州= (rxParams.frameCount-2) * plFrameSize: (rxParams.frameCount-1) * plFrameSize-1;phErr = exp (1 j * 2 *π*频率*印第安纳州);fineFreqOut = fineFreqIn。* phErr (:);使用HelperDVBS2PhaseEst %估计相位误差估计% helper函数。[phEstRes, rxParams。prevPhaseEst] = HelperDVBS2PhaseEst (fineFreqOut (rxParams.pilotInd)、rxParams.refPilots rxParams.prevPhaseEst);%赔偿剩余使用频率和相位抵消%的% HelperDVBS2PhaseCompensate helper函数。%使用两个帧初始相位误差估计。从%第二帧,使用前一帧和相位误差估计%的当前帧补偿。%添加3的帧数比较占延迟:一个由于rxParams %框架。cfBuffer延迟和两帧用于阶段%的错误估计。如果rxParams.frameCount > = rxParams。totalSyncFrames + 3 coarsePhaseCompOut = HelperDVBS2PhaseCompensate (rxParams.ffBufferrxParams.pilotEst、rxParams.pilotInd phEstRes (2));% MODCOD > = 18对应APSK调制方案如果cfgDVBS2。MODCOD>= 18 && rxParams.hasFinePhaseCompensation phaseCompOut = finePhaseSync(coarsePhaseCompOut);其他的phaseCompOut = coarsePhaseCompOut;结束结束rxParams。ffBuffer = fineFreqOut;rxParams。飞行员= phEstRes;%的相位补偿数据部分是由%插值连续相位估计计算试点%块。第二阶段为数据估计是不可用的%后最后一部分飞行员在最后一帧块。因此,%阶段的斜率估计计算在所有飞行员块%最后一帧是推断,用于补偿阶段%误差对最终的数据部分。如果isLastFrame pilotBlkLen = 36;%符号pilotBlkFreq = 1476;%符号avgSlope =意味着(diff (phEstRes(2:结束)));chunkLen = rxParams。plFrameSize rxParams.pilotInd(结束)+rxParams.pilotInd (pilotBlkLen);estEndPh = phEstRes(结束)+ avgSlope * chunkLen / pilotBlkFreq;coarsePhaseCompOut1 = HelperDVBS2PhaseCompensate (rxParams.ffBuffer,rxParams.pilotEst、rxParams.pilotInd estEndPh);% MODCOD > = 18对应APSK调制方案如果cfgDVBS2。MODCOD>= 18 && rxParams.hasFinePhaseCompensation phaseCompOut1 = finePhaseSync(coarsePhaseCompOut1);其他的phaseCompOut1 = coarsePhaseCompOut1;结束结束结束%恢复输入比特流。如果rxParams.frameCount > = rxParams。totalSyncFrames + 3 = true是否是可用的;如果isLastFrame syncOut = [phaseCompOut;phaseCompOut1];其他的syncOut = phaseCompOut;结束其他的isValid = false;syncOut = [];结束%更新缓冲和计数器。rxParams。cfBuffer = coarseFreqSyncOut (rxParams.syncIndex:结束);rxParams。年代yncIndex = syncIndex; rxParams.frameCount = rxParams.frameCount + 1;如果isValid%数据有效信号%解码PL头使用HelperDVBS2PLHeaderRecover帮手%的功能。的开始帧(SOF) 26个符号,被丢弃%之前头解码。他们只需要框架%的同步。rxPLSCode = syncOut (27:90);[M R fecFrame pilotStat] = HelperDVBS2PLHeaderRecover (rxPLSCode);xFECFrameLen = fecFrame / log2 (M);%验证解码PL头。如果M ~ = rxParams。modOrder | | R ~ = rxParams。codeRate | |fecFrame ~ = rxParams。cwLen | | ~ pilotStat流(“% s \ n”,“PL头解码失败”)其他的%解调和解码frameCnt = 1:长度(syncOut) / plFrameSize rxFrame = syncOut ((frameCnt-1) * plFrameSize + 1: frameCnt * plFrameSize);使用%估计噪声方差% HelperDVBS2NoiseVarEstimate helper函数。据nVar = HelperDVBS2NoiseVarEstimate (rxFrame rxParams.pilotInd,rxParams.refPilots normFlag);%数据始于91年(在标题符号)。rxDataFrame = rxFrame(91:结束);%恢复BB框架。rxBBFrame = satcom.internal.dvbs.s2BBFrameRecover (rxDataFrame, M, R,fecFrame pilotStat,据nVar、假);%恢复输入比特流用% HelperDVBS2StreamRecover helper函数。如果strcmpi (cfgDVBS2.StreamFormat“GS”)& & ~ rxParams.UPL[decBits,isFrameLost] = HelperDVBS2StreamRecover(rxBBFrame);如果~ isFrameLost & &长度(decBits) ~ = dataSize isFrameLost = true;结束其他的[decBits, isFrameLost pktCRC] = HelperDVBS2StreamRecover (rxBBFrame);如果~ isFrameLost & &长度(decBits) ~ = dataSize isFrameLost = true;pktCRC = 0 (0, 1,“逻辑”);结束%计算为TS包错误率或GS通过%模式。pktsErr = pktsErr +元素个数(pktCRC)和(pktCRC);pktsRec = pktsRec +元素个数(pktCRC);结束如果~ isFrameLost ts = sprintf (' % s ',“BB头解码了。”);其他的ts = sprintf (' % s ',“BB头解码失败了。”);结束%计算帧丢失的数量。CRC基带头的失败%被认为是一个框架的损失。numFramesLost = isFrameLost + numFramesLost;流(' % s(帧丢失的数量= % 1 d) \ n”、ts numFramesLost)%计算比特错误。bitInd = (dataStInd-1) * dataSize + 1: dataStInd * dataSize;如果isLastFrame & & ~ isFrameLost bitsErr = bitsErr +总和(数据(bitInd) ~ = decBits);其他的如果~ isFrameLost bitsErr = bitsErr +总和(数据(bitInd) ~ = decBits);结束结束dataStInd = dataStInd + 1;结束结束结束stIdx = endIdx;结束
BB头解码了。(帧丢失的数量= 0)BB头解码了。(帧丢失的数量= 0)BB头解码了。(帧丢失的数量= 0)BB头解码了。(帧丢失的数量= 0)BB头解码了。(帧丢失的数量= 0)BB头解码了。(帧丢失的数量= 0)BB头解码了。(帧丢失的数量= 0)BB头解码了。(帧丢失的数量= 0)BB头解码了。(帧丢失的数量= 0)

可视化和错误日志

情节的星座同步数据和计算数量和每。

%同步数据星座图syncConst = comm.ConstellationDiagram (“标题”,“同步数据”,“XLimits”(2 - 2),“YLimits”(2 - 2),“ShowReferenceConstellation”、假);syncConst (syncOut)

暂停(0.5)%错误指标显示% GS连续流如果strcmpi (cfgDVBS2.StreamFormat“GS”)& & ~ rxParams.UPL如果(simParams.numFrames-rxParams。totalSyncFrames = = numFramesLost)流(“所有的框架都是输了。没有从BB检索框架。”)其他的数量= bitsErr / ((dataStInd-rxParams.totalSyncFrames) * dataSize);流(“方方面面:% 1.2 e \ n”,ber)结束其他的%对GS和TS通过流如果pktsRec = = 0流(“所有的框架都是输了。没有数据包从BB检索框架。”)其他的如果strcmpi (cfgDVBS2.StreamFormat“t”)pktLen = 1504;其他的pktLen = cfgDVBS2.UPL;%长度包括同步字节结束数量= bitsErr / (pktsRec * pktLen);每= pktsErr / pktsRec;流(“每:% 1.2 e \ n”,每)流(“方方面面:% 1.2 e \ n”,ber)结束结束
每:0.00 e + 00
数量:0.00 e + 00

进一步的探索

操作 E 年代 / N o DVB-S2标准的范围是很低的要求规范化环路带宽的符号同步器和粗算法为准确的估计是非常小的。通过设置这些参数rxParams.symbSyncLoopBWrxParams.carrSyncLoopBW

符号定时同步配置参数

尝试运行仿真使用符号定时同步器配置一个规范化的环路带宽1的军医。与回路带宽在这个级别,这个表显示了典型的帧数收敛所需的定时循环为特定调制方案和象征“正常”选举委员会的框架。

选举委员会的框架,用于符号定时同步的帧数三次所需的数量正常的选举委员会的框架。为了实现收敛时间循环的,比率rxParams.symbSyncLoopBW / simParams.sps必须大于1 e-5。如果符号定时循环不收敛,试着增加rxParams.carrSyncLoopBW

配置帧同步参数

选择一个rxParams.symbSyncLock从表中提供的值符号定时同步配置参数部分。集rxParams.frameSyncLock作为价值的范围(5、15)帧的基础上 E 年代 / N o 设置。如果输出并不如预期,增加了帧同步所需的帧数。

配置载波同步参数

尝试运行仿真使用粗算法配置规范化循环1 * 0.023的军医相移键控信号的带宽和4 * 0.023的军医APSK信号。

当你设置FECFrame财产“正常”,设置rxParams.coarseFreqLock属性到20。当你设置FECFrame财产“短”,设置rxParams.coarseFreqLock80年财产。集simParams.EsNodB到最低 E 年代 / N o 选择的调制方案从302年ETSI EN 307 - 1第6节[1]。为HelperDVBS2TimeFreqSynchronizer系统对象,其属性设置为前面讨论的基础上,选择配置。

% timeFreqSync = HelperDVBS2TimeFreqSynchronizer (…%’CarrFreqLoopBW’, rxParams。carrSyncLoopBW,……%’SymbTimeLoopBW’, rxParams。symbSyncLoopBW,……%’SamplesPerSymbol’, simParams。sps,……%’DataFrameSize’, rxParams。xFecFrameSize,……%’SymbSyncTransitFrames’, rxParams。symbSyncLock,……%的FrameSyncAveragingFrames rxParams.frameSyncLock)

替换的代码符号定时和频率粗同步部分与这些行代码。运行仿真不同的载波频率偏移(CFO)值。粗频率补偿后,视图情节和首席财务官残值(resCoarseCFO)每一帧观察粗频率估计算法的性能。理想情况下,粗频率补偿减少了错误符号率的2%。如果粗频率补偿没有减少到少于3%的符号率,试着减少环路带宽和增加rxParams.coarseFreqLock。因为频率误差估计使用飞行员符号,确认帧同步器是否正确锁以帧的开始。

%(指数,ph值)= timeFreqSync (rxData、虚假);%符号率频率偏移估计规范化% freqOffEst = diff (ph值(1:simParams.sps:结束))/(2 *π);%的阴谋(freqOffEst)% (simParams actFreqOff = simParams.cfo /。chanBW / (1 + cfgDVBS2.RolloffFactor));% resCoarseCFO = abs (actFreqOff-freqOffEst(结束));

当剩余载波频率偏移值(resCoarseCFO)是减少到大约0.02或0.03,设置rxParams.frameCountrxParams.coarseFreqLock价值。

“正常”选举委员会的框架,设置rxParams.fineFreqLock值10。为“短”选举委员会的框架,设置rxParams.fineFreqLock值为40。取代细频率误差估计部分中的代码与此代码。

% rxParams。fineFreqCorrVal = HelperDVBS2FineFreqEst (fineFreqIn (rxParams.pilotInd)……% rxParams.numPilots, rxParams.refPilots rxParams.fineFreqCorrVal);% fineFreqEst =角(rxParams.fineFreqCorrVal) /(π* (19));% resFineCFO = abs (actFreqOff-freqOffEst(结束)-fineFreqEst);

重复仿真过程,观察剩余CFO值(resFineCFO在每一帧)。如果细频率估计量不减少剩余载波频率误差大约0.01%的符号率,试着增加rxParams.fineFreqLock属性值。

当首席财务官残值(resFineCFO)是减少到大约0.0001或0.0002,设置rxParams.frameCount + 1rxParams.coarseFreqLock价值。

良好的相位补偿锁相环用于只有16 APSK和32 APSK调制方案与大量的相位噪声。

精炼后同步参数中设置rxParams的误码率仿真结构,执行更新配置。

附录

本例使用这些辅助函数:

参考书目

  1. ETSI标准EN 302 307 - 1 V1.4.1 (2014 - 11)。数字视频广播(DVB);第二代帧结构、信道编码和调制系统广播、互动服务,新闻采集和其他宽带卫星应用程序(DVB-S2)

  2. ETSI标准TR 102中的例子376 - 1(2015 - 11)。是processing V1.2.1数字视频广播(DVB);实现指南第二代系统广播、互动服务,新闻采集和其他宽带卫星应用程序(DVB-S2)

  3. Umberto Mengali,奥尔多北达科他州'Andrea。同步数字接收机的技术。纽约:充气出版社,1997年。

  4. 大肠极、r . De Gaudenzi和阿尔贝托Ginesi。“DVB S2现代算法设计和性能在典型的卫星频道。”国际卫星通信和网络杂志》上22日,没有。3 (2004):281 - 318。

  5. 迈克尔大米,数字通信:一个离散时间的方法。纽约:普伦蒂斯霍尔,2008。

另请参阅

对象

相关的话题