主要内容

Frequency Estimator

Estimate carrier frequency offset (CFO) using open-loop approach

Since R2026a

  • Frequency Estimator block

Libraries:
Wireless HDL Toolbox / Modulation

Description

The Frequency Estimator block estimates the carrier frequency offset (CFO) of an input sequence by using the open-loop approach. This approach uses either a correlation-based algorithm or an FFT-based algorithm for estimation. The block accepts data and a control signal to indicate valid data and outputs frequency offset estimates and a control signal to indicate a valid data output. The block supports both data aided and non-data aided modulation removal methods.

The block supports scalar inputs and provides a hardware-friendly interface and architecture to generate HDL code with HDL Coder™. You can use this block in custom communications systems, such as quadrature phase shift keying (QPSK), and in satellite communications, such as Digital Video Broadcasting - Satellite - Second Generation (DVB-S2) and Consultative Committee for Space Data Systems (CCSDS) receivers, to determine and correct frequency offsets for reliable carrier synchronization.

Examples

Ports

Input

expand all

Input data, specified as a complex-valued scalar.

For correlation-based implementation, the input length must be equal to the averaging length. For FFT-based implementation, the input length must be equal to the FFT length.

The block supports double and single data types for simulation but not for HDL code generation. For HDL code generation, the block supports signed fixed point data type and the word length must be in the range 8 to 32 and the fraction length must be less than or equal to word length – 2.

Data Types: single | double | int8 | int16 | int32 | fixed point
Complex Number Support: Yes

Signal to indicate valid input data, specified as a Boolean scalar.

The control signal at this port indicates when samples from the data and refData input ports are valid. When the value at this port is 1, the block captures the values on the data and refData input ports. When the value at the port is 0, the block ignores the values on the data and refData input ports.

Data Types: Boolean

Reference data, specified as a real or a complex-valued scalar.

The block supports double and single data types for simulation but not for HDL code generation. For HDL code generation, the block supports signed fixed point data type and the word length must be in the range 8 to 32 and the fraction length must be less than or equal to word length – 2.

Dependencies

To enable this port, set the Modulation removal parameter to Data aided.

Data Types: single | double | int8 | int16 | int32 | fixed point
Complex Number Support: Yes

Signal to clear internal states, specified as a Boolean scalar. When this value is 1, the block stops the current calculation and clears all internal states.

Dependencies

To enable this port, select the Enable reset input port parameter.

Data Types: Boolean

Output

expand all

Estimated frequency offset normalized by input sample rate, returned as a real-valued scalar.

Correlation-based Implementation

In correlation-based implementation, the output data type is same as the input data for double and single data types. For the fixed point data type, the output data type is fixdt(1,WL,WL), where WL is the word length.

  • For the non-data aided method, WL is equal to nextpow2(N) + nextpow2(M) + (2 x RWL) + 3, where:

    • M is the modulation order.

    • N is the correlation length.

    • RWL is the modulation removed symbol word length. For this block, RWL value is fixed at 8.

  • For the data aided method, WL is equal to nextpow2(N) + (2 x RWL) + 3.

FFT-based Implementation

In the FFT-based implementation, the output data type is the same as the input data for double and single data types. For the fixed point data type, the output data type is fixdt(1,WL,WL).

  • For the non-data aided method, WL is equal to nextpow2(FFTLength) + nextpow2(M), where:

    • FFTLength is the FFT length.

    • M is the modulation order.

  • For the data aided method, WL is equal to nextpow2(FFTLength).

Data Types: single | double | int16 | int32 | fixed point

Signal to indicate valid output data, returned as a Boolean scalar.

The control signal at this port indicates when the data at the freqEst output port is valid. When estimated samples are available at the freqEst output port, the block sets the value at this port to 1.

Data Types: Boolean

Parameters

expand all

Select the estimation algorithm to estimate the frequency offset from one of these options:

  • Correlation-based — Use the differential detection and averaging for estimation.

  • FFT-based — Use the fast Fourier transform (FFT) for frequency estimation.

For more information, see Algorithms.

Specify the correlation length as a positive integer in the range 1 to 63.

Dependencies

To enable this parameter, set the Estimation algorithm parameter to Correlation-based.

Specify the FFT length as of power of 2 in the range 4 to 65,536.

Dependencies

To enable this parameter, set the Estimation algorithm parameter to FFT-based.

Specify the averaging length as a positive integer less than or equal to 65,536 and greater than the correlation length. The averaging length must be less than or equal to the length of the continuous sequence of known reference symbols when you select the Data aided method.

Dependencies

To enable this parameter, set the Estimation algorithm parameter to Correlation-based.

Select one of these modulation removal methods:

  • Non-data aided — Use this method when you know only the modulation type of the input data. Select the desired modulation type using the Modulation parameter.

  • Data aided — Use this method when you already know the modulated symbols of the input data. Provide the known modulated symbols through the refData input port.

Select the modulation type as one of the following:

  • BPSK — Binary phase shift keying

  • QPSK — Quadrature phase shift keying

  • 8-PSK — 8-phase shift keying

Dependencies

To enable this parameter, set the Modulation removal parameter to Non-data aided.

Select this parameter to enable the reset input port.

Algorithms

expand all

The Frequency Estimator block is designed to estimate the CFO of an observed signal. The block supports FFT-based and correlation-based algorithms to support different requirements.

The observed signal, cn, is represented as

cn=xnej(wn+θ),0nP1.

For the data aided method xn is the known reference symbols such that the magnitude of xn is constant, and for the non-data aided method, xn is the modulated symbols.

  • w=2π(f0fs),

    where f0 is the carrier frequency offset and fs is the sampling frequency of the observed sequence.

  • θ is an unknown constant phase offset.

  • P is considered the averaging length for the correlation-based algorithm and as FFT length for the FFT-based algorithm.

The modulation removed symbol

rn=ejϕ.

For the data aided method,

ϕ=arg(cn)arg(xn)

and for the non-data aided method,

ϕ=arg(cn)<<nextpow2(M).

Where, ø is quantized with the phase quantization word length fixed at 8 and wrapped to lie within the range -π to π.

References

[1] Mengali, Umberto, and Aldo N. D’Andrea. Synchronization Techniques for Digital Receivers. Springer US, 1997. https://doi.org/10.1007/978-1-4899-1807-9.

[2] Luise, M., and R. Reggiannini. “Carrier Frequency Recovery in All-Digital Modems for Burst-Mode Transmissions.” IEEE® Transactions on Communications 43, no. 2/3/4 (Feb. 1995): 1169–78.

Extended Capabilities

expand all

Version History

Introduced in R2026a