主要内容

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

此示例显示了如何测量空间数据系统协商委员会(CCSDS)遥测(TM)系统端到端链的误码率(BER)。模拟链遵循这两个标准规定的编码和调制方案:

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

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

介绍

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

本示例对这些射频损伤进行了建模:

  • 载波频率偏移(CFO)

  • 载波相位偏移(CPO)

  • 符号定时偏移(STO)

此图显示接收器端操作。

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

  1. 执行相位模糊度解析

  2. 将帧与连接的同步标记(ASM)的起始点正确同步

  3. 对同步帧进行信道解码,得到恢复的TF

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

模拟参数

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

see=true;%切换星座可视化的标志信道编码=“卷积”;%信道编码方案transferFrameLength=1115;%以字节表示,对应于223*5modScheme=“QPSK”;%调制方案α=0.35;%根升余弦滤波器衰减因子sps=8;%每个符号的样本数

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

fSym=2e6;%符号速率或波特率(以Hz为单位)cfo=2e5;%以赫兹为单位

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

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

初始化参数以终止模拟。在本例中,参数被设置为较小的值以获得快速结果。增加这些参数值以获得更平滑的BER曲线。

最大数值误差=1e2;%MaxNumerErrors位错误后,模拟停止maxNumBits = 1 e5;%处理maxNumBits后,模拟停止%设置maxNumBits=1e8以获得更平滑的BER曲线maxFramesLost=1e2;%maxFramesLost帧丢失后,模拟停止

系统参数

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

使用以下参数创建CCSDS TM波形发生器:CCSDSTM波形发生器系统对象™. 显示对象的属性。

tmWaveGen=CCSDSTMSWaveFormGenerator(“信道编码”,信道编码,...“传输帧中的Numbytes”,传输帧长度,...“调制”,modScheme,...“滚动系数”阿尔法...“SamplesPerSymbol”, sps);disp (tmWaveGen)
CCSDSTM波形发生器,具有以下属性:波形源:“同步和信道编码”Numbytes传输帧:1115 HasRandomizer:true HasASM:true PCM格式:“NRZ-L”信道编码信道编码:“卷积”卷积编码率:“1/2”数字调制和滤波器调制:“QPSK”脉冲形状滤波器:“根升余弦”RolloffFactor:0.3500 FilterSpanInSymbols:10 SamplesPerSymbol:8使用get显示所有属性

从Eb/N0计算SNR,并初始化与BER计算相关的参数。

速率=tmWaveGen.info.Actual减额;M=tmWaveGen.info.NumBitsPerSymbol;numBitsInTF=tmWaveGen.NumInputBits;信噪比=EbN0+10*log10(速率)+...10*log10(M)-10*log10(sps);%当引入噪声时,信号功率被缩放为1,%snr值应减少SPS的一倍numSNR=长度(snr);ber=零(numSNR,1);%初始化BER参数bercalc=通信错误率;

通过使用comm.RaisedCoSinerReceiveFilter系统对象。

b=rcosdesign(alpha、tmWaveGen.FilterSpanInSymbols、sps);%| H(f)|=1表示| f |增益=总和(b);rxFilterDecimationFactor=sps/2;rxfilter=comm.RaisedCoSinerReceiveFilter(...“决策因素”,RxFilterDecisionFactor,...“InputSamplesPerSymbol”,sps,...“滚动系数”阿尔法...“收益”,增益);

通过使用通信相位频率偏移量系统对象。分两步补偿接收机的频率和相位偏移。

  1. 通过使用通信频率补偿器系统对象。

  2. 通过使用通信载波同步器系统对象。

相位偏移=π/8;fqyoffsetobj=通信相位频率偏移量(...“频率偏移”,首席财务官,...“相位偏移”,相位偏移,...“采样器”,sps*fSym);粗略频率同步=通信粗略频率补偿器(...“调制”,modScheme,...“频率分辨率”,100,...“采样器”,sps*fSym);fineFreqSync=通信载波同步器(“阻尼系数”,1/平方米(2),...“标准化环路带宽”,0.0007,...“SamplesPerSymbol”1....“调制”,计划);

通过使用可变分馏层系统对象,它在传输波形中引入分数延迟。使用创建符号同步对象通信符号同步器系统对象,它执行符号定时同步。

varDelay=dsp.VariableFractionalDelay(“插值法”,“法罗”); fixedDelayVal=10.2;Kp=1/(π*(1-((α^2)/4))*cos(π*α/2);symsyncobj=通信SYMBOL同步器(...“阻尼系数”,1/平方米(2),...“检测器增益”,Kp,...“定时探测器”,“加德纳(非数据辅助)”,...“调制”,“PAM/PSK/QAM”,...“标准化环路带宽”,0.0001,...“SamplesPerSymbol”,sps/RxFilterDecisionFactor);

使用辅助解调器helpercsdstmd解码器助手文件。显示结果对象的属性。

解调器(“调制”,modScheme,“信道编码”,信道编码)
DemoObj=HelperCSDSTMDemogrator,具有以下属性:调制:“QPSK”PCM格式:“NRZ-L”信道编码:“卷积”
decoderobj=helpercsdstmdecoder(“信道编码”,信道编码,...“传输帧中的Numbytes”,传输帧长度,...“调制”,计划)
decoderobj=HelperCSDSTMDecoder,具有以下属性:信道编码:“卷积”HasRandomizer:true HasASM:true DisableFrameSynchronization:0 DisablePhaseAmbiguityResolution:0 Numbytes传输帧:1115卷积编码率:“1/2”ViterbiTraceBackDepth:60 Viterbitrallis:[1x1结构]ViterbiWordLength:8调制:“QPSK”PCM格式:“NRZ-L”

使用通信星座图系统对象以可视化同步器会聚时星座的演变。

共星座图bj=共星座图;%默认视图是用于QPSK的如果strcmp(MODMP)方案,“BPSK”)costerlationobj.referencecontellation=[1,-1]终止

加工链

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

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

  2. 通过将TF通过CCSDSTM波形发生器系统对象。

  3. 引入射频损伤,如CFO和符号延迟。

  4. 将AWGN添加到射频受损信号中。该噪声信号被视为接收信号。

  5. 将接收信号通过粗频校正,粗频校正执行初始粗载波频率同步。粗频估计使用“基于FFT的”算法完成。

  6. 使用与变送器端相同配置的匹配滤波器(根升余弦滤波器)。由于符号定时同步模块在高于符号速率的采样速率下工作,因此在滤波之后,复基带样本不被下采样到符号速率。对其进行下采样,以便每个符号至少存在2个样本。

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

  8. 利用该方法实现载波频率和相位跟踪通信载波同步器系统对象,具有2型锁相环(PLL)。该系统对象可以跟踪固定载波频率偏移。该系统对象还引入相位模糊,然后由帧同步模块消除。

  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)...(berinfo(3)...(numFramesLost%生成可重复模拟的种子%发射机端处理位=int8(randi([0 1],numBitsInTF numBitsForBER,1));%前8位对应于TF索引模256。当%包括同步模块,可以有几个帧%同步暂时丢失,然后再次锁定。%在这种情况下,为了计算误码率,这8位有助于%识别解码的TF。如果这8位中有错误%存在,则通过查看差异来检测此错误%在连续解码位之间。如果检测到错误,则%该帧被视为丢失。即使数据链路层%在本例的范围之外,数据链路层具有类似的%在本例中,仅用于计算误码率%采用的机制。本文件中采用的机制%示例不符合CCSDS数据链路层的规定%标准。而这一机制在物理模型中没有具体说明%CCSDS标准层。msg=[de2bi(mod(tfidx-1,numMessagesInBlock),numBitsForBER,“左msb”)。”;位);inputBuffer(:,国防部(tfidx-1 numMessagesInBlock) + 1) =味精;tx = tmWaveGen(味精);%介绍射频损伤cfoInroduced=fqyoffsetobj(tx);%介绍首席财务官延迟=可变延迟(C产生,固定延迟);%引入定时偏移rx=awgn(延迟,信噪比(isnr),“测量”,种子);%添加AWGN%接收机端处理粗同步=粗同步频率(rx);%应用粗频同步过滤=rxfilter(粗同步);%通过RRC过滤器过滤接收到的样本TimeSynced=symsyncobj(已过滤);%应用符号定时同步fineSynced=fineFreqSync(时间同步);%轨道频率和相位%可视化星座如果星座%绘制TF so中前1000个符号的星座图%fineSynced的可变大小不会妨碍%对系统的恒定输入大小的要求%comm.ConstellationDiagram系统对象。costellationobj(精细同步(1:1000));终止解调数据=解调对象j(精同步);%解调decoded=decoderobj(解调数据);%执行相位模糊度解决,%帧同步和信道解码%计算误码率并相应地调整所有缓冲区dectfidx=bi2de(双精度(解码(1:8)),...“左msb”)+1;%请参阅前8位的值如果tfidx>30%考虑在30个TFS处理之后才计算BER。%由于前8位的值每增加一位%迭代,如果当前解码的%前8位的十进制值不等于前8位的十进制值%解码一个,则表示帧丢失。如果dectfidx-prevdectfidx~=1 numFramesLost=numFramesLost+1;disp(['在tfidx处丢失帧:'num2str(tfidx)...“.丢失的总帧数:”num2str(numFramesLost)];其他的berinfo=bercalc(输入缓冲区(:,dectfidx),已解码);如果nnz(输入缓冲区(:,dectfidx)-解码)显示(['在tfidx发生错误:'num2str(tfidx)...“.Num错误:”num2str(nnz(输入缓冲区(:,dectfidx)-解码)))终止终止终止prevdectfidx=dectfidx;%更新tfidxTfidx = Tfidx + 1;终止fprintf(“\n”); currentBer=berinfo(1);误码率(isnr)=当前误码率;disp([“Eb/N0:”num2str(EbN0(isnr))“贝尔先生:”num2str(当前错误)...“.Num帧丢失:”num2str(numFramesLost)];%重置对象复位(tmWaveGen);重置(fqyoffsetobj);复位(可变延迟);复位(同步);复位(rxfilter);复位(symsyncobj);重置(fineFreqSync);复位(解调器);复位(解码);终止

Eb/N0:10.误码率:0.丢失帧数:0

进一步探索

此示例演示了在存在多个射频损伤的情况下,使用QPSK调制的卷积码的BER模拟。要观察不同场景的端到端模拟链,请更改与信道编码和调制方案相关的属性。此示例中接收器支持的调制方案为BPSK和QPSK。在本例中,接收机支持的信道编码方案是无(即,无信道编码)、RS、卷积和级联码。金宝app

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

%符号学(EbN0,ber);%网格化;%xlabel('E_b/N_0(dB)');%ylabel(‘BER’);%标题(“BER地块”);

始终保留符号定时和载波频率同步器要锁定的最初几个TF。此示例丢弃前30个TF。此数字可能会根据接收器工作时的SNR和同步环路的参数(如环路带宽和阻尼因子)而变化。如果在低SNR和在初始值中观察到较大的误差tfidx,则同步器尚未锁定。对于给定的模拟参数,根据需要丢弃初始TFs。的第二个输出参数通信频率补偿器通信载波同步器系统对象包含与估计的CFO相关的信息,可用于评估同步循环是否锁定。

附录

该示例使用以下帮助文件:

参考文献

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

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

[3] TM同步和信道编码-概念和基本原理摘要。关于空间数据系统标准的报告,CCSDS 130.1-G-3。绿皮书。第3期。华盛顿特区:CCSDS,2020年6月。

另见

物体

相关话题