主要内容

comm.SymbolSynchronizer

正确的符号计时时钟倾斜

描述

comm.SymbolSynchronizer系统对象™用于PAM、PSK、QAM和OQPSK调制方案,纠正单载波发射机和接收机之间的符号定时时钟偏差。有关更多信息,请参见符号同步概述

请注意

输入信号在采样率基础上工作,输出信号在符号率基础上工作。

要纠正符号定时时钟倾斜:

  1. 创建comm.SymbolSynchronizer对象并设置其属性。

  2. 调用带有参数的对象,就像调用函数一样。

要了解更多关于System对象如何工作的信息,请参见什么是系统对象?

创建

描述

例子

symbolSync= comm.SymbolSynchronizer创建一个符号同步器系统对象,用于纠正单载波发射机和接收机之间的时钟偏差。

例子

symbolSync= comm.SymbolSynchronizer (的名字价值使用一个或多个名值对设置属性。例如,comm.SymbolSynchronizer(“调制”、“OQPSK”)为oqpsk调制的输入信号配置符号同步器系统对象。将每个属性名用引号括起来。

可调DampingFactorNormalizedLoopBandwidth,DetectorGain属性使您能够在模拟循环中优化同步器性能而不释放对象。

属性

全部展开

除非另有说明,属性为nontunable,这意味着在调用对象后不能更改它们的值。对象在调用时锁定,而释放函数解锁它们。

如果属性是可调,您可以随时更改其值。

有关更改属性值的更多信息,请参见在MATLAB中使用系统对象设计系统

调制类型,指定为PAM /相移键控/ QAM的“OQPSK”

可调:没有

数据类型:字符|字符串

定时误差检测器方法,指定为零交点(decision-directed)加德纳(non-data-aided)早期的后期(non-data-aided),或Mueller-Muller (decision-directed).此属性指定同步器中使用的定时错误检测方案。有关更多信息,请参见定时错误检测(TED)

可调:没有

数据类型:字符|字符串

每个符号的样本,指定为大于1的整数。有关更多信息,请参见Nsps循环过滤

可调:没有

数据类型:

回路滤波器的阻尼因子,指定为正标量。有关更多信息,请参见ζ循环过滤

可调:是的

数据类型:|

环路滤波器的归一化带宽,指定为(0,1)范围内的标量。环路带宽归一化为输入信号的采样率。有关更多信息,请参见BnT年代循环过滤

请注意

若要确保符号同步器锁定,请设置NormalizedLoopBandwidth属性的值小于0.1

可调:是的

数据类型:|

相位检波器增益,指定为正标量。有关更多信息,请参见Kp循环过滤

可调:是的

数据类型:|

使用

对于R2016b之前的版本,请使用一步函数来运行系统对象算法。关于一步是您创建的对象,后面跟着本节中显示的参数。

例如,Y = step(obj,x)而且Y = obj(x)执行等效操作。

描述

符号= symbolSync (样品基于输入样本和输出同步符号,修正单载波发射机和接收机之间的符号定时时钟偏差。

  • 输入信号以采样率为基础,输出信号以符号率为基础。

  • 您可以调优DampingFactorNormalizedLoopBandwidth,DetectorGain属性以改进同步器性能。

输入参数

全部展开

输入样本,指定为PAM-、PSK-、QAM-或oqpsk调制的单载波信号的标量或列向量。

数据类型:|
复数支持:是的

输出参数

全部展开

同步符号,作为可变大小的列向量返回。输出符号从输入示例继承数据类型。对于有维度的输入N桑普-by-1表示输出有维数N信谊1。N信谊近似等于N桑普除以Nsps,在那里Nsps等于SamplesPerSymbol属性值。的最大输出大小将截断输出长度 N 桑普 N sps × 1.1

每个输入样本的估计计时误差,作为[0,1]范围内的标量或[0,1]范围内元素的列向量返回。估计的定时误差归一化到输入采样率。timingErr是否具有与输入相同的数据类型和大小样品

对象的功能

要使用对象函数,请将System对象指定为第一个输入参数。例如,释放名为obj,使用以下语法:

发行版(obj)

全部展开

克隆 创建重复的系统对象
isLocked 确定系统对象正在使用中
一步 运行系统对象算法
释放 释放资源并允许更改系统对象属性值和输入特征
重置 的内部状态重置系统对象

例子

全部折叠

纠正有噪声的qpsk调制信号上的固定符号计时错误。检查同步接收信号的误码率。

初始化仿真参数。

M = 4;% QPSK的调制顺序nSym = 5000;包中符号的数量SPS = 4;每个符号的样本百分比timingErr = 2;%计时误差样本信噪比= 15;信噪比% (dB)

创建根凸起余弦(RRC)传输和接收过滤器系统对象。

txfilter = com . raisedcosinetransmitfilter (...“OutputSamplesPerSymbol”, sps);rxfilter = com . raisedcosinereceivefilter (...“InputSamplesPerSymbol”sps,“DecimationFactor”2);

创建一个符号同步器系统对象来纠正计时错误。

symbolSync = comm.SymbolSynchronizer;

生成随机M-ary符号并应用QPSK调制。

data = randi([0 M-1],nSym,1);modSig = pskmod(data,M,pi/4);

创建一个延迟对象,引入2个样本的固定计时误差。由于发射RRC滤波器每个符号输出4个样本,1个样本相当于1/4的符号通过固定的延迟和通道。

fixedDelay = dsp.Delay(timingErr);fixedDelaySym = ceil(fixedDelay.Length/sps);%将固定延迟四舍五入到符号中最接近的整数

通过发射RRC滤波器对调制信号进行滤波txfilter对象。方法应用信号计时错误fixedDelay对象。

txSig = txfilter(modSig);delaySig = fixedDelay(txSig);

将延迟信号通过信噪比为15 dB的AWGN通道传递。

rxSig = awgn(delaySig,snr,“测量”);

通过接收RRC滤波器对调制信号进行滤波rxfilter对象。显示散点图。由于时序误差,接收到的信号与预期的QPSK参考星座不一致。

rxSample = rxfilter(rxSig);散点图(rxSample(1001:结束),2)

图散点图包含一个坐标轴对象。带有标题散点图的axis对象包含一个类型为line的对象。该对象表示通道1。

方法来纠正符号计时错误symbolSync对象。显示散点图。同步信号现在与预期的QPSK星座对齐。

rxSync = symbolSync(rxSample);散点图(rxSync(1001:结束),2)

图散点图包含一个坐标轴对象。带有标题散点图的axis对象包含一个类型为line的对象。该对象表示通道1。

解调QPSK信号。

recData = pskdemod(rxSync,M,pi/4);

用符号计算由于固定延迟和发送和接收RRC滤波器造成的总系统延迟。

sysDelay = dsp。延迟(fixedDelaySym + txfilter)FilterSpanInSymbols / 2 +...rxfilter.FilterSpanInSymbols / 2);

考虑系统延迟,计算误码率。

[numErr,ber] = biterr(sysDelay(data),recData)
numErr = 10
Ber = 1.0000e-03

纠正有噪声BPSK传输信号上的固定符号计时错误。检查同步接收信号的误码率。

初始化仿真参数。

M = 2;% BPSK的调制顺序nSym = 20000;包中符号的数量SPS = 4;每个符号的样本百分比timingErr = 2;%计时误差样本信噪比= 15;信噪比% (dB)

创建根凸起余弦(RRC)传输和接收过滤器系统对象。

txfilter = com . raisedcosinetransmitfilter (...“OutputSamplesPerSymbol”, sps);rxfilter = com . raisedcosinereceivefilter (...“InputSamplesPerSymbol”sps,“DecimationFactor”1);

创建一个符号同步器系统对象™来纠正计时错误。

symbolSync = comm.SymbolSynchronizer(...“SamplesPerSymbol”sps,...“NormalizedLoopBandwidth”, 0.01,...“DampingFactor”, 1.0,...“TimingErrorDetector”早期的后期(non-data-aided)”);

生成随机数据符号并应用BPSK调制。

data = randi([0 M-1],nSym,1);modSig = pskmod(data,M);

创建一个延迟对象,引入2个样本的固定计时误差。由于发射RRC滤波器每个符号输出4个样本,1个样本相当于1/4的符号通过固定的延迟和通道。

fixedDelay = dsp.Delay(timingErr);fixedDelaySym = ceil(fixedDelay.Length/sps);%将固定延迟四舍五入到符号中最接近的整数

通过发射RRC滤波器对调制信号进行滤波txfilter对象。方法应用信号计时错误fixedDelay对象。

txSig = txfilter(modSig);delayedSig = fixedDelay(txSig);

将延迟信号通过AWGN通道传递。

rxSig = awgn(delayedSig,snr,“测量”);

通过接收RRC滤波器对调制信号进行滤波rxfilter对象。显示散点图。由于时序误差,接收到的信号与预期的BPSK参考星座不一致。

rxSample = rxfilter(rxSig);散点图(rxSample(10000:结束),2)

图散点图包含一个坐标轴对象。带有标题散点图的axis对象包含一个类型为line的对象。该对象表示通道1。

方法来纠正符号计时错误symbolSync对象。显示散点图。同步信号现在与预期的BPSK星座对齐。

rxSync = symbolSync(rxSample);散点图(rxSync(10000:结束),2)

图散点图包含一个坐标轴对象。带有标题散点图的axis对象包含一个类型为line的对象。该对象表示通道1。

解调BPSK信号。

recData = pskdemod(rxSync,M);

用符号计算由于固定延迟和发送和接收RRC滤波器造成的总系统延迟。

sysDelay = dsp。延迟(fixedDelaySym + txfilter)FilterSpanInSymbols / 2 +...rxfilter.FilterSpanInSymbols / 2);

考虑系统延迟,计算误码率。

[numErr1,ber1] = biterr(sysDelay(data),recData)
numErr1 = 8
Ber1 = 4.0000e-04

方法修正符号计时和频率偏移误差comm.SymbolSynchronizer而且comm.CarrierSynchronizer系统对象。

配置

初始化仿真参数。

M = 16;调制顺序%nSym = 2000;包中符号的数量SPS = 2;每个符号的样本百分比spsFilt = 8;用于过滤器和通道的每个符号的%样本spsSync = 2;用于同步器的每个符号的%样本lenFilt = 10;% RRC过滤器长度

为发射器和接收器创建一对匹配的根凸起余弦(RRC)过滤器系统对象。

txfilter = com . raisedcosinetransmitfilter (...FilterSpanInSymbols = lenFilt,...OutputSamplesPerSymbol = spsFilt,...获得=√spsFilt);rxfilter = com . raisedcosinereceivefilter (...FilterSpanInSymbols = lenFilt,...InputSamplesPerSymbol = spsFilt,...DecimationFactor = spsFilt / 2,...获得=√1 / spsFilt);

创建一个相频偏移系统对象来引入100赫兹的多普勒频移。

多普勒= com . phasefrequencyoffset...FrequencyOffset = 100,...PhaseOffset = 45,...SampleRate = 1 e6);

创建一个变量delay System对象来引入定时偏移量。

varDelay = sp. variablefractionaldelay;

创建载波和符号同步器系统对象,分别校正多普勒频移和定时偏移。

carrierSync = com . carriersynchronizer (...SamplesPerSymbol = spsSync);symbolSync = comm.SymbolSynchronizer(...TimingErrorDetector =早期的后期(non-data-aided)”...SamplesPerSymbol = spsSync);

创建星座图系统对象以查看结果。

refConst = qammod(0:M-1,M,UnitAveragePower=true);星座图(...ReferenceConstellation = refConst,...SamplesPerSymbol = spsFilt标题=接收信号的);cdDoppler = com . constellation diagram (...ReferenceConstellation = refConst,...SamplesPerSymbol = spsSync,...Title =“频率校正信号”);星座图(...ReferenceConstellation = refConst,...SamplesPerSymbol = spsSync,...Title =“频率和定时同步信号”);

主处理回路

主处理循环:

  • 生成随机符号并应用QAM调制。

  • 对调制信号进行滤波。

  • 应用频率和定时偏移量。

  • 将发送的信号通过AWGN通道。

  • 过滤接收到的信号。

  • 校正多普勒频移。

  • 修正定时偏移量。

k = 1:15 data = randi([0 M-1],nSym,1);modSig = qammod(data,M,UnitAveragePower=true);txSig = txfilter(modSig);txDoppler =多普勒(txSig);txDelay = varDelay(txDoppler,k/15);rxSig = awgn(txDelay,25);rxFiltSig = rxfilter(rxSig);rxCorr = carrierSync(rxFiltSig);rxData = symbolSync(rxCorr);结束

可视化

绘制接收信号星座图、频率校正信号星座图、频率定时同步信号星座图。在接收到的信号中无法识别特定的星座点,在频率校正信号中只能识别部分星座点。然而,时间和频率同步信号与预期的QAM星座点对齐。

cdReceive (rxSig)

cdDoppler (rxCorr)

cdTiming (rxData)

修正有噪声的8-PSK信号上单调递增的符号计时错误。显示归一化计时误差。

初始化仿真参数。

M = 8;调制顺序%nSym = 5000;包中符号的个数SPS = 2;每个符号的样本百分比nsam = sps*nSym;一个包中样品的数量

创建根凸起余弦(RRC)传输和接收过滤器系统对象。

txfilter = com . raisedcosinetransmitfilter (...“OutputSamplesPerSymbol”, sps);rxfilter = com . raisedcosinereceivefilter (...“InputSamplesPerSymbol”sps,...“DecimationFactor”1);

创建一个可变的分数延迟系统对象™,引入一个单调递增的计时误差。

varDelay = sp. variablefractionaldelay;

创建一个符号同步器系统对象来纠正计时错误。

symbolSync = comm.SymbolSynchronizer(...“TimingErrorDetector”“Mueller-Muller (decision-directed)”...“SamplesPerSymbol”, sps);

生成随机8 ary符号并应用8-PSK调制。

data = randi([0 M-1],nSym,1);modSig = pskmod(data,M,pi/8);

通过凸起的余弦发射滤波器对调制信号进行滤波,并施加单调增加的定时延迟。

vdelay = (0:1/nSamp:1-1/nSamp)';txSig = txfilter(modSig);delaySig = varDelay(txSig,vdelay);

将延迟信号通过信噪比为15 dB的AWGN通道传递。

rxSig = awgn(delaySig,15,“测量”);

通过接收RRC滤波器对调制信号进行滤波。显示散点图。由于时序误差,接收到的信号与预期的8-PSK参考星座不一致。

rxSample = rxfilter(rxSig);散点图(rxSample, sps)

图散点图包含一个坐标轴对象。带有标题散点图的axis对象包含一个类型为line的对象。该对象表示通道1。

方法来纠正符号计时错误symbolSync对象。显示散点图。同步信号现在与预期的8-PSK星座对齐。

[rxSym,tError] = symbolSync(rxSample);散点图(rxSym (1001)):

图散点图包含一个坐标轴对象。带有标题散点图的axis对象包含一个类型为line的对象。该对象表示通道1。

绘制定时误差估计。随着时间的推移,归一化计时误差增加到1个样本。

图图(vdelay,tError)“时间(s)”) ylabel (“计时误差(样本)”

图中包含一个axes对象。axis对象包含一个类型为line的对象。

更多关于

全部展开

参考文献

[1]大米,迈克尔。数字通信:离散时间方法.上马鞍河,新泽西州:普伦蒂斯大厅,2008年。

[2]蒙加利,翁贝托和奥尔多·n·德安德里亚。数字接收机同步技术。纽约:全会出版社,1997年。

扩展功能

版本历史

在R2015a中介绍

另请参阅

对象

Baidu
map