Version:

Last Modified: February 7, 2018

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 used to modulate the carrier wave.

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

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.

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

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 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 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.

**Default: **No error

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 $[-(1/2dt),0]$ and eliminates the positive sideband spectrum. |

Upper sideband | Retains the message spectrum spanning the positive frequency range $[0,1/2dt]$. |

**Default: ****upper sideband**

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.

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*).

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 of the complex exponential tone that is added to the complex analytic baseband signal.

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

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

The modulated complex baseband time-domain data for demodulation.

The trigger (start) time of the **Y** array.

**Default: **0.0

Time interval between data points in the **Y** array.

**Default: **1.0

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 information.

The node produces this output according to standard error behavior.

Standard Error Behavior

**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.

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.

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\times \frac{m\left(t\right)}{\mathrm{max}\left|m\left(t\right)\right|}$

${s}_{SSB\left(t\right)}={s}_{DSB}\left(t\right)\otimes ({h}_{i}\pm j\times {h}_{q}\left(t\right))+{A}_{pilot}{e}^{j{\omega}_{pilot}}$

where

*m(t)* represents the message signal data

*S*_{DSB}*(t)* represents the double sideband AM modulated signal (unsuppressed carrier)

*S*_{SSB}*(t)* represents the single sideband AM modulated signal (unsuppressed carrier)

*k* represents the modulation index

*A*_{pilot} represents the amplitude of the pilot tone

*ω*_{pilot} represents the frequency of the pilot tone

*h*_{i} represents the real component of the Hilbert filter

*h*_{q} 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\times \frac{m\left(t\right)}{\mathrm{max}\left|m\left(t\right)\right|}$

${s}_{SSBSC}={s}_{DSBSC}\left(t\right)\otimes ({h}_{i}\pm j\times {h}_{q}\left(t\right))+{A}_{pilot}{e}^{j{\omega}_{pilot}}$

where

*m(t)* represents the message signal data

*S*_{DSBSC}*(t)* represents the double sideband AM modulated signal (unsuppressed carrier)

*S*_{SSBSC}*(t)* represents the single sideband AM modulated signal (unsuppressed carrier)

*k* represents the modulation index

*A*_{pilot} represents the amplitude of the pilot tone

*ω*_{pilot} represents the frequency of the pilot tone

*h*_{i} represents the real component of the Hilbert filter

*h*_{q} 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 (n-\frac{N}{2})+j\times \{\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\}\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}^{\pm j\times 0.25\times 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