主要内容

Comm.CoarseFrequencyCompensator

补偿PAM,PSK或QAM信号的频率偏移

描述

Comm.CoarseFrequencyCompensator系统对象™ compensates for the frequency offset of received signals using an open-loop technique.

To compensate for the frequency offset of a PAM, PSK, or QAM signal:

  1. 创建Comm.CoarseFrequencyCompensatorobject and set its properties.

  2. Call the object with arguments, as if it were a function.

To learn more about how System objects work, see什么是系统对象?

创建

描述

example

croumfreqcomp= Comm.CoarseFrequencyCompensatorcreates a coarse frequency offset compensator System object. This object uses an open-loop technique to estimate and compensate for the carrier frequency offset in a received signal. For more information about the estimation algorithm options, seeAlgorithms

croumfreqcomp= Comm.CoarseFrequencyCompensator(Name,Value)specifies properties using one or more name-value arguments. For example,调制='QPSK'specifies quadrature phase-shift keying modulation.

特性

展开全部

除非另有说明,否则属性是不可否认,这意味着您在调用对象后不能更改其值。呼叫时锁定对象,然后releasefunction unlocks them.

如果财产是可调, you can change its value at any time.

For more information on changing property values, seeSystem Design in MATLAB Using System Objects

调制类型,指定为一个,

  • 'bpsk'– Binary phase shift keying

  • 'QPSK'– Quadrature phase shift keying

  • 'OQPSK'– Offset quadrature phase shift keying

  • '8psk'– 8-phase shift keying

  • 'PAM'- 脉冲振幅调制

  • 'QAM'- 正交振幅调制

数据类型:char|细绳

Algorithm used to estimate the frequency offset, specified as'FFT-based'or“基于相关”'

Dependency

要启用此属性,请设置调制to'bpsk','QPSK','8psk', or'PAM'。该表显示了调制类型和估计算法的有效组合。

调制 FFT-Based艾尔gorithm Correlation-Based Algorithm
bpsk,QPSK,8psk,PAM 是的 是的
OQPSK,QAM 是的 No

Use the correlation-based algorithm for HDL implementations and for other situations in which you want to avoid using an FFT.

数据类型:char|细绳

Frequency resolution for the offset frequency estimation in hertz, specified as a positive scalar. This property establishes the FFT length used to perform spectral analysis and must be less than the sample rate.

数据类型:双倍的

Maximum measurable frequency offset in hertz, specified as a positive scalar.

该物业的价值必须小于fsamp/M。For more details, see基于相关的估计

Dependency

要启用此属性,请设置Algorithmproperty to“基于相关”'

数据类型:双倍的

Sample rate in samples per second, specified as a positive scalar.

数据类型:双倍的

Samples per symbol, specified as an even positive integer greater than or equal to4

Dependency

要启用此属性,请设置调制to'OQPSK'

Usage

描述

example

y= coolfreqcomp(x)returns a signal that compensates for the carrier frequency offset of the input signal.

example

[y,estimate] = coolfreqcomp(x)returns a scalar estimate of the frequency offset.

Input Arguments

展开全部

输入信号,指定为列向量。

数据类型:single|双倍的

输出参数

展开全部

补偿输出信号,作为复杂的列向量返回,具有相同的维度和数据类型与输入x

频率偏移的估计,返回为标量。

Object Functions

To use an object function, specify the System object as the first input argument. For example, to release system resources of a System object namedobj,使用此语法:

release(obj)

展开全部

info 有关粗频率补偿器的特征信息
clone 创建重复系统对象
isLocked 确定是否系统对象正在使用
Run系统对象algorithm
release Release resources and allow changes to系统对象property values and input characteristics
重置 重置内部状态系统对象

例子

collapse all

补偿在嘈杂的QPSK信号上施加的4 kHz频率偏移。

Set up the example parameters.

nsym = 2048;%输入符号数量sps = 4;% Samples per symbolnSamp = nSym*sps;样品数量的%fs = 80000;% Sampling frequency (Hz)

创建一个平方根凸起的余弦传输过滤器。

txfilter = comm.RaisedCosineTransmitFilter(。。。'RolloffFactor',0.2,。。。“ Filterspaninsymbols”,8,。。。'OutputSamplesPerSymbol',sps);

克雷亚te a phase frequency offset object to introduce the 4 kHz frequency offset.

freqOffset = comm.PhaseFrequencyOffset(。。。“频率offset”,-4000,。。。'采样率',fs);

克雷亚te a coarse frequency compensator object to compensate for the offset.

freqComp = comm.CoarseFrequencyCompensator(。。。'Modulation','QPSK',。。。'采样率',fs,。。。“频率分辨”,1);

生成QPSK符号,过滤调制数据,通过AWGN通道传递信号,然后应用频率偏移。

data = randi([0 3],nSym,1); modData = pskmod(data,4,pi/4); txSig = txfilter(modData); rxSig = awgn(txSig,20,“测量”);offsetData = freqoffset(rxsig);

Compensate for the frequency offset using the coarse frequency compensator. When the frequency offset is high, applying coarse frequency compensation prior to receive filtering is benefitial because filtering suppresses energy in the useful spectrum.

[ERSSEDDATA,ESTFREQOFFSET] = FREQCOMP(OFFSETDATA);

Display the estimate of the frequency offset.

estFreqOffset
estFreqOffset = -4.0001e+03

Return information about the coarse frequency compensator System object. To obtain the FFT length, you must call coarse frequency compensator System object prior to calling theinfoobject function.

freqcompinfo =info(freqComp)
freqcompinfo =struct with fields:FFTLength: 131072 Algorithm: 'FFT-based'

创建一个频谱分析仪对象并绘制偏移和补偿光谱。验证补偿信号在0 Hz时具有中心频率,并且偏移信号的中心频率为-4 kHz。

specAnal = dsp.SpectrumAnalyzer('采样率',fs,'ShowLegend',true,。。。“频道名称”,{'Offset Signal','Compensated Signal'}); specAnal([offsetData compensatedData])

Figure Spectrum Analyzer contains an axes object and other objects of type uiflowcontainer, uimenu, uitoolbar. The axes object contains 2 objects of type line. These objects represent Offset Signal, Compensated Signal.

使用载体同步器在嘈杂的QAM信号中纠正相位和频率偏移。然后使用载体同步器和粗频薪补偿器校正偏移量。

Set the example parameters.

fs = 10000;% Symbol rate (Hz)sps = 4;% Samples per symbolM = 16;% Modulation orderk = log2(M);% Bits per symbolEbNo = 20;% Eb/No (dB)SNR = convertSNR(EbNo,"ebno",BitsPerSymbol=k,SamplesPerSymbol=sps);

克雷亚te a constellation diagram object to visualize the effects of the offset compensation techniques. Specify the constellation diagram to display only the last 4000 samples.

constdiagram = comm.constellationdiagram(。。。“参考结构化”,Qammod(0:M-1,M),。。。“ Samplespersymbol”,sps,。。。“符号StodisPlaySource”,'财产',。。。'SymbolsToDisplay',4000,。。。'XLimits',[-5 5],。。。'YLimits',[-5 5]);

Introduce a frequency offset of 400 Hz and a phase offset of 30 degrees.

phaseFreqOffset = comm.PhaseFrequencyOffset(。。。“频率offset”,400,。。。'PhaseOffset',30,。。。'采样率',fs);

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

data = randi([0 M-1],10000,1);modsig = qammod(data,m);

克雷亚te a raised cosine filter object and filter the modulated signal.

txfilter = comm.RaisedCosineTransmitFilter(。。。'OutputSamplesPerSymbol',sps,。。。'Gain',SQRT(SPS));txsig = txfilter(modsig);

Apply the phase and frequency offset, and then pass the signal through the AWGN channel.

freqOffsetSig = phaseFreqOffset(txSig); rxSig = awgn(freqOffsetSig,SNR);

通过使用载体同步器对信号进行良好的频率校正。

fineSync = comm.CarrierSynchronizer(。。。'阻尼因子',0.7,。。。“标准化卢比窗口”,0.005,。。。“ Samplespersymbol”,sps,。。。'Modulation','QAM');rxData = fineSync(rxSig);

Display the constellation diagram of the last 4000 symbols.

constdiagram(rxData)

Even with time to converge, the spiral nature of the plot shows that the carrier synchronizer has not yet compensated for the large frequency offset. The 400 Hz offset is 1% of the sample rate.

Repeat the process with a coarse frequency compensator inserted before the carrier synchronizer.

克雷亚te a coarse frequency compensator to reduce the frequency offset to a manageable level.

coarseSync = comm.CoarseFrequencyCompensator(。。。'Modulation','QAM',。。。“频率分辨”,1,。。。'采样率',fs*sps);

Pass the received signal to the coarse frequency compensator and then to the carrier synchronizer.

syncoarse = coarsync(rxsig);rxData = finesync(Synccoarse);

Plot the constellation diagram of the signal after coarse and fine frequency compensation. The received data now aligns with the reference constellation.

constdiagram(rxData)

Algorithms

展开全部

参考

[1] Luise,M。和R. Reggiannini。“爆发模式传输的全数字调制解调器中的载波频率恢复。”IEEE®Transactions on Communications,卷。43,不。2/3/4,1995年2月,第1169–78页。

[2] Wang, Y., et al. “Non-Data-Aided Feedforward Carrier Frequency Offset Estimators for QAM Constellations: A Nonlinear Least-Squares Approach.”EURASIP Journal on Advances in Signal Processing,卷。2004, no. 13, Dec. 2004, p. 856139.

[3] Nakagawa, Tadao, et al. “Non-Data-Aided Wide-Range Frequency Offset Estimator for QAM Optical Coherent Receivers.”Optical Fiber Communication Conference/National Fiber Optic Engineers Conference 2011, OSA, 2011, p. OMJ1.

[4] Olds, Jonathan.Designing an OQPSK demodulator

扩展功能

Version History

Introduced in R2015b