主要内容

端到端CCSDS遥测同步和信道编码模拟与射频损伤和校正

本示例展示了如何测量空间数据系统咨询委员会(CCSDS)遥测(TM)系统端到端链的误码率(BER)。仿真链遵循以下两个标准指定的编码和调制方案:

  • TM同步和信道编码- CCSDS 131.0-B-3信道编码方案[1]

  • 无线电频率和调制系统。第1部分地面站和航天器。调制方案用CCSDS 401.0-B-30[2]

简介

来自各种仪器的数据在卫星上生成。这些数据统称为TM数据.CCSDS规定了从卫星向地面站传输TM数据的编码和调制方案。本例模拟了卫星到地面站的端到端通信链路。该示例演示了如何从随机生成的传输帧(tf)生成复杂基带CCSDS TM波形,将射频(RF)损伤引入基带信号,并向受损信号添加加性高斯白噪声(AWGN)。然后,该示例演示了该受损噪声信号的同步、解调和解码,以tf形式得到最终比特。该示例还展示了如何测量CCSDS TM信号的一种配置的误码率与信噪比(SNR)的关系。该图显示了端到端模拟链。

这个例子模拟了这些射频损伤:

  • 载波频率偏移(CFO)

  • 载波相位偏移(CPO)

  • 符号定时偏移(STO)

该图显示了接收端操作。

帧同步和信道解码处理步骤执行这三个任务。

  1. 执行相位模糊解析

  2. 正确地将帧同步到附加的同步标记(ASM)的开始

  3. 执行同步帧的信道解码以获得恢复的TF

该图显示了这三个任务。首先,形成一个ASM序列库。每个序列对应于引入相位模糊的原始ASM值。将这些序列与解调符号关联起来。选择具有最高相关峰值的相位模糊度值。使用这个相关进程执行帧同步。执行相关性的过程在第9.3.7节中进行了说明[3].本例采用简化的Massey算法进行帧同步。在帧同步过程完成后,解决解调符号的完整集上的相位模糊。最后,对这些符号进行信道解码,得到恢复的tf。

仿真参数

本例使用正交相移键控(QPSK)调制方案进行信号生成和接收,使用速率-1/2卷积编码方案进行信道编码。中指定的通道编码方案也可以使用此示例显示的端到端链[1]: RS (Reed-Solomon)码和级联码。对于卷积码和级联码,本例支持1/2和2/3的速率以及不返回零线(NRZ-L)的脉冲码调制(PCM)格式。金宝app本例中支金宝app持的调制方案是二进制相移键控(BPSK)和QPSK。

seeConstellation = true;标志来切换星座的可视化channelCoding =“卷积”%信道编码方案transferFrameLength = 1115;%,单位为字节,对应223*5modScheme =“正交相移编码”调制方案Alpha = 0.35;%根提升余弦滤波器滚脱因子SPS = 8;每个符号的样本百分比

设置用于信号产生的频率和射频损伤值。

fSym = 2e6;%符号速率或波特率,单位为HzCfo = 2e5;% (Hz)

初始化每比特能量与噪声功率比(Eb/N0),用于使用系统参数计算信噪比。

EbN0 = 10;要查看正确的误码率结果,请运行3.2:0.2:5的模拟

初始化参数以终止模拟。在本例中,参数设置为较小的值,以便快速得到结果。增大这些参数值可以得到更平滑的误码率曲线。

maxNumErrors = 1e2;maxNumErrors位错误后停止模拟maxNumBits = 1e5;处理maxNumBits后停止模拟设置maxNumBits = 1e8为更平滑的误码率曲线maxFramesLost = 1e2;maxFramesLost帧丢失后模拟停止

系统参数

初始化端到端链正常运行所需的所有对象。

函数创建具有这些参数的CCSDS TM波形发生器ccsdsTMWaveformGenerator系统对象™。显示对象的属性。

tmWaveGen = ccsdsTMWaveformGenerator(“ChannelCoding”channelCoding,...“NumBytesInTransferFrame”transferFrameLength,...“调制”modScheme,...“RolloffFactor”α,...“SamplesPerSymbol”, sps);disp (tmWaveGen)
ccsdsTMWaveformGenerator with properties: WaveformSource:“同步和通道编码”NumBytesInTransferFrame: 1115 HasRandomizer: true HasASM: true PCMFormat:“NRZ-L”通道编码ChannelCoding:“卷积”ConvolutionalCodeRate:“1/2”数字调制和滤波器调制:“QPSK”PulseShapingFilter:“根提高余弦”RolloffFactor: 0.3500 FilterSpanInSymbols: 10 SamplesPerSymbol: 8使用get显示所有属性

根据Eb/N0计算信噪比,初始化与误码率计算相关的参数。

rate = tmWaveGen.info.ActualCodeRate;M = tmWaveGen.info.NumBitsPerSymbol;numBitsInTF = tmWaveGen.NumInputBits;信噪比= EbN0 + 10*log10(速率)+...10*log10(M) - 10*log10(sps);在引入噪声的同时,将信号功率缩放为1,信噪比值应降低一个SPS因子numSNR =长度(信噪比);ber = 0 (numSNR,1);初始化BER参数bercalc = com . errorrate;

属性创建接收筛选器对象comm.RaisedCosineReceiveFilter系统对象。

b = rcosdesign(alpha,tmWaveGen.FilterSpanInSymbols,sps);% |H(f)| = 1 for |f| < fN(1-alpha) -[2]第2.4.17A节附录1增益= sum(b);rxFilterDecimationFactor = sps/2;rxfilter = com . raisedcosinereceivefilter (...“DecimationFactor”rxFilterDecimationFactor,...“InputSamplesPerSymbol”sps,...“RolloffFactor”α,...“获得”,获得);

模型的频率和相位偏移使用comm.PhaseFrequencyOffset系统对象。在接收机上分两步补偿频率和相位偏移。

  1. 补偿粗频偏移使用comm.CoarseFrequencyCompensator系统对象。

  2. 对细微的频率偏置和相位偏置进行补偿comm.CarrierSynchronizer系统对象。

phaseOffset = pi/8;fqyoffsetobj = com . phasefrequencyoffset (...“FrequencyOffset”首席财务官,...“PhaseOffset”phaseOffset,...“SampleRate”sps * fSym);coarseFreqSync = com . coarsefrequency compensator (...“调制”modScheme,...“FrequencyResolution”, 100,...“SampleRate”sps * fSym);fineFreqSync = com . carriersynchronizer (“DampingFactor”1 /√(2)...“NormalizedLoopBandwidth”, 0.0007,...“SamplesPerSymbol”, 1...“调制”, modScheme);

属性创建可变分数延迟对象dsp。VariableFractionalDelay系统对象,它在传输波形中引入分数延迟。方法创建符号同步对象comm.SymbolSynchronizer执行符号定时同步的系统对象。

varDelay = dsp。VariableFractionalDelay (“InterpolationMethod”“法罗”);fixedDelayVal = 10.2;Kp = 1/(*(1-(²)/4))*cos(* /2);symsyncobj = com . symbolsynchronizer (...“DampingFactor”1 /√(2)...“DetectorGain”Kp,...“TimingErrorDetector”“加德纳(non-data-aided)”...“调制”“PAM /相移键控/ QAM”...“NormalizedLoopBandwidth”, 0.0001,...“SamplesPerSymbol”sps / rxFilterDecimationFactor);

对接收信号进行解调和解码HelperCCSDSTMDemodulator而且HelperCCSDSTMDecoder分别为辅助文件。显示结果对象的属性。

demodobj = helperccsdstm解调器(“调制”modScheme,“ChannelCoding”channelCoding)
demodobj = HelperCCSDSTMDemodulator with properties:调制:“QPSK”PCMFormat:“NRZ-L”ChannelCoding:“卷积”
decoderobj = helpccsdstmdecoder (“ChannelCoding”channelCoding,...“NumBytesInTransferFrame”transferFrameLength,...“调制”modScheme)
decoderobj = HelperCCSDSTMDecoder with properties: ChannelCoding: "convolutional" HasRandomizer: true HasASM: true disableframesynization: 0 DisablePhaseAmbiguityResolution: 0 NumBytesInTransferFrame: 1115 ConvolutionalCodeRate: "1/2" ViterbiTraceBackDepth: 60 ViterbiTrellis: [1x1 struct] ViterbiWordLength: 8 Modulation: "QPSK" PCMFormat: "NRZ-L"

方法初始化星座图对象comm.ConstellationDiagram系统对象来可视化同步器收敛时星座如何演变。

costellationobj = com .星座图;%默认视图为QPSK如果比较字符串(modScheme“BPSK”) costellationobj。ReferenceConstellation = [1, -1]结束

处理链

要模拟端到端链并测量CCSDS TM系统的误码率,请遵循以下步骤。

  1. 生成随机位来形成TF。

  2. 产生TM波形通过传递TF通过ccsdsTMWaveformGenerator系统对象。

  3. 介绍射频损伤,如CFO和符号延迟。

  4. 将AWGN添加到rf受损信号中。这个噪声信号被认为是接收信号。

  5. 对接收到的信号进行粗频校正,粗频校正完成初始粗载频同步。粗频率估计使用“基于fft”算法。

  6. 使用一个匹配的滤波器(根凸起余弦滤波器),具有与应用于发送端相同的配置。由于符号定时同步模块工作在高于符号速率的采样速率下,滤波后的复杂基带样本不会下降到符号速率。它是向下采样,以便每个符号存在至少2个样本。

  7. 通过使用加德纳计时错误检测器(TED)来执行符号定时同步,以消除信号中存在的定时偏移。

  8. 执行载波频率和相位跟踪使用comm.CarrierSynchronizer系统对象,具有2型锁相环(PLL)。该系统对象可以跟踪静止载波频率偏移。System对象还引入了相位模糊,然后由帧同步模块去除。

  9. 在符号计时和载波频率同步完成后,可视化星座。观察星座如何在多次迭代中演化。

  10. 解调接收到的信号,并验证信号的符号速率(即每个符号的样本为1)。

  11. 通过帧同步和信道解码来解决相位模糊,将帧同步到ASM的起始点,然后对同步后的帧进行解码以恢复TF。

numBitsForBER = 8;用于检测哪个帧是同步的numMessagesInBlock = 2^numBitsForBER;isnr = 1:numSNR rng默认的%重置以获得可重复的结果重置(bercalc);Berinfo = bercalc(int8(1), int8(1));在计算BER之前初始化berinfoTfidx = 1;numFramesLost = 0;Prevdectfidx = 0;inputBuffer = 0 (numBitsInTF, 256,“int8”);((berinfo(2) < maxNumErrors) &&...(berinfo(3) < maxNumBits) &&...(numFramesLost < maxFramesLost)) seed = randi([0 2^32-1],1,1);生成可重复模拟的种子发射机端处理bits = int8(randi([0 1],numBitsInTF-numBitsForBER,1));前8位对应TF索引对256求模。当%同步模块包括在内,可以有几个帧%,其中同步暂时丢失,然后再次锁定。在这种情况下,要计算误码率,这8位是有用的%标识哪个TF被解码。如果这8位出现错误%存在,则通过查看差异来检测此错误%之间的连续解码位。如果检测到错误,则%该帧被认为丢失。即使数据链路层是超出本例范围的,数据链路层也有类似的%的机制。在本例中,仅用于计算误码率,此采用%机制。采用的机制% example与CCSDS数据链路层中指定的不一致%的标准。这个机制在物理上是没有规定的%层的CCSDS标准。msg = [de2bi(mod(tfidx-1,numMessagesInBlock),numBitsForBER,“left-msb”)。”;位);inputBuffer(:,mod(tfidx-1,numMessagesInBlock)+1) = msg;tx = tmWaveGen(msg);引入射频损伤cfoimported = fqyoffsetobj(tx);介绍CFOdelay = varDelay(cfoimported,fixedDelayVal);%引入定时偏移Rx = awgn(延迟,信噪比(isnr),“测量”、种子);添加AWGN接收端处理coarsynced = coarseFreqSync(rx);%应用粗频率同步filtered = rxfilter(coarseSynced);通过RRC过滤器对接收样品进行过滤TimeSynced = symsyncobj(过滤);应用符号定时同步fineSynced = fineFreqSync(TimeSynced);跟踪频率和相位%可视化星座如果seeConstellation绘制TF中前1000个符号的星座%说明fineSynced的可变大小不会妨碍的恒定输入大小的要求系统对象。costellationobj (fineSynced (1:1000));结束demodData = demodobj(fineSynced);%解调decoded = decoderobj(demodData);执行相位模糊度解析,%帧同步,和信道解码计算误码率并相应地调整所有缓冲区Dectfidx = bi2de(double(decoded(1:8).'),...“left-msb”) + 1;查看前8位的值如果Tfidx > 30%考虑在处理30个tf后才计算误码率由于前8位的值每增加1%迭代,如果当前解码的差值前8位的十进制值不等于前8位%解码一个,那么它表示帧丢失。如果dectfidx - prevdectfidx ~= 1 numFramesLost = numFramesLost + 1;disp ([帧丢失在tfidx:num2str (tfidx)...”。丢失的总帧数:'num2str (numFramesLost)]);其他的berinfo = bercalc(inputBuffer(:,dectfidx),已解码);如果nnz (inputBuffer (:, dectfidx)解码)disp (['错误发生在tfidx: 'num2str (tfidx)...”。Num错误:'num2str(nnz(inputBuffer(:,dectfidx) -已解码))])结束结束结束Prevdectfidx = dectfidx;%更新tfidxTfidx = Tfidx + 1;结束流(“\ n”);currentBer = berinfo(1);ber(isnr) = currentBer;disp ([“Eb / N0:”num2str (EbN0 (isnr))”。数量:num2str (currentBer)...”。丢失的帧数:'num2str (numFramesLost)]);%重置对象重置(tmWaveGen);重置(fqyoffsetobj);重置(varDelay);重置(coarseFreqSync);重置(rxfilter);重置(symsyncobj);重置(fineFreqSync);重置(demodobj);重置(decoderobj);结束

Eb / N0: 10。数量:0。丢失帧数:0

进一步的探索

本例演示了在几种射频损伤存在的情况下,使用QPSK调制的卷积码的误码率仿真。为了观察不同场景下的端到端仿真链,可以修改与信道编码和调制方案相关的属性。本例中接收机支持的调制方案是BPSK和QPSK。金宝app本例中接收方支持的信道编码方案是none(即无信道编码)、RS、卷积和级金宝app联码。

通过将Eb/N0值设置为3.2:0.2:5来运行完整的误码模拟,并通过设置来观察误码maxNumBits1 e8。取消注释此代码以绘制误码率结果。

% semilogy (EbN0 ber);%网格打开;% xlabel('E_b/N_0 (dB)');% ylabel(“方方面面”);% title('BER plot');

始终为符号定时和载频同步器锁定保留最初的几个tf。本例将丢弃前30个tf。这个数字可以根据接收机工作时的信噪比和同步环路的参数(如环路带宽和阻尼因子)而变化。如果您在低信噪比下操作接收机,并观察到的初始值有较大误差tfidx,则同步器尚未锁定。对于给定的模拟参数,适当地丢弃初始tf。的第二个输出参数comm.CoarseFrequencyCompensator而且comm.CarrierSynchronizer系统对象包含与估计CFO相关的信息,这些信息可用于评估同步循环是否被锁定。

附录

本例使用了以下helper文件:

参考文献

[1] TM同步和信道编码。空间数据系统标准建议书。蓝色的书。问题3。华盛顿特区:CCSDS, 2017年9月。

无线电频率和调制系统——第1部分:地面站和航天器。空间数据系统标准建议书。蓝色的书。30个问题。华盛顿特区:CCSDS, 2020年2月。

TM同步和信道编码-概念和原理概述。关于空间数据系统标准的报告,CCSDS 130.1-G-3。绿色的书。问题3。华盛顿特区:CCSDS, 2020年6月。

另请参阅

对象

相关的话题