<< midcross | FOSSEE_Signal_Processing_Toolbox | morlet >>

FOSSEE_Signal_Processing_Toolbox >> FOSSEE_Signal_Processing_Toolbox > modulate

# modulate

Modulates signal according to the modulation method

### Syntax

    y=modulate(x,fc,fs,method,opt)
    [y,t]=modulate(x,fc,fs,method,opt)

### Parameters

x :

  A vector or a matrix

fc :

  Carrier frequency

fs :

  Sampling frequency

method :

  Modulation Method

opt :

  An optional parameter required by certain modulation methods

### Description

[y,t]=modulate(x,fc,fs,method,opt) Returns the modulated vector y and the time vector 't' Modulation is performed according to the following table METHOD MODULATION SCHEME 'am', Amplitude modulation, double side-band, suppressed carrier 'amdsb-sc' opt not used. This is the default method. 'amdsb-tc' Amplitude modulation, double side-band, transmitted carrier opt is a scalar subtracted from x before multiplying x with the carrier wave. It defaults to min(min(x)) so that the input signal after offset is always non-negative 'amssb' Amplitude modulation, single side-band OPT not used. 'fm' Frequency modulation opt is the constant of frequency modulation. opt = (fc/fs)*2*pi/max(max(abs(x))) by default 'pm' Phase modulation OPT is the constant of phase modulation. opt = pi/max(max(abs(x))) by default Phase lies between -pi and +pi 'pwm' Pulse width modulation opt='left' corresponds to left justified pulses. opt='centered' correspondes to centered pulses. The default value of opt is 'left'. 'ppm' Pulse position modulation opt is a scalar between 0 and 1 which specifies the pulse width in fractions of the carrier period with default value 0.1. 'qam' Quadrature amplitude modulation opt is a matrix of the same size as X which is modulated in quadrature with x.

If x is a matrix, its columns are modulated.

### Examples

    // Modulate a signal using amplitude modulation (AM)
    // Parameters
    fs = 1000;                // Sampling frequency (Hz)
    fc = 100;                 // Carrier frequency (Hz)
    t = 0:1/fs:1;             // Time vector (1 second duration)
    x = sin(2 * %pi * 10 * t); // Input signal (10 Hz sine wave)
    // Perform amplitude modulation (double side-band, transmitted carrier)
    [y, t_mod] = modulate(x, fc, fs, 'amdsb-tc');
    // Plot the original and modulated signals
    subplot(2, 1, 1);
    plot(t, x);
    xlabel("Time (s)");
    ylabel("Amplitude");
    title("Original Signal");
    subplot(2, 1, 2);
    plot(t_mod, y);
    xlabel("Time (s)");
    ylabel("Amplitude");
    title("Modulated Signal (AM DSB-TC)");

### Authors

- Ankur Mallick

Report an issue
<< midcross | FOSSEE_Signal_Processing_Toolbox | morlet >>