# MT Modulate AM (MT Modulate AM (SSB)) (G Dataflow)

Version:

Performs single sideband (SSB) amplitude modulation. This node performs signal processing on data and operates independently of hardware settings. Use this node in both simulated and hardware-equipped applications.

## message signal

Message signal used to modulate the carrier wave.

## modulation index

Desired modulation index of the AM modulated waveform parameter. A value of 0.7, for example, corresponds to a modulation index of 70%. A value greater than unity may cause overmodulation and distortion. The node ignores this parameter if you set the suppress carrier? parameter to TRUE.

Default: 1.0

## hilbert filter

The complex-valued Hilbert filter used for sideband cancellation during generation of the AM-SSB baseband complex signal. The node applies this filter to the message signal for generating the baseband complex analytic signal.

Note

Changes to the Hilbert filter take effect when the reset? parameter is set to TRUE.

### taps

The length (N), in taps, of the Hilbert filter.

### design

The underlying design of the Hilbert filter.

Name Description
Windowed Hilbert Transformer

Generates the length $N$ Hilbert filter based on the impulse response.

Equiripple Hilbert transformer

Generates an equiripple Hilbert filter.

Default: Equiripple Hilbert transformer

## peak message amplitude

Peak message amplitude of the message signal parameter. The node uses this value to scale or normalize the input message signal prior to modulation. This value must be positive.

Default: 1.0

## error in

Error conditions that occur before this node runs.

The node responds to this input according to standard error behavior.

Standard Error Behavior

Many nodes provide an error in input and an error out output so that the node can respond to and communicate errors that occur while code is running. The value of error in specifies whether an error occurred before the node runs. Most nodes respond to values of error in in a standard, predictable way.

error in does not contain an error error in contains an error
If no error occurred before the node runs, the node begins execution normally.

If no error occurs while the node runs, it returns no error. If an error does occur while the node runs, it returns that error information as error out.

If an error occurred before the node runs, the node does not execute. Instead, it returns the error in value as error out.

Default: No error

## sideband

A value that indicates whether the AM-SSB modulator retains the lower or upper sideband of the message spectrum to generate the AM-SSB baseband complex analytic signal.

Name Description
Lower sideband

Retains the portion of the message spectrum lying in the negative frequency range $\left[-\left(1/2dt\right),0\right]$ and eliminates the positive sideband spectrum.

Upper sideband

Retains the message spectrum spanning the positive frequency range $\left[0,1/2dt\right]$.

Default: upper sideband

## pilot tone

Parameters for specifying pilot tone generation. The pilot tone is added to the Hilbert-filtered complex baseband signal to generate the modulated waveform. The pilot tone provides a coherent phase reference during demodulation for performing carrier phase and carrier frequency offset correction. Set the amplitude parameter to 0 to disable addition of the pilot tone.

Tip

Adding a pilot tone is optional when suppress carrier? is set to FALSE. In this case, the presence of the DC component in the AM signal (corresponding to the pure carrier tone) provides a coherent reference for phase and frequency offset correction, therefore the pilot tone is not needed.

### frequency

Frequency of the complex exponential tone that is added to the complex baseband signal. Ensure that the absolute value of this tone frequency is less than the Nyquist frequency 1/(2 * dt).

Note

When specifying pilot tone parameters, ensure that the pilot tone is added to a portion of the spectrum where the message component of the signal is absent. Conflict between the pilot tone and message signals can cause a residual carrier phase and frequency offset error after demodulation. For example, if you specify a negative pilot tone frequency, specify an upper sideband in the sideband parameter.

### amplitude

Amplitude of the complex exponential tone that is added to the complex analytic baseband signal.

## suppress carrier?

A Boolean that determines whether to suppress the carrier of the modulated signal.

 TRUE The DC component corresponding to the carrier tone in the amplitude-modulated baseband signal is suppressed. FALSE The output amplitude-modulated baseband signal consists of a DC component corresponding to the carrier tone.

Default: FALSE

## reset?

A Boolean that determines whether the node continues AM-SSB modulation using internal states from previous iterations.

 TRUE The node restarts AM-SSB modulation, redesigns the Hilbert filter, and clears internal filter states on each call. FALSE The node does not change the Hilbert filter design across multiple calls, and sets the internal filter state to ensure continuous filter operation.

Default: TRUE

## AM modulated waveform

The modulated complex baseband time-domain data for demodulation.

### t0

The trigger (start) time of the Y array.

Default: 0.0

### dt

Time interval between data points in the Y array.

Default: 1.0

### Y

The complex-valued signal-only baseband modulated waveform. The real and imaginary parts of this complex data array correspond to the in-phase (I) and quadrature-phase (Q) data, respectively.

## error out

Error information.

The node produces this output according to standard error behavior.

Standard Error Behavior

Many nodes provide an error in input and an error out output so that the node can respond to and communicate errors that occur while code is running. The value of error in specifies whether an error occurred before the node runs. Most nodes respond to values of error in in a standard, predictable way.

error in does not contain an error error in contains an error
If no error occurred before the node runs, the node begins execution normally.

If no error occurs while the node runs, it returns no error. If an error does occur while the node runs, it returns that error information as error out.

If an error occurred before the node runs, the node does not execute. Instead, it returns the error in value as error out.

Use the initial phase parameter of MT Upconvert Baseband to adjust the carrier phase during the upconversion process. The initial phase parameter specifies the initial phase, in degrees, of the software local oscillator used in the upconversion process.

## Avoiding Distortion

To avoid distortion, amplitude-normalize the message signal parameter to ±1.0 with respect to the absolute maximum amplitude of the message signal.

## Prescaling Behavior

This node prescales the message signal parameter by the scalar peak amplitude prior to modulation. The default value of 1.0 for peak message amplitude indicates that no prescaling occurs.

## Single Sideband (SSB) Amplitude Modulation

SSB amplitude modulation ensures bandwidth reduction by only retaining either the upper or lower sideband in the message spectrum after the modulation process. The following figure illustrates the series of algorithms applied to the incoming signal m(t). The node applies the AM-DSB algorithms and then applies the Hilbert filter to remove the signal.

When suppress carrier? is set to FALSE, the output amplitude-modulated signal is represented by the following formula:

${s}_{DSB}\left(t\right)=1+k×\frac{m\left(t\right)}{\mathrm{max}|m\left(t\right)|}$
${s}_{SSB\left(t\right)}={s}_{DSB}\left(t\right)\otimes \left({h}_{i}±j×{h}_{q}\left(t\right)\right)+{A}_{pilot}{e}^{j{\omega }_{pilot}}$

where

m(t) represents the message signal data

SDSB(t) represents the double sideband AM modulated signal (unsuppressed carrier)

SSSB(t) represents the single sideband AM modulated signal (unsuppressed carrier)

k represents the modulation index

Apilot represents the amplitude of the pilot tone

ωpilot represents the frequency of the pilot tone

hi represents the real component of the Hilbert filter

hq represents the imaginary component of the Hilbert filter

When suppress carrier? is set to TRUE, the output amplitude-modulated signal is represented by the following formula:

${s}_{DSBSC}\left(t\right)=k×\frac{m\left(t\right)}{\mathrm{max}|m\left(t\right)|}$
${s}_{SSBSC}={s}_{DSBSC}\left(t\right)\otimes \left({h}_{i}±j×{h}_{q}\left(t\right)\right)+{A}_{pilot}{e}^{j{\omega }_{pilot}}$

where

m(t) represents the message signal data

SDSBSC(t) represents the double sideband AM modulated signal (unsuppressed carrier)

SSSBSC(t) represents the single sideband AM modulated signal (unsuppressed carrier)

k represents the modulation index

Apilot represents the amplitude of the pilot tone

ωpilot represents the frequency of the pilot tone

hi represents the real component of the Hilbert filter

hq represents the imaginary component of the Hilbert filter

In both suppressed and unsuppressed carrier cases, one of two possible Hilbert filter designs is specified using the design element in the Hilbert filter cluster. Select either a Windowed Hilbert transformer or an Equiripple Hilbert transformer.

The Windowed Hilbert transformer generates a length N Hilbert filter with an impulse response h(n) given by the following equation:

$\mathrm{\omega h}\left(n\right)=\delta \left(n-\frac{N}{2}\right)+j×\left\{\frac{2}{\pi }\frac{{\mathrm{sin}}^{2}\left(\frac{\pi n}{2}\right)}{\begin{array}{c}n\\ 0,\text{\hspace{0.17em}}n=0\end{array}},\text{\hspace{0.17em}}n\ne 0\right\}\text{}$

The Equiripple Hilbert transformer generates a length N Hilbert filter with an impulse response h(n) given by the following equation:

$h\left(n\right)=g\left(n\right){e}^{±j×0.25×n}$

where g(n) represents an equiripple lowpass filter with a normalized cutoff frequency of 0.25 Hz.

Where This Node Can Run:

Desktop OS: Windows

FPGA: Not supported

Web Server: Not supported in VIs that run in a web application