Вы находитесь на странице: 1из 2

Implementation of Analog Modulation on

SpinCore PulseBlasterDDS And


RadioProcessor Boards
Introduction:
Analog modulation refers to the process of transferring an analog baseband (low frequency) signal,
like an audio or TV signal over a higher frequency signal such as a radio frequency band.

There are two ways to modulate an RF carrier:

1. Amplitude Modulation

In analog modulation, the amplitude of the carrier signal is made to follow that of the modulating signal.
Several variants of amplitude modulation are used in practice. They are Double Side Band Suppressed
Carrier (DSBSC) Modulation, Single Sideband Suppressed Carrier (SSBSC) Modulation and Vestigial
Sideband Amplitude Modulation (VSBAM).

PBDDS Board Implementation:


For generation of AM waveforms on SpinCore PulseBlasterDDS Boards, the basic form of
amplitude modulation is given by:

AM (t) = Ca*sin(wc*t)*[A+(Ma*sin(wm*t))]

For this formula:

t = time
Ca = amplitude of Carrier waveform (1 Vp-p here)
wc = angular frequency of the carrier signal in radians/sec
wm = angular frequency of the modulating signal in radians/sec
Ma = amplitude of the modulating waveform.
AM(t) = the resulting AM waveform

A and Ma are set and scaled so that the amplitude of [A+(Ma*Sin(wmt))] does not exceed the
value of 1Vp-p for the given modulation index.

The scaling factor and the values are chosen by the formula given below:

Ma = 1/((100/MI) + 1)
Where MI=Modulation Index specified by the user in between 0-100% value. And A = Ma*100/MI

Note: Tm=1/Fm can not be less than (9 * clock time period) for proper results where Fm is the
frequency of the message signal in Hz.

The carrier waveform and the message signals can be generated using the PulseBlasterDDS and
RadioProcessor's NCO and AWG respectively.
The generation of carrier waveform in C code is as below :

void shape_make_carrier (float *dds_data)


{
int i;

for (i = 0; i < 1024; i++)


{
dds_data[i] = sin (2.0 * pi * ((float) i / 1024.0));
}
}

The message signal in which amplitude is scaled in accordance with modulation index is
generated as given below.

void shape_make_sin (float *shape_data)


{
int i;
float MI, A, Ma;
printf ("Enter Modulation Index from 0 to 100 percent: ");
scanf ("%f", &MI);

Ma = 1/((100/MI) + 1);
A = Ma*100/MI ;

for (i = 0; i < 1024; i++)


{
shape_data[i] = A+(Ma*sin (2.0 * pi * ((float) i / 1024.0)));
}
}

Вам также может понравиться