Engee documentation

EngeePhased.PhaseCodedWaveform

Phase-coded modulation of a pulse signal.

Library

EngeePhased

Description

The EngeePhased.PhaseCodedWaveform system object models the phase-coded modulation of a pulse signal.

To get samples of the waveform:

  1. Define and configure a phase-coded pulse waveform;

  2. Call the step method to generate phase-coded pulse waveform samples according to the EngeePhased.PhaseCodedWaveform properties. The behaviour of the step is specific to each object in the toolbar.

Syntax

The system object constructor can be called in the following ways:

  • object = EngeePhased.PhaseCodedWaveform creates a phase-coded pulse waveform System object. The object generates phase-coded pulse waveform samples. Example:

    target = EngeePhased.PhaseCodedWaveform
  • object = EngeePhased.PhaseCodedWaveform(Name,Value) creates an object with a phase-coded modulated pulse waveform, with each specified property Name (name) set to the specified Value (value). You can specify additional arguments as a name-value pair in any order (Name1,Value1,…​,NameN,ValueN). Example:

    target = EngeePhased.PhaseCodedWaveform(Code="Zadoff-Chu", NumPulses = 1)

Properties

SampleRate — sampling rate
1e6 (by default) | positive scalar

Details

Specify the sampling rate as a positive scalar. The value of this property corresponds to 1 MHz by default. The value of this property must satisfy the following constraints:

  • (SampleRate./PRF) is a scalar or vector containing only integers - the number of samples in a pulse must be an integer.

  • (SampleRate*ChipWidth) is an integer - the number of samples in the chip must be an integer.

The units of measurement are hertz.

Code - phase code type
Frank (By default) | P1 | P2 | Px | Zadoff-Chu | P3 | P4 | Barker | Maximum Length Sequence | Quadratic Residue Sequence | Custom

Details

Specify the type of phase code used in phase modulation. Valid values:

  • Frank.

  • P1

  • P2

  • Px

  • Zadoff-Chu

  • P3

  • P4

  • `Barker

  • Maximum Length Sequence

  • Quadratic Residue Sequence

  • `Custom

CustomCode - custom phase code defined as a vector of complex values of length M
[1 -1] (By default)

Details

Each element in the specified vector corresponds to one chip. To enable this property, set the Code property to Custom. You can use these and other functions to create a custom phase code:

Custom Code functions

apaseq

Pseudorandom binary sequence with almost perfect autocorrelation function

legendreseq

Lejandre sequence with perfect periodic autocorrelation function

mlseq

Pseudorandom binary sequence of maximum length

pnkcode

Polyphase code

ChipWidth - time duration of each chip
1e-5 (by default) | positive scalar

Details

Specify the duration of each chip in a phase-code modulated waveform as a positive scalar. For a given waveform, the pulse duration is equal to the product of the chip width and the number of chips.

The value of this property must satisfy the following constraints:

  • ChipWidth is less than or equal to (1./(NumChips*PRF)) - the total duration of all chips cannot exceed the pulse duration.

  • (SampleRate*ChipWidth) is an integer - the number of samples in a chip must be an integer.

The units of measurement are seconds.

NumChips — number of chips
4 (by default) | positive integer

Details

Specify the number of chips per pulse in a phase-code modulated signal as a positive integer. The value of this property must be less than or equal to (1./(ChipWidth*PRF)) - the total duration of all chips cannot exceed the pulse repetition interval.

The table shows additional restrictions on the number of chips for different code types.

If the Code property is …​

Then the NumChips property must…​.

Frank, P1, Px

Perfect Square

P2

An even number that is a perfect square

Barker

2, 3, 4, 5, 7, 11, or 13

SequenceIndex - Zadoff-Chu sequence index
1 (by default) | positive integer

Details

Specify the sequence index used in the Zadoff-Chu code as a positive integer. This property applies only if you have set the Code property to Zadoff-Chu.

The value of SequenceIndex must be relative to the simple value of the NumChips property.

PRF - pulse repetition rate
10e3 (by default) | scalar | line vector

Details

The pulse repetition frequency, PRF, is specified as a scalar or string vector.

The units of measurement are hertz.

The pulse repetition interval, PRI, is the inverse of the pulse repetition frequency, PRF.

The PRF must meet these limits:

  • The product of PRF and PulseWidth must be less than or equal to one. This condition expresses the requirement that the pulse width be less than one pulse repetition interval. For phase-code modulation of a signal, the pulse width is equal to the product of the chip width and the number of chips.

  • The ratio of the sampling rate to any element of the PRF must be an integer. This condition expresses the requirement that the number of samples in one pulse repetition interval be an integer.

You can select the PRF value using the property settings alone or using the property settings in combination with the prfidx input argument of the step method.

  • If the value of PRFSelectionInputPort is false, set PRF using property settings only. You can:

    • Implement a constant PRF by specifying PRF as a positive real scalar.

    • Implement a stepped PRF by specifying PRF as a vector of strings with positive real values. Then each call to the step method for PRF uses successive elements of this vector. If the last element of the vector is reached, the process cyclically continues from the first element of the vector.

  • When PRFSelectionInputPort is true, you can implement PRF with selection capability by setting PRF as a vector of strings with positive real values. But this time, when you execute the step method, select PRF by passing an argument specifying the index in the PRF vector.

In all cases, the number of output samples is fixed by setting the OutputFormat property to Samples. By usage of the PRF variable and setting the OutputFormat property to Pulses the number of samples may vary.

PRFSelectionInputPort — turn on the selection input *PRF
false (by default) | true

Details

Enable the PRF selection input set as true or false.

When this property is set to false, the step method uses the values set in the PRF property.

When this property is set to true, the index argument is passed to the step method to select a value from the PRF vector.

FrequencyOffsetSource — frequency offset source
Property (By default) | Input port

Details

The frequency offset source for the oscillogram specified as Property or Input port.

If you set this property to Property, the offset is determined by the value of the FrequencyOffset property.

When this property is set to Input port, FrequencyOffset is determined by the input argument freqoffset.

FrequencyOffset — frequency offset
0 Hz (By default) | scalar

Details

Frequency offset specified as a scalar.

The unit of measurement is hertz.

Dependencies

This property applies if the FrequencyOffsetSource property is set to Input port.

OutputFormat - output format
Pulses (by default) | `Samples `

Details

Specify the output signal format: Pulses or Samples.

When the OutputFormat property is set to Pulses, the output signal of the step method takes the form of several pulses specified by the NumPulses property value. The number of samples in a pulse can change if you change the pulse repetition rate during the simulation.

If the OutputFormat property is set to Samples, the output of the step method will be in the form of multiple samples. In this case, the number of output samples is equal to the value of the NumSamples property and is fixed.

NumSamples - number of samples at the output
100 (by default) | positive integer

Details

Specify the number of samples in the step method output as a positive integer.

This property applies only if the OutputFormat property is set to Samples.

NumPulses - number of pulses at the output
1 (by default) | positive integer

Details

Specify the number of pulses at the output of the step method as a positive integer. This property applies only if the OutputFormat property is set to Pulses.

PRFOutputPort - PRF input selection
false (by default) | true

Details

Set this property to true to output PRF for the current pulse using the step method argument.

Dependencies

This property can only be used if the OutputFormat property is set to Pulses.

CoefficientsOutputPort - enable the coefficients output port of the matched filter
false (by default) | true

Details

Enable the matched filter coefficient output port by specifying false or true.

When this property is set to false, the object does not provide matched filter coefficients as output.

When this property is set to true, the object provides the matched filter coefficients as output.

Methods

Common for all system objects

step!

Start the system object’s operating algorithm

release!

Allow changing the value of a system object property

reset!

Reset internal states of the system object