Engee documentation

Custom FM Waveform

A signal generator with custom frequency modulation.

blockType: CustomFMWaveform

Path in the library:

/Phased Array Systems/Waveforms/Custom FM Waveform

Description

Block Custom FM Waveform generates a pulse signal with a custom frequency modulation with a preset pulse duration, pulse repetition rate and frequency deviation. The output signal of the unit is an integer number of pulses or an integer number of samples.

Ports

Entrance

FreqOffset — frequency offset
scalar

Frequency offset in Hz in the form of a scalar.

Dependencies

To use this port, set the Source of Frequency Offset parameter to Input port.

Data types: Float64

Output

Y — pulse signal
complex vector

The output signal of the block, returned as a complex vector.

Data types: Float64

Support for complex numbers: Yes

PRF — pulse repetition rate
positive scalar

The pulse repetition rate returned as a positive scalar.

Dependencies

To use this port, set the Output signal format parameter to Pulses, and then check the box for the Enable PRF output parameter.

Data types: Float64

Coeff — coefficients of the matched pass filter:q[<br>] vector | the matrix

Coefficients of the matched filter, returned as a vector or matrix.

Dependencies

To use this port, select the Enable Matched Filter Coefficients Output checkbox.

Data types: Float64

Support for complex numbers: Yes

Parameters

Sample rate (Hz) — sampling rate of the output signal
1e6 (default) | positive scalar

The sampling frequency of the signal in the form of a positive scalar. The units of measurement are Hz.

Ratio Sample rate (Hz) for each element of the vector Pulse repetition frequency (Hz) must be an integer.

This restriction is equivalent to the requirement that the pulse repetition interval it was an integer multiple of the sampling interval.

Programmatic use

Block parameter

SampleRate

Values

positive scalar

By default

1e6

Method to specify pulse duration — pulse duration as time or fill factor (duty cycle)
Pulse width (default) | Duty cycle

Pulse duration setting method, options to choose from:

  • Pulse width — the pulse duration is set using the Pulse width(s) parameter.

  • `Duty cycle' is the fill factor, where the pulse duration is calculated from the parameter values Pulse repetition frequency (Hz) and Duty Cycle.

Programmatic use

Block parameter

Method

Values

Pulse width | Duty cycle

By default

Pulse width

Pulse width (s) — pulse duration
50e−6 (default) | positive scalar

The pulse duration in seconds, set as a positive scalar value.

Product Pulse width (s) and Pulse repetition frequency (Hz) must be less than or equal to one. This limitation ensures that the pulse width is less than the pulse repetition interval.

Dependencies

To use this parameter, set the Method to specify pulse duration parameter to Pulse width.

Programmatic use

Block parameter

PulseWidth

Values

string

By default

50e−6

Duty cycle — fill factor (duty cycle)
0.5 (default) | scalar in the range [0,1]

The fill factor, set as a scalar in the range .

Dependencies

To use this parameter, set the Method to specify pulse duration parameter to Duty cycle.

Programmatic use

Block parameter

DutyCycle

Values

scalar in the range [0,1]

By default

0.5

Pulse repetition frequency (Hz) — pulse repetition frequency
1e4 (default) | positive scalar

Pulse repetition rate , specified as a scalar or string vector. Pulse repetition interval is the inverse of the pulse repetition rate .

The value of Pulse repetition frequency (Hz) must satisfy the following constraints:

  • Product Pulse width (s) and Pulse repetition frequency (Hz) must be less than or equal to one. This limitation ensures that the pulse width is less than one pulse repetition interval. For a phase-coded signal, the pulse duration is equal to the product of the duration of one chip and the number of chips.

  • The ratio of the sampling frequency to any Pulse repetition frequency element must be an integer. This restriction is equivalent to requiring that the number of samples in a single pulse repetition interval be an integer.

You can select the value using the block parameters:

  • To implement a permanent , set the Pulse repetition frequency (Hz) as a positive scalar.

  • To implement a stepwise , specify Pulse repetition frequency (Hz) as a string vector with positive values. After the signal reaches the last element of the vector, the process continues cyclically from the first element of the vector. When stepwise, the time between successive output pulses cycles through successive vector values .

The number of output samples is fixed if the Output signal format parameter is set to `Samples'. If it uses a changing if the Output signal format has the value `Pulses', then the number of output samples may vary.

Programmatic use

Block parameter

PRF

Values

positive scalar

By default

1e4

Frequency modulation — pass signal frequency modulation function:q[<br>] [0, 1e5] (default) | a real vector of length M | function descriptor | array of cells

The frequency modulation function of a signal, defined as a real vector of length , a function descriptor or an array of cells.

  • If the value of Frequency Modulation is a vector, then it sets a sample of instantaneous frequency values in points in the form of . For -th pulse with the start time and duration , the instantaneous frequency at a moment in time

equal to , where and . Instantaneous frequencies between time and are found by linear interpolation between and . The received signal with user frequency modulation can be considered as a piecewise signal with linear frequency modulation, consisting of linear sections of equal duration.

  • If the value Frequency Modulation is a function descriptor, then the function must have the following syntax: , where — instantaneous frequency at a moment in time , — the time at which the instantaneous frequency needs to be calculated. Values in they range from 0 to the pulse width.

  • If the value of Frequency Modulation is an array of cells, then the first cell must be a function descriptor, as indicated above. The remaining entries in the cell array are additional input arguments to the function, if any.

Programmatic use

Block parameter

FreqModulation

Values

substantial vector of length M | function descriptor | array of cells

By default

[0, 1e5]

Envelope function — setting the envelope of the frequency modulated signal
Rectangular (default) | Gaussian | Hamming | Chebyshev | Hann | Kaiser | Taylor

Frequency modulated signal envelope, options to choose from: Rectangular, Gaussian', `Hamming, Chebyshev, Hann, Kaiser or `Taylor'.

Programmatic use

Block parameter

EnvelopeFunc

Values

Rectangular | Gaussian | Hamming | Chebyshev | Hann | Kaiser | Taylor

By default

Rectangular

Source of Frequency Offset — setting the frequency offset
Property (default) | Input port

The frequency offset source specified as Property or Input port:

  • If the value Property is set, the offset is determined by the value of the Frequency Offset parameter.

  • If the value Input port is set, the offset is determined by the port value FreqOffset.

Programmatic use

Block parameter

FreqOffsetSource

Values

Property | Input port

By default

Property

Frequency Offset (Hz) — pass frequency offset:q[<br>] 0 (default) | scalar

The frequency offset specified as a scalar. The units of measurement are Hz.

Dependencies

To use this parameter, set the Source of Frequency Offset parameter to Property.

Programmatic use

Block parameter

FreqOffset

Values

scalar

By default

0

Output signal format — pass output signal format:q[<br>] Pulses (default) | Samples

Output signal format in the form of Pulses or `Samples':

  • If you set this parameter to Pulses, then the output of the block consists of several pulses. The number of pulses is the value of the parameter Number of pulses in output.

  • If you set this parameter to Samples, then the output of the block consists of several samples. The number of samples is the value of the Number of samples in output parameter.

Programmatic use

Block parameter

OutSigFormat

Values

Pulses | Samples

By default

Pulses

Number of samples in output — number of samples of the pass output signal:q[<br>] 100 (default) | positive number

The number of samples of the output signal, set as a positive integer.

Example: 1000

Dependencies

To use this parameter, set the Output signal format parameter to Samples.

Programmatic use

Block parameter

NumSamples

Values

positive number

By default

100

Number of pulses in output — number of pulses of the pass output signal:q[<br>] 1 (default) | positive number

The number of pulses of the output signal, set as a positive integer.

Dependencies

To use this parameter, set the Output signal format parameter to Pulses.

Programmatic use

Block parameter

NumPulses

Values

positive number

By default

1

Enable PRF Output — enable PRF pass output:q[<br>] disabled (by default) | enabled

Select the checkbox to enable the PRF output port.

Dependencies

To use this parameter, set the Output signal format parameter to Pulses.

Programmatic use

Block parameter

PRFOutPort

Values

off | on

By default

off

Enable Matched Filter Coefficients Output — enable output of matched filter coefficients
disabled (by default) | enabled

Select the checkbox to enable the Coeff output port.

Programmatic use

Block parameter

CoeffOutPort

Values

off | on

By default

off