Engee documentation

EngeePhased.Transmitter

Page in progress.

A signal transmitter.

Library

EngeePhased

Block

Transmitter

Description

System object EngeePhased.Transmitter implements a signal transmitter.

To create and use a transmitter, follow these steps:

  1. Create an object EngeePhased.Transmitter and set its properties.

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

To learn more about how to work with system objects, see Engee System Objects.

Syntax

Creation

  • transm = EngeePhased.Transmitter() — creates a system object of the transmitter. The system object sets the peak power of the transmitted signal of a given shape.

  • transm = EngeePhased.Transmitter(Name=Value) — creates a transmitter system object with the specified properties as a pair Name=Value, where Name — the name of the property, and Value — the appropriate value. You can specify multiple pairs «name-value» the order of the pairs does not matter. Unspecified properties retain their default values.

Using

  • Y = transm(X) — returns the voltage of the transmitted signal Y. The conversion is based on selected properties of the transmitter, such as peak power, gain, and noise. The power is calculated from the signal voltage, assuming a reference resistance 1 Om.

  • Y,TR = transm(X) — also returns the on/off status of the TR transmitter as an additional output. To use this syntax, set the InUseOutputPort value true.

  • ___PHNOISE = transm(X) — also returns random phase noise PHNOISE, added to each transmitted sample. To use this syntax, set the CoherentOnTransmit value false, and for the property PhaseNoiseOutputPort value true.

Arguments

Input arguments

X — input signal

+ the complex vector | the complex matrix

Details

The input voltage of the transmitter signal, specified as a complex vector or complex matrix. The number of rows is equal to the number of counts.

If X is a matrix, the number of rows in Y is equal to the number of rows in X. The number of columns in Y is equal to the number of channels of the transmitter.

If X is a vector, the number of channels is determined by the active properties.

Типы данных

Float64

Support for complex numbers

Yes

Output arguments

Y is the output voltage of the transmitter

+ the complex vector | the complex matrix

Details

The output voltage of the transmitter, returned as a complex vector or a complex matrix. If X is a matrix, then the size of Y is equal to the size of X. The conversion is based on the properties of the transmitter, such as gain, non-linearity, and noise. The power is calculated from the signal voltage, assuming a reference resistance 1 Om.

Типы данных

Float64

Support for complex numbers

Yes

TR — status of the transmitter

+ the logical vector

Details

The on/off status of the transmitter, returned as false or true. The argument TR is a logical vector where true means that the transmitter is turned on during the corresponding sampling time, and false — that the transmitter is off. The size of TR is equal to the size of X.

Dependencies

To use this argument, set the property to InUseOutputPort value true.

Типы данных

Bool

PHNOISE — random phase noise

+ the complex vector | the complex matrix

Details

Random phase noise returned as a complex vector or complex matrix. The PHNOISE argument is a random phase noise added to each transmitted sample when the CoherentOnTransmit matters false, and the property PhaseNoiseOutputPort is set to true. The size of PHNOISE is equal to the size of Y. Each element in PHNOISE contains a random phase from 0 before 2*pi, added by the transmitter to the corresponding sample in Y.

Dependencies

To use this argument, set the property to CoherentOnTransmit value false, and for the property PhaseNoiseOutputPort value true.

Типы данных

Float64

Support for complex numbers

Yes

Features

# PeakPower — Peak power
Real number

Details

Peak transmission power in Watts, given as a positive scalar.

By default — 5000.

# LossFactor — loss ratio
Real number

Details

Transmission loss factor in dB, given as a non-negative scalar.

By default — 0.

# InUseOutputPort — enable transmitter status output
Logical

Details

Transmitter status output, specified as true or false (by default).

Set the value true to display the transmitter usage status for each output sample in the argument TR.

If you don’t want to get the transmitter usage status, set this property to false.

# CoherentOnTransmit — maintaining coherence between pulses
Logical

Details

The conservation of coherence between pulses, given as true (by default) or false.

If you set this property to true, the transmitter does not introduce a random phase into the output pulses.

When setting this property to false The transmitter adds random phase noise to each transmitted pulse. Random phase noise is introduced by multiplying the pulse by , where — a uniform random variable in the interval [0, 2π].

# PhaseNoiseOutputPort — enabling phase noise output
Logical

Details

Phase noise output, given as true or false (by default).

Set this property to true to obtain the entered random phase noise of the transmitter for each output sample in the output argument PHNOISE. This property can be used in the receiver to simulate coherent reception systems.

If you don’t want to get random phase noise, set this property to false.

Dependencies

To use this property, set the property to CoherentOnTransmit value false.

# Gain — transmitter gain
Real number

Details

Transmitter gain in dB, given as a real scalar.

By default — 20.

Methods

Common to all system objects

step!

Run the system object operation algorithm

release!

Allow changing the value of a system object property

reset!

Resetting the internal states of a system object

Examples

Transmission of the LFM pulse

Details

Let’s simulate the transmission of a linear frequency modulation signal with a bandwidth 5 MHz and sampling rate 10 MHz.

using EngeePhased

fs = 1e7;
waveform = EngeePhased.LinearFMWaveform(SampleRate=fs,PulseWidth=1e-5,SweepBandwidth=5e6);
x = waveform();
transmitter = EngeePhased.Transmitter(PeakPower=5e3);
y = transmitter(x)
1000-element Vector{ComplexF64}:
      707.1067811865476 + 0.0im
      707.0195471777516 + 11.10675058543725im
      705.7114674770557 + 44.39960215340382im
      700.0524419064873 + 99.63221658060323im
      684.8917213771575 + 175.85030562678614im
      653.2814824381883 + 270.59805007309853im
       597.030001667645 + 378.8867602711024im
      507.7919748967407 + 492.0846575849199im
     378.88676027110256 + 597.0300016676449im
     207.91790791406027 + 675.8477221746333im
 4.3297802811774664e-14 + 707.1067811865476im
    -229.04420295235028 + 668.9833728082654im
     -450.7268256422827 + 544.8351389607974im
                        ⋮
                    0.0 + 0.0im
                    0.0 + 0.0im
                    0.0 + 0.0im
                    0.0 + 0.0im
                    0.0 + 0.0im
                    0.0 + 0.0im
                    0.0 + 0.0im
                    0.0 + 0.0im
                    0.0 + 0.0im
                    0.0 + 0.0im
                    0.0 + 0.0im
                    0.0 + 0.0im

Literature

  1. Edde, B. Radar: Principles, Technology, Applications. Englewood Cliffs, NJ: Prentice Hall, 1993.

  2. Richards, M. A. Fundamentals of Radar Signal Processing. New York: McGraw-Hill, 2005.

  3. Skolnik, M. Introduction to Radar Systems, 3rd Ed. New York: McGraw-Hill, 2001.