This program is designed to take audio input, via a soundcard, and convert it
to a form which, when fed out via a second soundcard to a pair of RF balanced
modulators, will generate most common kinds of modulated RF signal. When used
to generate SSB, the analogue version of this system is usually known as a
'phasing exciter'. The two RF modulators are driven with their oscillators
'in quadrature'. That is, one oscillator is shifted 90 degrees in phase
relative to the other. To cancel the unwanted sideband generated in the
two double-sideband RF modulators, the audio signals must also be generated
in quadrature. In the analogue world this is done by a complex phasing network.
In the digital world it's done (as in this program) by software, and the two
"inphase" and "quadrature" audio signals are fed to the external RF modulators
through a stereo soundcard. This IQ modulation method is not confined to SSB
generation. This program also generates AM and FM modulation. However, because
the stereo soundcard doesn't have DC-coupled outputs, it's not actually
possible to generate an AM or FM signal with a continuous carrier on the
centre-frequency of the RF modulators, but there are ways round this.
Copy the supplied ZIP file SDRtxr.zip into a new folder (directory) and unpack it. Run
the SDRTX.EXE program. The program generates a file called sdrtx.ini in this
folder. The program does not write to any other part of the computer, not even
the registry. To remove the program from the computer, simply delete the
A modern computer is needed, running Windows, fitted with at least one
soundcard, the output of which must be stereo. The input is only used in mono
mode, but it should have the capability to take a microphone input. The input
soundcard should be capable of operating at a samplerate of 8kHz and the
output soundcard should be capable of operating at 12kHz samplerate.
A variety of different configurations are possible, depending on the band to
be used. Typically for the lower frequencies, a stable oscillator, on 4-times
the desired output frequency, will be fed to a divide-by-four counter, and
the outputs of this counter connected so as to give a pair of signals on the
desired output centre-frequency, one of which is 90 degrees phase-shifted
relative to the other. These are fed to two RF modulators, which may be
integrated circuits (e.g. MC1496), or diode ring mixers. There are a number of
alternative configurations using 2-way or 4-way analogue multiplexer chips.
For VHF and microwave bands, 90-degree RF hybrids and Schottky diode ring
mixers may be used. Whichever setup is used for the RF side, the common factor
is the I/Q audio inputs. The stereo audio signals from the soundcard should
be connected to the modulator inputs, taking care to match the impedances
where this is important, as in the case of diode rings. It's also important,
especially if this system is to be used for AM or FM, to make sure that the
connection between the soundcard and the RF modulator inputs has a good
low-frequency response - at least down to 67Hz and preferably even lower. Of
course, the soundcard itself needs to meet this requirement too. For SSB-only
this is not so important.
Connect a microphone to the input of the soundcard, and make sure you know how
to use the soundcard mixer program to select the microphone and set the
mike gain. Make sure also that you know how to use the soundcard output mixer
and set the output level. Note that if the soundcard output mixer panel has
a 'balance' control, it's important that this is precisely at it's centre-point
at all times.
The first thing to do when you start the SDRTX.EXE program is to click the
button at the right end of the top-centre box labelled "Mike Input Soundcard".
A list will drop down. Select from this list the soundcard to which the
microphone is connected. Speak into the microphone and check that the "Audio
Input Level" bargraph deflects. Set the microphone gain (in it's mixer program)
so that this deflects well upscale but does not hit the right end.
Do the same to select the IQ output soundcard from it's drop-down list. Select
the "1kHz tone" modulation and look at the soundcard output on a scope (or
just listen to it) and adjust the output level using the relevant controls on
the appropriate mixer panel. Make sure that there is no clipping of the output
Now you can connect the soundcard outputs to the RF modulators. If you listen
to the RF output with a suitable receiver, and switch to "Microphone"
modulation, you should have SSB coming out. If it's LSB
the L and R soundcard output cables. If it's double-sideband, you have one
channel only working and you need to trace through the signal paths to find
Once you have recognisable
and the RF output will swap to LSB. The next job is to adjust the amplitude and
phase balance. To do this, it will help to select the "1kHz tone" modulation,
and, with the receiver set to a narrow bandwidth, tune to the single tone
in the upper sideband, then swap the program to LSB. Ideally the tone should
vanish. The RF modulators may well have their own amplitude and phase
adjustments, in which case adjust these first, aiming to get the unwanted tone
as low as possible. If the RF modulators have no adjustments, or you need to
make fine adjustments after replacing the lid of the RF box, this can be done
by means of the two balance edit boxes on the program screen. Edit the number
in the box, either positive or negative, to get the desired null. Note that
the two adjustments interact slightly so you will have to go back and forth
between the two. The two balance values could end up either positive or
negative, but they should be smaller than 0.1. If they end up larger than this,
go back and check the hardware balance.
The balance adjustments should only need to be set once for a given RF
modulator system, unless it drifts. The adjustments are saved to disk when the
program terminates and are re-loaded next time the program is run.
Note that if the RF modulators have carrier balance adjustments, these should
be done separately, with no input from the soundcard.
A number of useful features are available..
If you select "1kHz tone" instead of "Microphone", a sinewave at this frequency
will replace the microphone audio. In SSB mode this gives an output in the
selected sideband which is at the peak envelope amplitude. This will be useful
for setting drive levels in the RF hardware. In FM mode the deviation of this
tone is 2.5kHz. On AM it's 100% modulation depth.
Auto Mike Gain.
If you check the "Auto Mike Gain" checkbox, the mike gain will rise to the
point where the resulting audio just fully drives the output and maintains that
level. This can be useful where the level may vary between operators. If the
background level is obtrusive when no-one is talking, uncheck this box while
talking in a normal voice, and the gain will be held at that level.
The "Offset Frequency" box allows the emitted RF signal to be 'fine-tuned'
either side of the RF centre frequency. Enter a value in Hz, which may be
positive or negative. Note that the overall bandwidth is limited to +/- 6kHz,
which means that the sum of highest offset frequency and the highest
modulating audio frequency must not exceed 6kHz. The Offset Frequency value
will turn red if the displayed frequency is more that +/-3000Hz, but you can
go higher than this if you know the modulation frequency will be less that
3000Hz. Note that it is possible to apply a positive offset, of say 1000Hz,
to an LSB transmission or a negative offset to a
which will result in the SSB signal 'straddling' the RF centre frequency.
There is no problem with this except in the special case of the modulating
frequency being exactly the same as the offset frequency. In this case the
output frequency from the soundcard will be at exactly zero frequency and
will not pass through the AC coupling between the soundcard and the
modulators. The same applies in the other transmit modes - there is always
a 'hardware notch' at the very centre of the transmitter passband. Don't use
an Offset Frequency of 1000Hz (on any mode) with the 1kHz tone modulation
selected. Don't use an Offset Frequency of F if the modulation will be a
single tone at a frequency F.
This is equivalent to the device known as a "Speech processor" on a
conventional SSB transmitter, but here it's used on AM and FM too. The
microphone audio is boosted and clipped. This is a clever clipper in that
it will not generate harmonics of single-frequency tones. This is very like
the type of clipper known as an RF envelope clipper, but the process is done
in software and not at RF. It improves the readability if the signal is weak,
at the expense of some distortion if the signal is strong, but without
introducing any out-of-band distortion (splatter). Enter the desired number of
dB of clipping into the box. The first time you run the program this will be
0.0 dB representing no clipping. The dB figure is saved when you terminate the
AM and FM transmission.
Before trying these modes, it's important to understand some limitations,
which arise from the 'hardware notch' mentioned earlier. To radiate a plain
carrier on the centre-frequency, from a balanced RF modulator, requires a
steady DC input to the modulator. But a soundcard is incapable of
outputting a steady DC component, so this cannot be done directly. In this
program, this snag can be overcome in either of two ways. The first method
uses a sub-audible 'carrier bias' tone which 'wobbles' the carrier either
side of centre so that it radiates no energy on the centre frequency. The
bias tone has a modulation index of precisely 2.405, a value known as the
first Bessel zero. At this value of modulation index the carrier nulls.
This is done entirely in software. The only hardware constraint is that
the audio path from the soundcard to the RF modulators should have a flat
response right down to the sub-audio tone frequency, which in this program
has been chosen as 67Hz.
If you select FM mode and listen to the RF output on a receiver, you will
see that, inspite of the fact that there is no DC coupling between the
soundcard and the RF modulators, there is a full-amplitude carrier present on
the RF centre-frequency, with a low-level sub-audio tone modulation, exactly
like the sub-audio tones known as CTCSS tones used to key repeaters. If you
examine the spectrum close to the carrier itself, you will see that the carrier
is actually in a null and all the energy is in a group of sidebands spaced at
67Hz intervals either side.
The same FM sub-audible bias tone is applied in AM mode.
If the soundcard-to-modulator path has insufficient LF response, thie technique
can sometimes result in a buzz on the modulated signal, rather than a pure
67Hz tone, and this can be obtrusive. At the same time, the RF envelope, which
should be constant with only the FM bias tone modulation, can become
AM-modulated at the bias tone frequency, and this too may be undesirable. If
this occurs, the second method of overcoming the AC coupling problem can be
used, and that is to use the Offset Frequency feature. To do this, set an
Offset Frequency of 150Hz and uncheck the Carrier Bias Tone checkbox. Of
course, this also offsets the RF output frequency, so you need to allow for
that (or at least tolerate it). The 150Hz offset figure is chosen so that
the offset carrier (at 150Hz) is well above the LF cut-off frequency of the
soundcard-modulator interface, but well below the 300Hz lowest audio
frequency that is passed from the microphone.
Note that if you try to uncheck the Carrier Bias Tone checkbox when the
Offset Frequency value is less than 50Hz, it won't let you do it.
Poor carrier balance in the RF modulators can also cause a buzz on the audio.
But in this case the buzz will be present with either method of avoiding the
For Technical and Advanced users.
This program opens the input soundcard at 8kHz samplerate, 16-bit mono, and
opens the output soundcard at 12kHz 16-bit stereo. Some older soundcards may
not work because they cannot open the input and output at different samplerates.
The program dynamically retimes the input audio to synchronise with the output.
This means that it's OK to have the input and output on different soundcards
which derive their samplerates from different sources. The retiming process
is monitored on a display which can be accessed by dragging the bottom edge of
the program window downwards. The bargraph shows the buffer status and the
Hz display shows the estimated samplerate of the input card relative to an
assumed value of 12kHz for the output card.
The audio input is band-limited to the range 300-3100Hz on all modes. On FM
there is 750uS pre-emphasis. The SSB is generated using a third-method process.
The clipper works by splitting the audio into two paths, I and Q, with Q
phase-shifted by 90 degrees relative to I. These are combined in a sqrt(I^2+Q^2)
process to give a DC signal representing the amplitude of the audio input. This
signal has no 'ripple' at the audio frequency. If the audio signal exceeds
full-scale, it's divided by it's own amplitude, and because there is no ripple,
the output contains no harmonics of the audio frequency. This clipper therefore
doesn't sound as bad as a conventional audio peak clipper.
The outputs of the program drive the soundcard to fullscale digital output at
the SSB peak envelope level, the FM carrier level, and the peak modulation of
the AM modulation. Don't use a soundcard which clips it's output at fullscale.
The Auto Mike Gain feature can increase the gain by up to 30dB compared to
the non-auto value when the program starts-up.
Note that because of the dynamic retiming of the input audio, a pure tone
at the microphone input is subjected to some timing jitter, typically less
than 1Hz peak-to-peak at 1kHz. If applications are proposed in which this is a
problem, consult the program author. The internally-generated 1kHz tone is not
subjected to this jitter.
When the program terminates, the names of the selected input and output
soundcards, the Offset Frequency value, the balance settings, and the chosen
setttings of the Carrier Bias Tone, Auto Mike Gain, and SSB Clip checkboxes,
are all saved in a file named SDRTX.INI, and these values are reloaded from
this file when the program is restarted. The "clipperdb=" parameter is also
to be found in this file although it doesn't have an edit box in the program
window. The program may not start correctly if a previously-used soundcard
has been removed from the system. In this case, delete the SDRTX.INI file,
or delete the reference to the dead soundcard from this file, and restart the
Peter Martinez G3
modified clipper March 2008.