主要内容

端到端的CCSDS远程控制模拟与射频损伤和校正

这个例子展示了如何测量空间数据系统咨询委员会(CCSDS)远程指令(TC)链路中丢失的误码率(BER)和通信链路传输单元(cltu)的数量。该示例将射频前端损伤和加性高斯白噪声(AWGN)添加到链路。

简介

CCSDS TC通常用于从地面站向航天器发送命令。由于航天器接收机的频率不确定性和多普勒频移,CCSDS TC接收机存在较大的频率误差。为了补偿较大的频率偏移,地面站在卫星采集期间在航天器上执行频率载波扫描或使用基于fft的采集。这个例子展示了如何向信号添加200 KHz的频率偏移,并使用基于fft的采集进行校正。

对于每个信噪比(SNR)点,由CLTU和采集序列生成的CCSDS TC波形被射频损伤扭曲并通过AWGN通道。这个例子展示了如何建模这些射频损伤:

  • 载波频率和相位偏移

  • 副载波频率和相位偏移

  • 定时相位偏移

CCSDS TC接收器补偿受损,并恢复cltu中的传输帧(tf)。本例支持BPSK、PCM/PM/biphase-L和PCM/PSK/PM调制方案。子载波损伤仅适用于PCM/PSK/PM调制方案。这些调制方案[8]用于生成CCSDS TC波形,以基带同相正交(IQ)样本的形式。

  • PCM/PSK/PM:按照脉冲编码调制(PCM)格式的线编码信号在正弦波副载波上调制相移键控(PSK),然后在剩余载波上相位调制(PM)。

  • PCM/PM/biphase-L:双相l (Manchester)编码数据在残差载波上进行相位调制。

  • BPSK:通过在载波上使用非归零(NRZ)数据来抑制载波调制。

该图显示了涉及恢复传输帧的处理步骤。

该图显示了接收机的操作,包括射频损伤补偿、解调、帧同步和传输帧的解码。

要从接收到的波形中恢复tf,请遵循以下步骤。

  1. 粗频校正:使用基于fft的算法估计频偏。

  2. 载波频率和相位跟踪:采用二阶锁相环(PLL)[1]用于载波跟踪。

  3. 副载波频率和相位跟踪:使用二级科斯塔斯环[1]用于子载波跟踪。

  4. 符号定时跟踪和解调:使用二阶数据转换跟踪环路(DTTL)[3]模块的定时同步和符号解调[1]

  5. 帧同步和解码:采用基于硬符号的BCH (Bose Chaudhuri Hocquenghem)码算法和基于软符号的LDPC码算法。

该图显示了涉及帧同步和tf解码的处理步骤[4]

  1. 查找开始序列:当信道编码为BCH时,对输入的比特流逐位查找开始序列模式。当信道编码为LDPC时,使用软相关器搜索输入的软符号流以获得起始序列模式。对于BCH,开始序列中允许的错误数为0或1(取决于解码模式)。在错误检测模式下,启动顺序允许的错误数为0。纠错模式下,启动顺序允许的错误数为1。

  2. 解码:当检测到开始序列时,开始解码操作。码字(cw)被解码并可选地去随机化。

  3. 连续波拒绝或尾序列检测:如果解码器有任何解码失败或解码输出中有任何未纠正的错误,来自失败的连续波的数据不会传输到数据链路子层操作。CW被拒绝,重新开始查找起始序列。如果存在尾序列,则搜索该尾序列来检测CLTU的结束。对于BCH译码,采用连续波抑制方法。对于LDPC,使用尾序列相关或CW抑制。当不使用尾序列时,对开始序列的搜索必须在未校正CW的开始处恢复。当使用尾序列时,搜索可以在未校正的CW结束时恢复。

模拟配置

配置每个符号的样本数和符号速率。

每个符号的样本百分比%由于符号率低和200khz频偏,较大的值每个符号必须使用% 200个样本作为默认值% PCM/PSK/PM调制。对于BPSK和PCM/PM/双相l调制,a每个符号使用默认值20个样本(由于中、高%符号速率)。SPS = 20;符号速率每种调制在TC中指定的符号速率为:% -对于PCM/PSK/PM调制,编码的符号速率为4000,2000,1000,% 500、250、125、62.5、31.25、15.625或7.8125个符号/秒(根据% CCSDS TC推荐[6])。% -对于PCM/PM/双相l调制,编码的符号速率为8000,16000,% 32000、64000、128000或256000个符号/秒。% -对于BPSK调制,编码的符号速率为1000,2000,4000,8000,% 16000, 32000, 64000, 128000, 256000, 512000, 1024000,或2048000%符号/ s。symbolRate = 2048000;

当每个符号的采样数为偶数时,用于符号同步的DTTL性能更好。对于每个符号样本数为奇数的情况,计时误差估计在计时偏移完全跟踪时是非零的。非零的计时误差使DTTL偏离完美的跟踪条件。

配置并显示CCSDS TC传输参数。

cfg = ccsdsTCConfig;cfg。ChannelCoding =“BCH”;cfg。调制=“BPSK”;cfg。ModulationIndex = 1.2;适用于PCM/PSK/PM和PCM/PM/双相l。本例中支持的范围为[0.2 1.5]。如果strcmpi (cfg。调制,“PCM /相移键控/点”cfg。SymbolRate = SymbolRate;结束cfg。SamplesPerSymbol = sps
cfg = ccsdsTCConfig with properties: DataFormat: "CLTU" ChannelCoding: "BCH" HasRandomizer: 1调制:"BPSK"

配置接收方参数。

normLoopBWCarrier = 0.005;载波同步器归一化环路带宽normLoopBWSubcarrier = 0.00005;子载波同步器的归一化环路带宽normLoopBWSymbol = 0.005;符号同步器的归一化循环带宽

为了减少环路中的噪声贡献,可以减小环路带宽。由于环路带宽的减小,频率偏移的拉入范围也减小了。当您在同步模块中使用较小的环路带宽时,采集需要较长的时间才能收敛。为了提高低信噪比下的性能,可以减小环路带宽并使用更高的采集序列长度值。如果循环不跟踪偏移量,请考虑增加循环带宽以增加拉入范围。

仿真参数

这个例子为每个符号的能量与噪声功率谱密度比(Es/No)点执行两次突发传输。Es/No可以是向量也可以是标量。对于统计上有效的误码率结果,至少运行1000次传输的模拟。

numBurst = 2;%突发传输数EsNodB = [8 8.5];% Es/No in dBSNRIn = EsNodB - 10*log10(sps);来自Es/No的dB信噪比%

处理链

一次处理具有采集序列和单个CLTU的失真CCSDS TC波形。为了同步接收到的数据并恢复tf,需要执行以下处理步骤。

  1. 生成TC TF中的比特。

  2. 为交替1和0的采集序列生成TC波形。

  3. 对随机位的tf生成CCSDS TC波形。

  4. 使用平方根凸起余弦滤波器应用脉冲整形(仅适用于BPSK调制)。

  5. 应用副载波频率和相位偏移(仅适用于PCM/PSK/PM调制)。

  6. 应用载波频率和相位偏移。

  7. 应用时序相位偏移。

  8. 将传输的信号通过AWGN信道传递。

  9. 纠正粗频和相位偏差。

  10. 对接收信号进行滤波。

  11. 修正载波频率和相位偏移。

  12. 校正副载波频率和相位偏移(仅适用于PCM/PSK/PM调制)。

  13. 修正定时偏移和符号解调。

  14. 检测CLTU的开始并解码tf。

初始化变量以存储误码率和丢失的cltu数量bitsErr = 0(长度(SNRIn),1);cltuErr = 0(长度(SNRIn),1);%平方根余弦(SRRC)用于BPSK的发送和接收过滤对象如果strcmpi (cfg。调制,“BPSK”SRRC发送过滤对象txfilter = com . raisedcosinetransmitfilter;txfilter。RolloffFactor = 0.35;%过滤器滚转txfilter。FilterSpanInSymbols = 6;%滤波器跨度txfilter。OutputSamplesPerSymbol = sps;SRRC接收过滤对象rxfilter = com . raisedcosereceivefilter;rxfilter。RolloffFactor = 0.35;%过滤器滚转rxfilter。FilterSpanInSymbols = 6;%滤波器跨度rxfilter。DecimationFactor = 1;rxfilter。InputSamplesPerSymbol = sps;结束%抽样率如果strcmpi (cfg。调制,“PCM / PM / biphase-L”在CCSDS TC建议[6]第2.2.7节中,编码符号速率为%在双相l编码之前定义。fs = 2*sps*symbolRate;%双相位l编码每个比特有2个符号其他的fs = sps*symbolRate;结束iSNR = 1:长度(SNRIn)将随机数生成器设置为默认值rng默认的%的信噪比值SNRdB = SNRIn(iSNR);初始化错误计算参数totNumErrs = 0;数字r = 0;totNumBits = 0;cltuLost = 0;iBurst = 1:numBurst% 800字节采集序列acqSeqLength = 6400;acqBits = repmat([0;1], 0.5*acqSeqLength, 1);以0作为起始位,开始位可以是0或1% CCSDS采集序列TC波形CCSDS TC中规定的最大子载波频率偏移量为%±(2*1e-4)*fsc,其中fsc为副载波频率subFreqOffset = 3.2;%子载波频率偏移,单位为HzsubPhaseOffset = 4;%子载波相位偏移度%频率偏移,单位为Hz如果strcmpi (cfg。调制,“PCM /相移键控/点”信号调制随副载波频率和相位偏移acqSymb = HelperCCSDSTCSubCarrierModulation(acqBits,cfg,subFreqOffset,subPhaseOffset);其他的信号调制按CCSDS电信指令中规定的方案进行%子载波损伤不适用于BPSK和PCM/PM/biphase-Lcfg。DataFormat =“收购序列”;acqSymb = ccsdstc波形(acqBits,cfg);cfg。DataFormat =“CLTU”结束% CCSDS用于CLTU的TC波形transferFramesLength = 640;传输帧中的字节数inBits = randi([0 1],transferFramesLength,1);TC传输帧的比特数如果strcmpi (cfg。调制,“PCM /相移键控/点”TC同步和信道编码子层操作后的编码位[~,encBits] = ccsdstc波形(inBits,cfg);信号调制随副载波频率和相位偏移waveSymb = HelperCCSDSTCSubCarrierModulation(encBits,cfg,subFreqOffset,subPhaseOffset);其他的waveSymb = ccsdstc波形(inBits,cfg);结束% CCSDS TC波形与采集序列和CLTU波形= [acqSymb;waveSymb];BPSK传输滤波如果strcmpi (cfg。调制,“BPSK”%脉冲整形采用SRRC滤波器data =[波形;zero (txfilter.FilterSpanInSymbols,1)];txSig = txfilter(data);其他的txSig =波形;结束增加载波频率和相位偏移量freqOffset = 200000;%频率偏移,单位为HzphaseOffset = 20;%相位偏移,单位为度如果fs <= (2*(freqOffset+cfg. subcarrierfrequency)) && strcmpi(cfg. subcarrierfrequency)调制,“PCM /相移键控/点”)错误(采样率必须大于频偏和子载波频率之和的两倍);elseiffs <= (2*freqOffset) error(采样率必须大于频率偏移量的两倍);结束pfo = com . phasefrequencyoffset (“FrequencyOffset”freqOffset,...“PhaseOffset”phaseOffset,“SampleRate”fs);txSigOffset = pfo(txSig);计时偏移量为整数样本数timingErr = 5;%定时误差必须<= 0.4*spsdelayedSig = [0 (timingErr,1);txSigOffset];通过AWGN通道传递信号rxSig = awgn(complex(delayedSig),SNRdB,“测量”, iBurst);粗载波频率同步如果strcmpi (cfg。调制,“PCM /相移键控/点”PCM/PSK/PM粗载波频率同步coarseync = HelperCCSDSTCCoarseFrequencyCompensator(“FrequencyResolution”, 100,...“SampleRate”fs);其他的BPSK和PCM/PSK/双相位l粗载波频率同步coarseync = com . coarsefrequencycompensator (...“调制”“BPSK”“FrequencyResolution”, 100,...“SampleRate”fs);结束%粗频偏补偿[rxCoarse,estCoarseFreqOffset] = coarseSync(rxSig);%接收过滤如果strcmpi (cfg。调制,“BPSK”% SRRC接收BPSK过滤rxFiltDelayed = rxfilter(rxCoarse);rxFilt = rxFiltDelayed(rxfilter.FilterSpanInSymbols*sps+1:结束);其他的% PCM/PSK/PM和PCM/PSK/双相l的低通滤波%滤波是用低通滤波器来减小的影响%噪声到载波相位跟踪环路B = fir1(40,0.3);截断频率为0.3*fs/2的40阶低通滤波器的系数rxFiltDelayed = filter(b,1,[rxCoarse; 0 (0.5*(length(b)-1),1)]);去除过滤器延迟rxFilt = rxFiltDelayed(0.5*(length(b)-1)+1:结束);结束%良好的频率和相位校正如果strcmpi (cfg。调制,“BPSK”) fineSync = com . carriersynchronizer (“SamplesPerSymbol”sps,...“调制”“BPSK”“NormalizedLoopBandwidth”, normLoopBWCarrier);其他的fineSync = HelperCCSDSTCCarrierSynchronizer(“SamplesPerSymbol”...cfg。SamplesPerSymbol,“NormalizedLoopBandwidth”, normLoopBWCarrier);结束[rxFine,phErr] = fineSync(rxFilt);%副载波频率和相位校正如果strcmpi (cfg。调制,“PCM /相移键控/点”subSync = HelperCCSDSTCSubCarrierSynchronizer(“SamplesPerSymbol”sps,...“NormalizedLoopBandwidth”, normLoopBWSubcarrier);[rxSub,subCarPhErr] = subSync(real(rxFine));其他的rxSub = real(rxFine);结束计时同步和符号解调时间同步= HelperCCSDSTCSymbolSynchronizer(“SamplesPerSymbol”sps,...“NormalizedLoopBandwidth”, normLoopBWSymbol);[rxSym,timingErr] = timeSync(rxSub);搜索开始序列和位恢复bits = HelperCCSDSTCCLTUBitRecover(rxSym,cfg,“纠错”, 0.8);Bits = Bits (~cellfun(“isempty”比特));删除空单元格数组内容带填充位的传输帧长度如果strcmpi (cfg。ChannelCoding,“BCH”) messageLength = 56;其他的messageLength = 0.5*cfg.LDPCCodewordLength;结束frameLength = messageLength*ceil(length(inBits)/messageLength);如果(isempty(bits)) ||(length(bits {1})~= frameLength) ||(length(bits)>1) cltuLost = cltuLost + 1;其他的数字r = sum(abs(double(比特{1}(1:长度(inBits)))-inBits));totNumErrs = totNumErrs + number r;totNumBits = totNumBits +长度(inBits);结束结束bitsErr(iSNR) = totNumErrs/totNumBits;cltuErr(iSNR) = cltuLost;显示误码率和丢失cltu个数流([[“\nBER with”, SNRdB+10*log10(sps)],' dB Es/No: %1.2e\n'), bitsErr (iSNR));流([['\n丢失的cltu数量', SNRdB+10*log10(sps)],' dB Es/No: %d\n'), cltuErr (iSNR));结束
误码率:8 dB Es/No: 0.00e+00
8 dB Es丢失的cltu个数/No: 0
误码率8.5 dB Es/No: 0.00e+00
8.5 dB Es丢失的cltu个数/No: 0

数量的结果

当每个Es/No点完成时,模拟的误码率结果被绘制出来。bitsErr为所有模拟Es/No点的测量误码率数组。图中为传输10000次,Es/No点在[4 7.5]范围内时的仿真结果。

ber_bpsk_bch_005_005_10000iter.png

进一步的探索

归一化环路带宽和采集序列长度

本例使用较大的采集序列长度(800字节)来提高同步器在低信噪比值时的性能。此表显示了在每种调制方案下,对于800字节的采集序列,模拟中使用的归一化环路带宽值和每个符号的样本。

T = table({“BPSK”“PCM /相移键控/点”“PCM /下午/ biphase-L”}, (0.005;0.0002;0.0003),...“不适用”, 0.00005;“不适用”}, (0.005;0.0005;0.0005),...[20;200;20]、[2048000;4000;256000年),“VariableNames”, {“调制”的载波同步器...“副载波同步器”“符号同步器”“每个符号的样本”“符号率”})
T =3×6表调制载波同步器副载波同步器同步器样品每个符号象征符号率  ____________________ ____________________ _______________________ ___________________ __________________ ___________ {' BPSK的0.005}{“不适用”}0.005 20 2.048 e + 06 {PCM /相移键控/ PM的}{[5.0000 e-05]} 0.0005 0.0002 200 4000 0.0003{的PCM /下午/ biphase-L}{“不适用”}0.0005 20 2.56 e + 05

您可以使用这个示例进一步研究这些同步模块。

  • 载波同步:为了提高相位估计的准确性,可以通过降低归一化带宽来减少对跟踪环路的噪声贡献。减小环路带宽会减小拉入范围,并且采集需要更长的时间才能收敛。

  • 子载波同步:您可以绘制估计的子载波偏移量,以确定更准确的环路带宽。为了帮助提高子载波频率估计的准确性,可以增加采样率和信噪比。

  • 符号同步:符号同步的DTTL在每个符号的采样数较高时表现良好。随着每个符号的采样数增加,分辨率也会增加,DTTL性能也会提高。每个符号采样过多会降低信噪比,影响性能。如果信噪比小于-15 dB(由于每个符号有大量的样本),跟踪循环的性能会受到影响。

对于任何基于锁相环的环路,要在非常低的信噪比下工作,环路带宽必须非常低。这种低环路带宽降低了拉入范围。对于LDPC信道编码的cltu,如果丢失的cltu数量较多,可以减少阈值值,用于在辅助函数中检测开始序列HelperCCSDSTCCLTUBitRecover.您还可以尝试通过只选择与开始序列具有非常高的归一化相关度量的cltu来改善误码率结果。为了最大化帧检测和最小化虚警,本例中使用0.8作为检测阈值。为了减少误报,可以提高检测阈值。增大检测门限,帧检测率降低。

采用PCM/PSK/PM的子载波频偏

CCSDS TC建议中规定的最大副载波频率偏移[6] ± 2 × 10 - 4 f sc ,在那里 f sc 是远程和子载波的频率。您必须分别考虑使用16 KHz或8 KHz正弦波副载波时的频率偏移最大值为3.2 Hz或1.6 Hz。您可以绘制估计的子载波频偏,以分析子载波跟踪的性能。当同步器收敛时,估计值的平均值大约等于输入副载波频偏值3.2 Hz。

如果strcmpi (cfg。调制,“PCM /相移键控/点”) estSubCarFreqOffset = diff(subCarPhErr)*fs/(2*pi);rmean = cumsum(estSubCarFreqOffset)./(1:length(estSubCarFreqOffset))';情节(rmean)包含(“符号”) ylabel (估计子载波频偏(Hz))标题(PCM/PSK/PM:子载波频偏网格)结束

附录

下面的例子使用了这些helper函数:

参考书目

  1. J. Vilà-Valls, M. Navarro, P. Closas和M. Bertinelli,“深空通信中的同步挑战”IEEE航空航天和电子系统杂志,第34卷,no。1,页16-27,2019年1月。

  2. M. Baldi等人,“最先进的太空任务远程遥控接收机”IEEE航空航天和电子系统杂志,第32卷,no。6,页4-15,2017年6月。

  3. S. Million和S. Hinedi,“低信噪比下符号转换密度对数据转换跟踪环路性能的影响,”IEEE国际通信会议论文集《中国日报》,1995,第2卷第1036-1040页。

  4. TC同步与信道编码。空间数据系统标准建议, CCSDS 231.0-b-3。蓝色的书。问题3。华盛顿特区:CCSDS, 2017年9月。

  5. TC同步与信道编码。概念和基本原理概述.冲洗液230.1 g 2。绿色的书。问题2。华盛顿特区:CCSDS, 2012年11月。

  6. 无线电频率和调制系统。第1部分。地面站和宇宙飞船.401.0 b29冲洗液。蓝色的书。问题29。华盛顿特区:CCSDS, 2019年3月。

  7. 迈克尔大米,数字通信-一种离散时间方法.纽约:普伦蒂斯厅,2008年。

  8. 阮,t.m., W.L.马丁,和叶亨杰。剩余载波和抑制载波系统的所需带宽、不需要的发射和数据功率效率——比较研究。IEEE电磁兼容性汇刊37岁的没有。1(1995年2月):34-50。https://doi.org/10.1109/15.350238。

另请参阅

对象

功能

相关的话题

Baidu
map