主要内容

带射频损伤和校正的端到端CCSDS远程指挥仿真

此示例显示如何测量空间数据系统(CCSDS)电信链路(CCSD)链路协商委员会中丢失的误码率(BER)和通信链路传输单元(CLTU)。该示例为链接添加了射频(RF)前端损伤和添加剂白色高斯噪声(AWGN)。

介绍

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

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

  • 载波频率和相位偏移

  • 副载波频率和相位偏移

  • 时间相抵消

CCSDS TC接收机对损伤进行补偿,并恢复CLTUs中的传输帧(tf)。这个例子支持BPSK, P金宝appCM/PM/双相l和PCM/PSK/PM调制方案。副载波损害仅适用于PCM/PSK/PM调制方案。这些调制方案[8]用于生成CCSDS TC波形,以基带同时正交(IQ)样本的形式。

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

  • PCM / PM / BIPHASE-L:Biphase-L(曼彻斯特)编码数据是在剩余载波上调制的相位。

  • BPSK:利用载波上的非归零(NRZ)数据抑制载波调制。

图中显示了恢复传输帧的处理步骤。

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

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

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

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

  3. 副载波频率和相位跟踪:使用二阶Costas环路[1]用于子载波跟踪。

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

  5. 帧同步和解码:对Bose Chaudhuri Hocquenghem (BCH)码采用硬码元算法,对低密度奇偶校验码采用软码元算法。

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

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

  2. 解码:检测到启动序列时,解码操作开始。码字(CWS)被解码和可选择误解。

  3. CW拒绝或尾序检测:如果解码器具有任何解码故障或解码输出中的任何未校正错误,则来自该失败CW的数据不会被传送到数据链路子层操作。CW被拒绝,并搜索开始序列重新启动。如果存在尾序列,请搜索尾序以检测CLTU的末端。对于BCH解码,采用CW拒绝方法。对于LDPC,使用尾部序列相关或CW抑制。当使用尾序列时,对开始序列的搜索必须在未经校正的CW的开头恢复。当使用尾序列时,搜索可以在未校正CW的末尾恢复。

仿真配置

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

每符号样本%由于符号率低,频率偏移200 KHz,值较大每个符号必须使用% 200样本作为默认值% PCM /相移键控/ 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符号/ s。% -对于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。金宝app本例中支持的范围是[0.2 1.5]。如果strcmpi (cfg。调制,“PCM / PSK / PM”)cfg.symbolrate = symbolrate;结尾cfg。SamplesPerSymbol = sps
cfg = ccsdstcconfig具有属性:dataformat:“cltu”通道码:“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在dB中SNRIn = EsNodB - 10*log10(sps); / /输出来自Es/No的%信噪比(dB

处理链

同时对带有采集序列和单个CLTU的畸变CCSDS TC波形进行处理。为了同步接收到的数据并恢复tf,需要执行这些处理步骤。

  1. 生成TC TF中的位。

  2. 使用交替的序列生成用于采集序列的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的启动并解码TFs。

%初始化变量以存储误码率和丢失的cltu数量bitsErr = 0(长度(SNRIn), 1);cltuErr = 0(长度(SNRIn), 1);%方根上升余弦(SRRC)发送和接收BPSK的过滤对象如果strcmpi (cfg。调制,“BPSK”% SRRC传输过滤器对象txfilter = comm.RaisedCosineTransmitFilter;txfilter。RolloffFactor = 0.35;%过滤器滚边txfilter。FilterSpanInSymbols = 6;%过滤跨度txfilter。OutputSamplesPerSymbol = sps;% SRRC接收过滤对象rxfilter = comm.RaisedCosineReceiveFilter;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;% Biphase-L编码的每个比特有2个符号别的fs = sps * symbolrate;结尾为了iSNR = 1:长度(SNRIn)%设置随机数生成器为默认值rng默认的%环路中的信噪比值SNRdB = SNRIn (iSNR);%初始化错误计算参数totNumErrs = 0;numErr = 0;totNumBits = 0;cltuLost = 0;为了iBurst = 1: numBurst%采集序列800字节acqSeqLength = 6400;= repmat([0;1], 0.5*acqSeqLength, 1);% 1和0交替,0作为起始位,起始位可以是0或1% CCSDS TC采集序列波形% CCSDS TC中指定的最大副载波频率偏移量为%±(2*1e-4)*fsc,其中fsc为副载波频率subfreqoffset = 3.2;%子载波频率偏移(Hz)subPhaseOffset = 4;%副载波相位偏移度%频率偏移量(Hz)如果strcmpi (cfg。调制,“PCM /相移键控/点”%伴随副载波频率和相位偏移的信号调制Acqsymb = Helperccsdstcsubcariermodulation(Acqbits,CFG,Subfreqoffset,亚旋OFFSet);别的%按照CCSDS远程指令中规定的方案进行信号调制%副载波损伤不适用于BPSK和PCM/PM/双相lcfg。DataFormat =“收购序列”;acqSymb = ccsdsTCWaveform (acqBits cfg);cfg。DataFormat =“CLTU”结尾% CCSDS用于CLTU的TC波形transferFramesLength = 640;%传输帧的字节数inbits = randi([0 1],TransferFramesLength,1);TC传输帧的%位如果strcmpi (cfg。调制,“PCM /相移键控/点”% TC同步和信道编码子层操作后的编码位[~, encBits] = ccsdsTCWaveform (inBits cfg);%伴随副载波频率和相位偏移的信号调制waveSymb = HelperCCSDSTCSubCarrierModulation (encBits cfg、subFreqOffset subPhaseOffset);别的waveSymb = ccsdsTCWaveform (inBits cfg);结尾% CCSDS TC波形与采集序列和CLTU波形= [acqSymb; waveSymb];% BPSK的传输过滤如果strcmpi (cfg。调制,“BPSK”使用SRRC滤波器的脉冲整形data =[波形;0 (txfilter.FilterSpanInSymbols 1)];txSig = txfilter(数据);别的txsig =波形;结尾%增加载波频率和相位偏移量freqOffset = 200000;%频率偏移量(Hz)phaseOffset = 20;%相位偏移度如果fs <= (2*(freqOffset+cfg. subcarrierfrequency)) && strcmpi(cfg. subcarrierfrequency))调制,“PCM /相移键控/点”)错误(采样率必须大于频率偏移和副载波频率之和的两倍);elseiffs <=(2 * freqoffset)错误(采样率必须大于频率偏移量的两倍);结尾卵圆孔未闭= comm.PhaseFrequencyOffset (“FrequencyOffset”freqOffset,...“PhaseOffset”phaseOffset,“SampleRate”,FS);txsigoffset = pfo(txsig);%定时偏移作为采样的整数timingErr = 5;%计时错误必须<= 0.4*spsdelayedSig = [0 (timingErr 1); txSigOffset);%通过AWGN通道传递信号rxSig = awgn(复杂的(delayedSig)、SNRdB“测量”,冰兵);%粗载波频率同步如果strcmpi (cfg。调制,“PCM /相移键控/点”% PCM/PSK/PM粗载波频率同步coarseSync = HelperCCSDSTCCoarseFrequencyCompensator (“FrequencyResolution”, 100,...“SampleRate”,FS);别的% BPSK和PCM/PSK/双相l粗载波频率同步coarseSync = comm.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 =过滤器(b 1 [rxCoarse; 0(0.5 *长度(b) (1), 1)));百分比滤波器延迟rxFilt = rxFiltDelayed(0.5 *长度(b)(1) + 1:结束);结尾%精细的频率和相位校正如果strcmpi (cfg。调制,“BPSK”fineSync = comm.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(真正的(rxFine));别的rxSub =实际(rxFine);结尾%时序同步和符号解调timeSync = HelperCCSDSTCSymbolSynchronizer (“SamplesPerSymbol”sps,...“NormalizedLoopBandwidth”, normLoopBWSymbol);[rxSym, timingErr] = timeSync (rxSub);%搜索开始序列和位恢复位= HelperCCSDSTCCLTUBitRecover (rxSym cfg,“纠错”,0.8);bits = bits(〜cellfun(“isempty”比特));%删除空单元格数组内容%填充位的传输帧的长度如果strcmpi (cfg。ChannelCoding,“BCH”) messagellength = 56;别的messageLength = 0.5 * cfg.LDPCCodewordLength;结尾frameLength = messageLength *装天花板(长度(inBits) / messageLength);如果(isempty(bits))||(长度(位{1})〜= frameLength)||(长度(比特)> 1)cltulost = cltulost + 1;别的numerr = sum(abs(double(位{1}(1:lengthits))) -  inbits));totnumerrs = totnumerrs + numerr;totnumbits = totnumbits +长度(inbits);结尾结尾bitsErr (iSNR) = totNumErrs / totNumBits;cltuErr (iSNR) = cltuLost;%显示错误率和clu丢失数流([[“\ nBER的”num2str (SNRdB + 10 * log10 (sps))),' dB Es/No: %1.2e\n'), bitsErr (iSNR));流([['\ nclus丢失的数量'num2str (SNRdB + 10 * log10 (sps))),'db es / no:%d \ n'), cltuErr (iSNR));结尾
误码率8 dB Es/No: 0.00e+00
8db Es/No的clus丢失数:0
BER与8.5 dB Es/No: 0.00e+00
在8.5 dB Es/No时丢失的CLTUs数量:0

数量的结果

当每个e /No点完成时,绘制仿真的误码率结果。bitsErr是一个具有所有模拟e /No点的测量误码率的阵列。图中显示了在1万次传输和e /No点范围内[4 7.5]所得到的仿真结果。

进一步的探索

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

此示例使用针对采集序列长度(800个八位字节)的大值来提高Synchronizers在低SNR值下的性能。该表显示了具有每种调制方案的模拟中使用的归一化环带宽值和用于模拟中的每个符号的样本,用于800个八位字节的采集序列。

表(T = {“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.048e + 06 { 'PCM / PSK / PM'} 0.0002 {[5.0000e调制载波同步子载波同步符号同步样品-05]} 0.0005 200 4000 {'PCM / PM / BIPHase-L'} 0.0003 {不适用'} 0.0005 20 2.56E + 05

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

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

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

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

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

带有PCM/PSK/PM的副载波频率偏移

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

如果strcmpi (cfg。调制,“PCM /相移键控/点”)Estsubcarfreqoffset = diff(subcarpherr)* fs /(2 * pi);rmean = cumsum(estsubcarfreqoffset)./(1:长度(estsubcarfreqoffset)';绘图(Rmean)Xlabel(“符号”) ylabel (“估计副载波频率偏移(Hz)”)标题(“PCM/PSK/PM:副载波频率偏移”网格)结尾

附录

这个例子使用了这些辅助函数:

参考书目

  1. J. Vilà-Valls, M.纳瓦罗,P.克洛斯和M.波提纳尔,《深空通信的同步挑战》,航空和电子系统杂志第34卷第3期1,第16-27页,2019年1月。

  2. M. Baldi等人,“最先进的空间任务远程指挥接收器”,航空和电子系统杂志,第32卷,第2期第6页4-15,2017年6月。

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

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

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

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

  7. 迈克尔大米,数字通信-离散时间方法.纽约:Prentice Hall, 2008。

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

另请参阅

对象

功能

相关的话题