To determine the affect clipping has on the modulated SSTV waveform.
The following steps were performed by computer programs:
In addition to the clipped and un-clipped versions, two additional factors were varied. They were the maximum slew rate of the baseband signal, and whether or not step 4 above (lowpass filtering in the modulator) was done. Three tests were used to evaluate the factors of interest. In the first two tests (numbers 9 and 10), the maximum slew rate corresponds to 3000 Hz per millisecond in the passband. In the last test (number 11), this limit was reduced to 1000 Hz per millisecond.
In the first test, no lowpass filtering was used in the modulator. In the last two tests, a sample rate of 40 KHz was used in the modulator. Also, a lowpass filter was used to atttenuate those frequencies between 2400z and 20 KHz (produced by clipping) so that the filtered signal could be adequately represented at a sample rate of 10 KHz.
The differences between the tests are summarized below:
A clipping level of 10% of the real amplitude was used in all of these tests. For a real amplitude of 1.0, all signal levels greater than 0.1 were set to 0.1; all signal levels less than -0.1 were set to -0.1.
The major steps used to demodulate the test signals were:
The C code used to do this calculation is reproduced below.
The lowpass filtered sin products are in the Lo1s array; the lowpass
filtered cos products are in the Lo1c array.
/* calculate angle */
for (si=0; si< fap; si++)
{Ang[si]= (float)((double)(twopi)-atan2((double)(Lo1s[si]), (double)(Lo1c[si])));}
The C code used to do this for one buffer's worth of data is reproduced below.
for (si=0; si<val_to_write; si++)
{/* calculate frequency in Hz. */
diff= Ang[si]- ang_co;
ang_co= Ang[si];
if(diff > pi) diff-= twopi;
else {if(diff<-pi) diff+=twopi;}
fprintf(otf,"%7.2f\n", lo1hz + diff*kf);
}
Here, lo1hz is the 1st local oscillator frequency, 1750 Hz (only 1 local
oscillator is used in this particular pragram); kf is the conversion
factor from radians per sample period to Hz.
The filter used in the modulator to attenuate the frequencies between 2400 Hz and 20 KHz is a single stage "decimation by 4" lowpass filter. A graph of the interesting part of its gain characteristic is just below.
The lowpass filter used on the products of the passband signal and
the sin and cos of the local oscillator is a two stage "decimation by 4"
lowpass filter. A graph of the gain characteristic for the first stage is
just below.
The input sampling frequency for the second stage of this filter is
5 KHz. A graph of its gain characteristic is just below.
A two stage interpolation filter is then used to produce the lowpass filtered result at the original sample rate. Graphs of this interpolation filter characteristic are not shown here.
A single stage lowpass filter was used after the demodulation. The
following two graphs show its gain characteristic.
Using an expanded vertical scale, to show the ripple in the passband
results in the following graph.
The results are presented as graphs. For each test, the results are in five graphs. These five graphs show:
There are four interesting SSTV lines in each of the three test cases. Links to the pages containing the graphs for each of the these lines follow:
.Clipping of the FM SSTV waveform does degrade the baseband representation. Compare this unclipped case with this clipped case.
Lowpass filtering does not compensate for the degradation caused by clipping. Compare this case before and after lowpass filtering.
If frequencies generated by clipping which would be aliased into the SSTV passband are not filtered out prior to sampling, severe degradation results. See this example from test 9.