Monday, January 28, 2013

An L/C audio bandpass filter using cheap audio transformers

Figure 1: 
The transformer to be used
as an inductor!
Click on the image for a larger version.
After modeling the active bandpass filter mentioned in the previous post (link) - which was a response to a question asked by Bill, N2CQR in his SolderSmoke blog (link) - I got to thinking again about L/C filters.

I'd initially dismissed passive L/C filters because one would need to use inductors somewhere in the range of 10 millihenries to 1 Henry to operate at audio frequencies with reasonable source and/or termination impedance, and such chokes aren't particularly cheap or easy to find these days.

Or are they?

I decided to rummage around in my collection of small transformers and found three 8 ohm to 1k-center tap audio transformers sold by Radio Shack (P/N:  273-1380 - link).  These transformers aren't terribly expensive ($2.99 each in 2013) and certainly available if you have a store or three nearby.  What about using the windings of these as a inductors for our filter?

I measured the inductance of the three possible wire combinations:  The 8 ohm windings, the entire 1k winding, and on each side of the center tap of the 1k winding.  I was pleased to note that the three transformers - two of which were bought recently and one had been bought several years ago - were pretty consistent in their inductance (about 15% spread amongst the three) and also that the inductance on each side of the center tap was extremely close (within 1%) - but that would make sense for a center-tapped winding! 

With the amount of loss, self-capacitance and effects of the other windings, it was a bit tricky to get a good reading of the inductance, but I was able to determine that the average of the three transformers - at audio frequencies - was around 498 milliHenries - depending on conditions.  So, what sorts of filters could I make out of these?

Grabbing a pair of these transformers, a calculator, assorted capacitors and some small trimmer potentiometers and cracking open the "Filter Design Handbook" by A.B. Williams, I fired up the soldering iron, tacked some parts together and "swept" the response by turning the knob on an audio generator and looked at the result on an oscilloscope.

Simulation versus real-world components:

Figure 2: 
2-inductor bandpass filter using Radio Shack transformers.  C102 consists
of three paralleled 0.1uF plastic capacitors.
Click on the diagram for a larger version.
Now here's a classic example where the simulation can radically depart from reality in real-world components - in particular, the rather loose definition of what constitutes an inductor when one takes into account the fairly high resistive losses, skin-effect losses, core losses, the self-capacitance of the windings and the losses/effects associated with the unused windings.  The response of the filter wasn't particularly close to what was predicted - particularly in terms of the effect that source and load impedance had on the "shape" of the filter's passband - so I ended up tweaking the values of the capacitors and source/load resistances to get the best-possible response to obtain the goal of a reasonable 300-2400 Hz filter.

Figure 3:
The measured response of the filter depicted in Figure 1.  The
frequency range on the horizontal axis is logarithmic, going from
100 Hz on the left to 10 kHz on the right.
Click on the image for a larger version.
Once I was satisfied with the response obtained manually seeping with the audio generator and looking at the scope I was ready to do some fine-tuning.  A laptop running the "Audacity" program was used to generate several minutes of white noise which was played back in a loop while on another computer I ran the "Spectrum Lab" program.  The signal was routed through the filter and the capacitor and the source and terminating resistors (and, as necessary, the capacitors) were adjusted to get the desired response.

The result is the filter depicted in Figure 2 with its measured response over the range of 100 Hz to 10 kHz being shown in Figure 3.

In short, the results were thus, relative to the response at about 1 kHz:
  • -1dB:  Below 380 Hz and above 1600 Hz
  • -3dB:  Below 286 Hz and above 2100 Hz
  • -10dB:  Below 194 Hz and above 3600 Hz
  • -20dB:  Below 109 Hz and above 6200 Hz
Remember that the above aren't insertion loss numbers since the minimum loss of the filter of this sort is on the order of 6dB to 20dB owing to the losses imposed by the source/load resistors that are used to set the proper impedance and the inductors themselves.  Of all of the common types of reactive components (namely coils and capacitors), inductors are typically most subject to real-world losses and often depart most radically from "perfect" or ideal devices.

When it comes to describing the performance of a bandpass filter such as this, the "curve" describing the response is relative to the middle of the desired response and in this case, "0dB" is a relative number in the middle of the passband response.  So, if this filter's minimum insertion loss is 10dB, we'll see that much loss at, say, 1kHz and a total of 20dB of loss at the "-10dB" points.

While not particularly "sharp", this filter is really quite effective considering its simplicity.  In passing wideband ("flat") audio through this filter from a broadcast radio and listening to it via headphones it sounds quite good - not particularly "ringy" or harsh - and will go a long way toward removing the energy that a listener using an SSB receiver won't hear anyway!

With this simple filter it's possible to adjust the response somewhat by tweaking the source/load termination without doing much more than "tilting" the response.  For example, if one wanted to boost the low end a bit, the terminating resistance (R102) can be reduced (to as low as 500 ohms or so) with the penalty of increasing the filter's overall loss.  Adjusting the source impedance (R101) can have a similar effect, but reducing its resistance will have a much more deleterious result on the desired response than adjustment of the terminating resistor.

When constructing this filter I was curious about how sensitive the "inductors" were to each other's magnetic fields.  While monitoring the passband response via the computer, I moved them next to each other in different orientations to see if there was an effect, but there was none that was apparent.  What I did notice that if the transformers were within a foot (25cm) or so my soldering iron, I could hear hum and buzz from the magnetic fields of its power transformer indicating that it would be a good idea to keep this filter at a respectable distance from such things!

Comments on parts:

While gathering some extra transformers for this project I spoke with the manager at a local Radio Shack and he pointed out that they are normally permitted to stock only TWO transformers at a time - although it should be possible to pre-order more via the store or online (link).  Since they might only have one of these transfomers onhand (and some of the "smaller" store locations may not carry them at all!) it's worth checking with a local store (or on their web site) before chasing around to different stores to get them.  At my local stores these transformers are not in the component drawers, but are usually hanging on a hook near the power transformers.

As noted above I've measured the properties of several of these Radio Shack 8 ohm-1k audio transformers from different vintages (one of them was likely over a decade old) and have found them to be quite consistent.  It is safe to say that if a different audio transformer is used - even if its rated impedances are the same - one should not count on it having substantially the same, important properties - specifically the inductance and the particular losses that make it work properly as a filter with the values shown in Figure 2.  In other words, unless exactly the same Radio Shack transformer is used, you can count on having to re-do the entire filter!

It is worth reiterating that the source and load impedance of a filter like this is very important in order for it to work reasonably well and this is accomplished with resistors R101 and R102.  What this means is that you can't simply build this circuit and insert it into a signal path unless the output impedance of the audio source to drive the filter is nearly zero (such as that of an op-amp) and the load impedance is extremely high (such as that of a unity-gain follower.)

Again, such filters will exhibit 6-20dB of insertion loss - much of that due to the source and load impedance matching resistors - but also due to the losses of the transformers themselves.  Below, a few simple circuits will be shown that may be used to provide adequate source and load impedances as well as provide gain to overcome the filter losses.

The types of capacitors are also very important, namely that they should NOT be ceramic capacitors.  While the precise value of the capacitor isn't extremely critical (there should be no problem using capacitors with +/-10% tolerances) ceramic capacitors in the range used in the circuit above (0.1uF, 0.47uF) are likely going to be "X7R", "Z5U" or similar types that have both rather loose tolerances and the tendency to change value - often radically - with temperature:  For many of these capacitors, lowering the temperature to around freezing will cause their value to drop by 20% to 80% or so and if this filter is built using those capacitors it may work properly only at "room temperature" (around 68F or 20C)!

Fortunately, almost any capacitor other than ceramic will probably use some sort of plastic as a dielectric and will have a much better, more stable capacitance with respect to temperature:  Suitable types include metal film, polyester and Mylar to name but a few. (From what I can determine, Radio Shack does not stock suitable capacitors!)

A better filter:

What about adding more stages of filtering?

Figure 4: 
5 inductor bandpass filter providing better high/low cutoff beyond the 300-2400 Hz range.
Click on the diagram for a larger version.
I added a third inductor (e.g. transformer) and tweaked values, but it turns out that I couldn't get quite as good a result as with the filter depicted in Figure 2 so I visited the local Radio Shacks, picked up two more of these transformers and then tried one with 4 inductors:  It was a bit better than the one above, but not by very much, so I constructed one using five inductors (transformers) obtained significantly better performance.  The diagram of this filter is shown below:

The circuit in Figure 4 is essentially a repetition of the individual sections in Figure 2 and by adding these additional elements, better rejection of those unwanted frequencies was obtained as can be seen below:
  • <=1dB ripple between 350 Hz and 2400 Hz
  • -3dB below 302 Hz and above 2600 Hz
  • -10dB below 220 Hz and above 3400 Hz
  • Figure 5: 
    Response of the "5-stage" bandpass filter.  The "grunge"
    at the far right is not the filter, but pickup from noise picked
    up on the clip leads used in connecting things together!
    Click on the image for a larger version.
  • -20dB below 169 Hz and above 4700 Hz
Most of the improvement in the filter performance was seen in the higher frequencies, but if you are familiar with filter design you may have noticed something:  Adding these extra sections didn't make as much of an improvement as one might expect!  The reason for this is simple:  We have only one usable inductance value available to us with these transformers - about 498 mH - requiring a compromise of the design and the winding of the transformer really doesn't make a particularly good inductor at that!  Had we a larger number of inductance values from which we could choose, we could get better performance with fewer filter elements.  True, these transformers could be put in series and/or parallel to obtain different inductance values, but this would start to violate the "cheap and easy" principle!

Comment:  As it turns out, the above statement about having "...only one usable inductance value..." isn't quite true - See the note at the bottom of this post.

Driving/loading the filter and adding gain:

As mentioned above, these must be sourced and terminated at the proper impedance for them to work properly:  In general, too-low impedance on the input/output will enhance the bass while setting it higher will boost the highs slightly and any departure from optimal will increase "ripple" of the filter - a factor mostly apparent on the 5-inductor version.

Figure 6: 
Source and load amplifiers for the above filter sections.
Click on the diagram for a larger version.
Either circuit in Figure 6 will work and which one you use depends entirely in your preference as both are capable of providing enough gain to overcome filter losses.  In each case the source and load resistor intrinsic to the filter (e.g. R101/R102 for the 2-inductor filter or R201/R202 for the 5-inductor filter) is NOT included in the diagram in Figure 6.

Common to both of these circuits is the 1k resistor and 0.001uF capacitor on the input to remove RF since it's likely that these will be used in a transmitter!

In the op-amp version a resistive divider (R307/R308) is used along with C307 to obtain a clean bias at 1/2 of the supply voltage - a necessity if you are using a single-ended power supply.  U1a is a unity-gain follower used to provide the source impedance for the filter while U1b is a noninverting amplifier that has a high input impedance (as to not affect the loading resistor of the filter itself) and provides approximately 20dB of gain to overcome filter losses:  The gain of this  section may be tweaked as desired  by adjusting the value of R304 or R305.  While a single dual-section LM358 is shown, practically any op amp may be used such as an LM1458 or a pair of '741's.  On the output of the second op amp section a series resistor is included to both maintain stability if there is a capacitor (such as an RF bypass!) as well as to generally improve RFI rejection. 

In the transistor version an emitter-follower is used to drive the filter and at the opposite end, another emitter-follower is used to minimally-load the filter beyond that done by the terminating resistor and to make up for the filter loss the final transistor, Q403, is configured as a simple amplifier, and to increase the gain one may decrease the value of R410 or increase the value of R409:  Note that the Q403 stage is intended to drive a load that is fairly high impedance (1k or more) and may not perform well otherwise.  Finally, R411/C407 are used to keep audio that might appear on the supply due to the current drawn by the transmitter's finals from appearing on the supply rail of this filter driver and prevent feedback (such as "motorboating") at this low-level audio stage!

One may actually cut down on the parts count slightly by designing an op-amp input that terminates at the intended filter-load impedance or one can choose the values of R405/R406 to provide the same voltage ratio and an equivalent resistance of the filter load resistor or one could even design the Q401 stage to source the filter properly:  For the source of diagram simplicity and the purposes of illustration - and at the cost of just a few resistors - this was not done. 

If one has a homebrew transmitter it should be possible to integrate one of the above filters directly into the design.  For example, it should be possible to configure the balanced modulator (such as an NE602) to directly present the necessary load impedance and in which case, one might simply move the gain stage (e.g. the microphone preamp) to the input side of the passband filter to overcome its losses.


I determined that it is practical to make audio bandpass filters with reasonable performance out of a few readily-available audio transformers.  Using such a filter can result in an audio passband that is well-suited for voice communications via an HF transmitter while removing the high and low frequency components that while nice, aren't strictly necessary for good intelligibility.

I'm certain that with a bit more characterization of these devices as inductors and subsequent  tweaks in the design one could improve the designs above as well as make a variety of other passive filters for CW operation and audio notching.  It may be possible to make use of the other windings of the transformers to derive clever configurations that effectively make more use out of the transformers than simple inductors.

Additional comments:
After writing the above I checked the inductance and "Q" of one-half of the the secondary winding (center-tap to one end) when wired in series with the 8 ohm winding, both "in phase" (boost) and "out of phase" (buck) and noted that between these two configurations, there was nearly a 2:1 change in overall inductance with minimal effect on the "Q".  Taking advantage of this, I re-worked the above filters to see if there was any significant performance improvement.

While there was a very slight improvement in performance, it was rather minimal and hardly worth the effort.  What I was hoping was that the "3-inductor" version would perform significantly better than the 2-inductor version so-configured, but as with the above design, this was not the case.  The "5-inductor" version - with the "buck and boost" winding configurations - did work somewhat better and perhaps I'll do an update based on this in the future.


This page stolen from

Saturday, January 26, 2013

An active transmit filter for a double-sideband transmitter

For a follow-up on this article, see the post "An L/C audio bandpass filter using cheap audio transformers" (link)

A question was posed recently by Bill, N2CQR on his Soldersmoke Blog (link) about how to accomplish audio bandpass filtering for his homebrew DSB (Double SideBand) transmitter.

"Conventional" SSB transmitters limit the passband to about 2.1 kHz of audio over a range of about 300 Hz to 2.4 kHz and in so-doing, they cut off the lowest bass notes as well as the higher frequencies.  In the nearly 150 years since the telephone was invented it has long been observed that human speech can be easily understood and recognized with this limitation and it's a good thing, too, since these early systems weren't capable of even that!  While these extra frequencies are certainly "nice" to have - as any AM enthusiast will tell you - they aren't absolutely necessary for perfectly intelligible speech.

As it turns out - in the interest of best efficiency it's not necessary to transmit those lowest-frequency portions of human speech, anyway, since they carry relatively little information:  It's largely the harmonics of these sounds and they way that they are articulated that convey the aspects of human speech that we need to understand one another.  In fact, the voice of the typical adult human male has its fundamental energy almost entirely below the 300 Hz frequency range with the majority of the energy in the area around 1000-1500 Hz, plus or minus a bit.  Additionally, the typical, small speaker found built into radios simply isn't capable of reproducing these low frequencies very well, anyway.

When SSB came along one of the several schemes for producing it involved the use of filtering to remove the opposite sideband as well as additionally-attenuate the carrier to be removed, and for reasons of practicality it was convenient to remove the low-frequency speech components while scraping off the highs above about 2.4 kHz.  Doing this allowed more channels of audio to fit in multi-carrier transmissions systems (such as telephone cables) as well as on the amateur bands.

If the frequencies below 300 Hz or above 2400 Hz weren't transmitted, why receive them?  The same type of filtering (and often the very same filter!) that used to filter the transmitted signal was also used to limit the passband of the received signal as well.

So, considering a simple, homebrew DSB transmitter, what would be the simplest way to shape the audio to produce the desired 300-2400 Hz audio passband for efficient, intelligible modulation?

An obvious, "old-school" scheme would be to use an entirely passive system consisting of chokes and capacitors but these days, high-inductance chokes of the values necessary to provide the desired passband at an impedance commensurate with a low-impedance (say, 1k) microphone aren't in the typical experimenter's junkbox or parts bins!  (Or are they?  See the next installment...)

Figure 1:
Active bandpass filter with a 3rd order lowpass and 2nd order highpass.
Click on the image for a larger version.

The next, most obvious approach would be the "wide-band" bandpass filter which is essentially a low-pass filter and high-pass filter that are cascaded (the order isn't really important...)  In order to get a nice, flat and relatively "steep" response at the low and high end and to keep the filter somewhat simple I chose a simple 3rd-order "Sallen-Key" circuit like that depicted in the "Active Filter Cookbook" by Don Lancaster over more complex designs:  This filter is depicted in Figure 1, above.

Intentionally, the component values were made to be those that are commonly-available - particularly the resistors and capacitors, intentionally "re-using" as many of the same values as possible throughout.  In this filter, R1/C1 provide RFI filtering on the input while U1 and associated components provide a low-impedance source for the input of the filter while minimally-loading the audio input which could be a high or low impedance microphone.  U2 and associated components provide the two poles of lowpass filtering with the third pole inexpensively synthesized with C8 and R12, effectively rolling off the audio above about 2.5 kHz at the rate of 18dB/octave.  U3 and associated components provide the highpass response, removing audio below about 300 Hz, forming a 2-pole filter.  The final two components, C9 and R13 provide DC-blocking and minimum output impedance termination, respectively:  Without R13, a capacitive load such as an RF bypass capacitor can cause instability of an op-amp based circuit.  The final circuit consisting of U4 supplies a clean, low-impedance source at one-half of the power supply voltage to make the op amps happy!  While LT1058 op amps were shown, this was selected only out of convenience in LTSpice (tm) and about any op amp - single, dual or quad - could be used instead.  (Suggestions include a pair of NE5534's, a single TL074 or TL084, and an LM324 could be used in a pinch.)

Figure 2:
The predicted response of the bandpass filter - nice and flat on the top.
Remember to double the vertical (dB) scale since LTSpice measures voltage, not power!
Click on the image for a larger version.
 As can be seen in Figure 2 this gives us pretty much the response that we desire with the additional bonus of having about 20+dB gain:  It's trivial to throw away gain (as long as you don't have too much!) in compared to "making" it.  According to our LTSpice simulation, the filter's response - with respect to the peak response - is approximately thus:
  • -2dB at 420 and 2300 Hz
  • -6dB at 330 and 2900 Hz
  • -20dB at 220 and 4000 Hz
  • -40dB at 136 and 6300 Hz
This should have the desired effect of removing a significant amount of energy from those "unneeded" frequencies!

I've not (yet) built this particular filter, but I've found that op-amp based filters are generally foolproof if one pays attention to detail when it comes to selecting the proper components values and agree nicely with the simulated values.

Admittedly, the circuit shown strays a bit from being "as simple as possible" - particularly if the intent, as is often the case with many QRP enthusiasts, is to not use any integrated circuits.

For a follow-up on this article, see the post "An L/C audio bandpass filter using cheap audio transformers" (link)


This page stolen from

Thursday, January 17, 2013

Two repeaters, one frequency (part 4) - Voting receivers

This is an ongoing series of posts:  For the most recent, previous post in this series, see Part Three (link).

In the other three parts of this string of posts I described the two repeaters, how their operation is greater than the sum of their parts and how the two transmitters can share the same frequency without causing mutual interference.

This time, it's the "Voting Receivers".

In order to achieve reasonable parity with a multiple-transmitter system, we also need to duplicate the effect on receive which means that we have to take the users' signals from both sites and then decide how to use them on transmit and for this, we have a "Voter" system.

As its name implies, the voter "looks" at all of the signals that it is getting from the various receivers and somehow decides which one is best - and that one is sent to all of the transmitters in the system.  The result of this is that during a user's transmission, it's possible that the receiver being used might change several times as the signal fades from one receiver and is picked up by another - particularly in areas where coverage overlaps!

Now, then, does one "vote" on a signal?

First, let's talk a bit about what happens to an FM signal as it gets weaker.

Unlike AM, in which the audio can get weaker as the signal gets closer to the noise, the audio from an FM signal stays constant no matter how weak or strong the signal might be - although something interesting happens when it gets to be too weak:  It doesn't get quieter, it gets noisier!

What is happening is that as the signal gets weaker, the detector - which looks for the "frequency wobble" of an FM signal - starts to have trouble distinguishing between the desired signal and the background noise, so that noise starts to creep into the audio.  There is a threshold at which a slight decrease in signal starts to result in a very marked increase in noise and for a number of reasons, this is often referred to as the "limiting threshold."
Figure 1:
The front panel of the voting controller showing the indicators
of the input channel status (green) as well as various
status/health indicators of the unit itself (red.)  A DE-9
jack provides access to the RS-485 bus for configuration
and status monitoring.
Click on the image for a larger version.

What this means is that if you have two copies of the same signal from two different receivers, you can tell which one is the weaker signal NOT by how loud or quiet its audio might be, but looking at how much extra noise it contains:  If the receivers are otherwise identical, of the two versions of the same signal, the noisier one will always be the weaker one!

How, then, does one compare noise?

There are two common techniques:
  • Compare "quiet-ness".  In the pauses and spaces between words, there will be brief pauses of silence - or, at the very least, portions that aren't as loud as the peaks of the audio.  The weaker signal will have more noise, so it won't be as "quiet" during these pauses as the strong signal.  The receiver that has the highest "minimum" audio level will be the one that is weaker.
  • Compare total loudness.  As it turns out, as a signal gets weaker, the noise gets added to the audio which means that if you look at the total amplitude of the two signals, the one that's louder overall (that is, there's the audio plus noise) will be the one that is weaker.
One can also look at the level of ultrasonic noise from the discriminator, but this is not easily done on sites connected only via a voice-bandwidth audio link and may be discussed in a later blog entry.
For a number of reasons, we chose the second method for our voting system.

It makes the job a bit easier if one looks only at the higher-frequency audio - say, that above about 2 kHz - as this has less speech energy in it overall, yet the noise will increase at the high frequencies of the de-emphasized audio just as readily as it will at the lower frequencies.  By "looking" only at these higher frequencies it becomes a bit easier to ignore the voice energy when trying to make comparisons of quality between multiple channels of the same audio.

There are some complications, however:

As you can imagine, no matter what method of voting you pick, it's important that all of the audio sources are as identical to each other as possible in terms of amplitude (loudness) and frequency response.  Consider the following example.
  • One receiver is louder than the other due to a misadjustment.  The louder receiver - even if it has a perfectly good signal - will look "worse" than a quieter one since more total audio energy will be detected from it.  In other words, compared to the the other, quieter receiver, the loud one will be considered noisier.  Because of this, the voter will "prefer" the quieter signal, even if it is a bit noisier.
  • One receiver has better "highs" than the other.  Since the noise from a weak signal will readily appear in the "highs", if two equally-noisy signals appear at once, the receiver with the stronger "highs" will be considered the worse one and the voter will prefer the other signal.  Since our system looks at the audio above 2 kHz, a receiver with extra "highs" makes things even worse!
When we first installed the voter, we had all of these problems, but we expected that we'd have to tweak a few things, but several things caught us off-guard:

  • The first one was that the "local" receiver was connected to the voter via copper wire, while the other receiver was connected via a UHF radio link.  The local receiver had better "highs" in its audio than the receiver on the UHF radio link and the "highs" in the voices of the users on the local receiver caused the voter to "think" that the signal was worse than it really was and it would jump back-and-forth while people were talking.
  • Due to a design flaw in the local receiver it was discovered that it would start to clip if the received signal's deviation was greater than about +/-3 kHz.  Interestingly, this flaw had gone unnoticed in the 30 years that this receiver had been used because no-one had looked for it, and it really didn't sound that bad since the transmitter removed the speech harmonics, anyway.  Coupled to this was the fact that pre-emphasized audio - common on our VHF and UHF bands - boosts the highs as compared to the lows, further masking the clipping.  With all of that distortion, the voter was "seeing" plenty of audio energy above 2 kHz and voting "away" from it in favor of the receiver connected via the UHF radio link.
The first problem required that we put a low-pass filter on the audio from the local receiver to make it "look" like the audio coming across the UHF link and for this, a filter was installed that scraped off the audio above about 3 kHz.

The second problem - the receiver distorting - was a bit trickier.  Once on the workbench, I noticed that the clipping was asymmetrical and I traced it to an emitter-follower audio stage coupling from the discriminator chip with insufficient headroom, trying to go "below" ground.  Poking around with an oscilloscope, I noticed that the input signal to this emitter-follower stage was "clean", so I modified it by turning it "upside-down" and using a PNP with its collector connected to the ground side instead of an NPN with its collector connected to the V+.  Doing this moved its clipping threshold "upwards", toward the V+ supply instead of ground.

That problem solved, I then noticed that I still couldn't go above about +/- 3 kHz deviation without significant distortion - but this time I traced it down to the 10.7 MHz IF crystal filters.  As it turned, one or more of these had gone bad and the filtering was no longer "flat" across the required 15 kHz IF bandwidth of this single-conversion receiver.

Fortunately - because of another project - I had on hand some extra 10.7 MHz crystal filters and I was able to replace those in the receiver and nicely flatten out the response.  The ultimate result was that the receiver could accept about +/-7 kHz of deviation modulated with a 1 kHz tone before it started to distort badly.  The measured IF bandwidth was now about 16 kHz at the -3dB points and much more than 20dB down at 20 kHz.

Re-installing the receiver, the audio levels from the remote receiver (via the UHF link) and the local receiver were very carefully matched and the voter behaved a bit better - but it was still favoring the "remote" receiver slightly.  Fortunately, when I designed the voter I included a number of software parameters that could be tweaked and I was able to "bias" the voter slightly toward the local receiver.

The voting controller:

Figure 2:
The main voter board.  As you can see, it is all hand-wired on
glass-epoxy prototyping board.
Click on the image for a larger version.
The voter itself is homebrew and uses a PIC18F4620 processor at its heart.  Capable of accepting up to 8 receivers, it has two voting channels:  The "current" receiver - the one that is being selected for on-air, and the "other" channel that is being compared to the on-air receiver.

If there is just one receiver active, the choice is simple:  Select it - no voting required!

If there are two receivers active they are compared against each other, the "better"one being put on-air and the worse one on the "other" channel:  If, at any time the signal on the "other" receiver gets to be better of quality than the one that is on-air, they flip positions.

If more than two receiver go active at the same instant it will grab the lowest-number receiver first and then compare, one-at-a-time, the quality of the other receivers against it.  If it finds that one of these other receivers has a better signal, it will put that receiver on the air and the process repeats itself with the processor constantly seeing if any of the other receivers have a better signal than the one that's currently on-air.

In the audio chain of the voter is a digitally-programmable potentiometer that is used to set the gain of each selected receiver (on both the main, on-air channel and the "other" channel) to the levels that allow the audio of each receiver to be perfectly matched.  There is also a "phase selector" switch that allows either a 0 or 180 degree phase change of the receiver to account for the fact that there may be an audio inversion somewhere earlier in the audio chain.

Both the selected "on-air" and the "other" receiver are passed through a 2 kHz high-pass filter which then goes to a rectifier circuit, the result being that a DC voltage is produced that is proportional to the amount of audio energy.  While some of the energy above 2 kHz is going to be voice energy, some of it will also be the added noise on a weaker signal, so that "noisy" channel (e.g. the one with the poorer signal) will have a higher voltage than the other.  The two voltages are digitized by the computer and used to make the decision as to which receiver has the better signal.

Cleaning up the squelch noise:

One issue with using a link receiver for connecting receivers for voting is the fact that if there's a "choppy" signal, the remote receiver's squelch will constantly open and close - but how do you convey that fact to the voter?

One way is to simply turn the UHF transmitter on and off and follow receiver squelch, but this gets a bit messy, particularly since there will be a burst of noise every time that happens (e.g. the "ker" in "kerchunk"!)

To avoid this, the instant the squelch of the remote receiver closes, a 3.2 kHz "voting tone" is sent down the link.  At the voter, this tone is detected and treated in the same way as dropping of the link transmitter and this causes a "squelch" indication from that remote receiver to show that the input signal has gone away.  After the tone is detected, the link transmitter can shut off and that extra "ker" (e.g. burst of noise) won't ever be heard by the user!

This tone also has another purpose:  Since it is a very strong 3.2 kHz tone it will be intercepted by the voter's noise detector as a full-scale indication of "bad signal noise" and the voter will instantly "see" it as a signal of inferior quality and jump away from it in favor of another signal, if available.

Other circuits:

In order to meet FCC rules, the UHF link transmitter must occasionally ID and this is done using a 2.44 kHz tone frequency, a frequency above most of the audio content.  2.44 kHz notch filters are used in front of the tone detector (but NOT in the audio path to the audio output of the voter) in each of the voter's channels (e.g. the one that is on-air, and the "other" one) to remove the link IDer and keep it from affecting the voting as well as a notch filter to remove the 3.2 kHz "voting tone" that is sent on the UHF link.  If the link IDs with no-one talking, the 3.2 kHz voting tone will already be on, keeping an "open squelch" indication from being passed to the voter and prevent that ID from even keying up the repeater.  If an ID happens to occur while someone is talking through the voter, there's no harm as the pitch of the ID is fairly high and most people don't ever notice it!
Figure 3:
Inside the voter's die-cast metal box with the circuit board removed.
All input/output signal lines go through feedthrough capacitors
and ferrites to remove any RF energy that might be coupled
onto them - an absolute necessity since the repeater site
has extremely high levels of RF energy!
Click on the image for a larger version.

Another circuit an 8-channel multiplexed input that is very rapidly scanned to determine which COS (squelch) output lines from the receivers are active, this being done so that the voter knows which receivers are actually active!  The voter also has the capability of producing "courtesy beep" tones which are used to identify the various remote receivers by pitch allowing users to determine into which a particular user is being received.  Since most of our users come across the main receiver, this one doesn't have a beep!

The voter - like the disciplined oscillator - has an RS-485 bus on it which allows it to be configured via a serial port as well as be queried and configured remotely.  As it turns out, one can kludge an RS-485 interface to talk to most RS-232 ports by using just one of the receive/transmit lines and this is brought out on a DE-9 front-panel connector.  In this way, one can look at the configuration of the voter - even make adjustments - while on-site as well as talk to any other device that is also hanging on the RS-485 bus!

Finally, the voter has 16 front-panel LEDs, 8 of which indicate which receiver is (or recently was) active while the other 8 LED indicate the various states of the hardware for monitoring and diagnostic purposes.

Final comments:

This voter was installed in October of 2009 and has been in continuous service ever since.  In the first month, the code was tweaked slightly to allow more-detailed tweaking of the noise detection algorithm to minimize the likelihood of "false voting" and to permit one receiver to be favored slightly more than the other.  The only "major" change was to add a minimum "dwell" time to the voting - that is, once a particular receiver was selected, it had to stay there for a minimum amount of time before another receiver was allowed to be selected unless, of course, that receiver dropped out!

The only hardware tweak was increasing the gain of the noise detectors to allow the voter to better-determine the relative quality of signals that were already nearly "full-quieting":  Before doing this the voter couldn't tell the difference between signals that were better than about 18dB quieting, but now this has been extended to about 25-27dB quieting - a noise level below that which most users even notice!


This page stolen from

Sunday, January 13, 2013

Dang it, JBL!

I've had a pair of JBL 4312 Control Monitor speakers for about 20 years now having bought them at a pawn shop for $75 in the early 1990's - a good price even back then!  At that point the speakers were already about a decade old, but they were in reasonable shape aside from some minor scratches on the cabinet and a small tear in one of the woofer's cones.

A very light sanding of the scratches with some fine steel wool and the application of a coat of finishing oil made the scratches completely disappear while the hole in the cone was repaired with a bit of white glue and some paper, the fix being mostly done from the back side with the grille cloth making the imperfection normally invisible.
Figure 1:
Before the rebuild - the bass driver with the problem.
Click on the image for a larger version.

I have used these speakers almost daily since I bought them and they have always produced excellent sound.  At some point about 10 years ago I borrowed a laboratory-grade audio spectrum analyzer and a noise generator and determined the L-pad settings that yielded ruler-flat response (according to the analyzer) over their entire frequency range.

A month or so ago I noticed a bit of what sounded like "clipping" from one speaker - but not quite clipping.  I didn't think too much about it until that same speaker started "barking" on certain bass frequencies so I popped the speaker grill and started pushing on the woofer's cone.  I observed that it would bind up when I pushed on the upper and lower edges - but not so much on the left or right edge.


I'd run across this before on speakers with foam surrounds:  Over time, gravity can cause the foam surround and the spider (the accordion-like structure near the voice coil and the magnet) to sag from the cone's own weight.  The fix for this is usually pretty simple:  Remove the speaker, rotate it 180 degrees so that what was the bottom is now the top and then re-install it in the cabinet.

Except that these speakers don't have foam surrounds, but rather fabric-based accordion surrounds (similar to that of a speaker's spider) coated with a latex "damping" compound that also provides an air seal for the cabinet's tuning.  Another point of concern is that when "cone droop" occurs, pressing on the bottom edge usually produces less binding than if pushing on the top edge - but it was about equal in this case.  Nevertheless, I turned the speaker180 degrees to see if this would help.

Figure 2:
Making the first cuts in the 2213H woofer!
Click on the image for a larger version. 
A week later, it was worse so I started looking into what it would take to rebuild the speaker(s) and found that I could get an OEM JBL rebuild kit for a 2213H woofer for 2-3 times the cost of an after-market kit.  Sending the woofer away for a rebuild with an aftermarket kit was also an option, but it would be even more expensive, costing several times what I paid for the pair originally, not to mention that a rebuild with a JBL kit would be even more!  I also noticed two types of kits:  Those in which the voice coil, surround and spider were already attached to the cone, and those in which they were all separate and "some assembly was required."

I looked into what people had to say about the quality of the aftermarket rebuilds and couldn't come up with anything conclusive:  There were quite a few people that said simply that nothing could be as good as the JBL parts - end of story - but there was a dearth of anything other than opinion as it seemed that no one (that I could find) did any before/after measurements or compared a rebuilt speaker to an original in any other than a subjective way.

I finally ordered a pair of rebuild kits for the JBL woofers from McKenzie (, just one of several places that supply such kits and a company about which I couldn't find any general credible dissatisfaction.  This kit was one of those with all of the pieces already attached to the cone and was a bit more expensive than the others, but since this was my first "cone job" I decided to spend the extra $5-$10.  In about a week's time over the Christmas week holiday a box appeared and inside the parts were well-packed - although the shim had a slight amount of latex goo that had leaked from the bottle of "damping fluid" - probably due to the air pressure from changes in altitude during shipping:  This was easily cleaned off, however.

Figure 3:
The mysterious foam ring!
Click on the image for a larger version.
After another week or so I finally got some time to start the task of rebuilding the speaker.  While I have replaced dozens of foam surrounds on speakers owned by me and by others and have made "readjustments" on other speakers to remedy "cone rub" problems, I'd not before done a complete "cone job" so I was a bit apprehensive - but I figured that it was probably easier than a foam surround since I was starting from scratch rather than trying to make adjustments to a speaker that had already "settled in" over time.

So, I began to cut.

Once the wires are unsoldered, the job of removing the original cone is somewhat brutal: Cutting away the foam edging, gaskets and then the spider to finally liberate the original cone and voice coil from the basket - the metal frame that holds the magnet and everything else.  Once this was removed I spent 15-20 more minutes carefully scraping away the original adhesive - a fairly hard, epoxy-like substance -  that attached the surround and spider to the basket.

Immediately after pulling away the original cone I noticed something peculiar:  A ring of foam inside the speaker surrounding the hole in the center of the magnet.  At first I couldn't figure out what this was for but then it occurred to me that since the JBL voice coil is "vented" that this might be part of a foam filter to keep out contaminants.  When I touched the foam, it disintegrated into tiny blobs that stuck to my finger and I now knew why the speaker had "failed"!
Figure 4:
The goo left on the inside of the voice coil from the
disintegrated foam filter.
This was the actual cause of the speaker's failure!
Click on the image for a larger version. 

In looking at the inside surface of the voice coil (see figure 4) I saw the remains of the rest of that foam filter in the form of a sticky, tarry goo.  What had happened was that as this foam disintegrated into small bits, it fell down onto the voice coil and accumulated, reducing the clearance between it and the magnet assembly and finally causing what had appeared to be a jammed solenoid.

Had I known exactly what was going on when the speaker "failed" I may have been able to "repair" the speaker by removing the dust cover from the center, clean the goo from the voice coil with careful scraping and an appropriate solvent and then use tape to remove the remains of the foam so that no more would break loose and fall into the gap.  

(At some point I may see if I can get another surround, spider and dust cover for this cone/voice coil assembly as it is still in good shape, otherwise.)

One of the oft-touted advantages mentioned online about the woofer used in the 4312 was that it didn't have those foam rubber surrounds that often fail - but this was worse:  The same fate will likely befall 4312 owners of similar vintage (and also those owning speakers with similar woofers!) when the foam hidden inside, out of view, will likely disintegrate and jam their bass drivers, too!

Dang it, JBL!

By the time this speaker was made I would have expected that the folks at JBL already knew about the way this type of foam would disintegrate, so why did they use it in that application?
Figure 5:
The bare basket after the foam and adhesive had been removed.
Click on the image for a larger version. 

It didn't matter, now, though!

These speakers were already about 30 years old - a reasonable service life - and now I was knee-deep in the rebuild process so I proceeded to clean up the basket and the magnet assembly, covering the gap on the magnet with tape to prevent the pieces of glue and spider remnants from falling into it.  There was a very good chance that there were foam particles within the magnet gap so after removing the glue remnants elsewhere I attacked it with sticky-tape, sliding it around in the gap to sweep up any loose particles.

The "inside" of the magnet gap of the 2213H is hollow and just "below" (inside) the gap and inside this cavity there could have been an accumulation of particles of foam.  With tape still in the gap, I turned the speaker basket upside-down and around while rapping on the magnet assembly with a rubber-coated screwdriver to knock particles loose, repeating this process several times.  After doing this I soaked a small piece of cloth in lacquer thinner and, using a small piece of copper or brass sheet to avoid scratching the metal (or sticking to the magnet!) I pushed the cloth into the gap and moved it around its perimeter:  This dissolved and removed the last deposits of foam goo that were stuck to the magnet itself.  One final sweep with sticky tape confirmed that the gap was now clean and I was ready to install the new voice coil/cone assembly.

Figure 6:
The new cone assembly installed with shim, but before the gasket was
installed to hold the surround flat.
Click on the image for a larger version. 
The next step was to put a thin, even layer of glue on the inner ring where the spider would attach, and then on the larger, outer edge where the speaker's surround would be attached.  The next step is a bit tricky:  Installing the speaker cone and voice coil assembly - with the wires lined up with the speaker terminals - in the gap without getting the adhesive on the voice coil or my finger and then onto the cone itself.  If you manage to put your finger into the adhesive as I did, it would be a good idea to clean it immediately so that none of it is transferred it to the cone or something else and then check to see that there's still enough of it left to glue the spider/surround in place.  Once it was installed, the shim was inserted to center the voice coil about the magnet and then the cone was rotated back and forth slightly to distribute the glue and to "settle" the alignment of the cone and voice coil and then, finally, carefully aligned with the speaker terminals. 

At this point I had a problem - one that I'd encountered previously when replacing foam surrounds:  The  surround would not lay flat in the glue along the edge!  When I've replaced foam surrounds in the past I could generally find a dinner plate of the right diameter to hold the foam flat against the basket, or failing that I would use a dozen or three steel nuts (for 1/2"-3/8" bolts) around the perimeter to weight it down.

Because this surround was a loose-knit fabric rather than foam, the glue was soaking through it and I didn't want to glue a dinner plate or steel nuts to it!  Instead, I installed the speaker's gasket as it would handily hold the surround down - and it needed to be glued down, anyway.  Finding a flat cutting board in the kitchen that was just large enough to completely cover all of the surround and gasket, I laid it atop everything and then put some weight on of it.  This gasket supplied was in four segments and I had to tape the joints together (using "transparent" tape from the dispenser in figure 7) to keep them lined up.

Figure 7:
Weighing down the gasket to keep everything flat!
Click on the image for a larger version.  
After making sure that everything was where it should be I placed an incandescent desk lamp above it to add a bit of heat to the winter-cool basement room where I was working and then left it for 48 hours.

Two days later:

After allowing the glue to set I removed the cutting board and weights and then carefully pulled the tape off the gaskets.  Even with due care, a bit of the gasket came off with the tape, but small bit of white glue put this back together.  After removing the shim I pushed on the cone in several places around the perimeter and observed that it seemed to be nicely centered and moved freely, with no interference!

After gluing the dust cover over the voice coil I applied a bit less than half the bottle of the latex "damping solution" to the surround.  In addition to making motion a bit smoother, this effectively "air-proofs" the surround to help maintain the acoustic properties of the speaker's ported enclosure.

After letting the glue holding the dust cover and the latex damping solution set for an hour or so I flipped the speaker over to expose the back vent.  I cut a circle from a scrap of synthetic grille cloth from a previous speaker project and then, using RTV (silicone) adhesive, I glued it into place.

As noted above, this vent - which keeps dust and pieces of fiberglass insulation used as damping material inside the speaker cabinet out of the voice coil gap - had originally been a small circle of foam on the inside, behind the dust cap, but I decided to put it on the outside, on the back of the speaker as is often done with other JBL speakers, instead.  I then allowed the RTV, damping solution and glue holding the dust cover to cure overnight.

The next day, the rebuild was complete and I decided to measure the various parameters of the speaker that could be easily quantified with equipment that I had laying around and compare them to both the published JBL specifications and the other, original (not rebuilt) JBL 2213H driver as I wanted to see how different the readings were.

I first measured the DC resistance of the original, now-removed voice coil, the "new" after-market voice coil, and the one in the still-working original speaker:  They were all 4.4 ohms.

The next measurement - free-air resonant frequency - was not possible on the original speaker cone since it was "jammed" with the foam goo, but I measured this on the newly-rebuilt speaker and the other, still-original speaker:  The new speaker measured 28 Hz, the "other", original JBL speaker measured 21 Hz while the JBL specification was 24 Hz.  I attribute the 28 Hz resonance of the newly-rebuilt speaker to be due, at least in part, to the fact that the "new" speaker's components (surround and spider) were still very stiff in comparison with the "other" original speaker and I would expect the resonant frequency to drop slightly with time.  It's worth noting that either of these two frequencies are well below the acoustic cutoff frequency of the speaker/enclosure itself.
figure 8:
The rebuild is complete - ready to install!
Click on the image for a larger version.  

Another parameter was the voice coil inductance.  I'd forgotten to measure this on the original speaker cone/voice coil before rebuilding it (this measurement would only be valid if installed in the magnet gap) but I found that the newly-rebuilt speaker and the other original were within 15% of each other at both 120 Hz and 1 kHz and centered about the published JBL specs.

The final measurement was that of the impedance:  JBL doesn't mention the frequency at which this value is taken - or even the value itself - so I measured it using an LCR bridge at both 120 Hz and 1 kHz and the rebuilt and original speaker were both around 5.7 ohms  Other parameters such as Vas, Q, etc. are harder to measure and I wasn't going to go through the trouble to attempt doing so.

In closely inspecting the original cone removed from the rebuilt speaker, the new one supplied by McKenzie, and the one in the other, still-original 2213H driver I found them to all be slightly different.  The McKenzie cone material isn't quite as stiff as that which I removed during the rebuild, but I noticed that the cone material of the other speaker - the original JBL (and, incidentally, the one in which I'd repaired the hole) was much thicker and heavier than either of the other two, possibly explaining why its free-air resonance frequency was lower!  Online I'd read about how others had mentioned differences in seemingly-identical JBL parts, but I was surprised to see this much difference on speakers that appear to be of the same vintage.

Other aspects of the "original versus McKenzie" components look to be identical:  The same thickness of substrate on which the voice coil is wound, the the same gauge of copper wire, equally-heavy material in the spider and accordion surround, identical techniques to bond the voice coil assembly, spider and surround to the cone and identical-looking glue on these components.

How does it sound?  From what I can tell, they sound "dead-identical" to each other, but that's a fairly subjective analysis.  See below for a cursory analysis using an audio analyzer.

At some point I'll probably rebuild the other bass driver (woofer) - the one with the repaired hole - but I was able to inspect the foam filter through the vent in the back of its magnet and it appears to be both intact and non-sticky, indicating that it isn't in imminent danger of falling apart and causing it to fail.

Final comments:

In reading the online forums, it's apparent that some people are really picky and passionate about using exact replacement parts.  It's worth remembering that building speakers - especially mass-producing them - is not necessarily an exact art and most designs, particularly ported ones like this, are quite forgiving in the fairly wide tolerances involved - and which is one of the reasons why the speakers work so well!
I'm not really a rabid purist and since the most important parameters are pretty close to those posted on the official JBL data sheet (which includes a number of Thiele-Small parameters) I'm pretty confident that it will work about as well as the original.

What remains to be seen is if this aftermarket replacement will hold up for another 20-30 years!

 A few observations of the 'specs of the JBL 4312:
  • These are 6 ohm speakers, not 8 ohm as a lot of reviewers online seem to think:  Most modern solid-state amps don't care about the difference between 6 and 8 or 4 ohms, but check your manual to be sure!
    Figure 9: 
    The finished and functioning speaker, with the
    grille removed.
    Click on the image for a larger version. 
  • The crossover network in this speaker is very simple:  There's nothing on the bass driver, only a series (10uF) capacitor and L-Pad on the midrange, and an L-Pad and 3uF/200uH "L"-type high-pass network on the tweeter.
  • The low-frequency limit of the speaker is specified as being 45 Hz (@-6dB) - a fact verified on the Ivie IE-30A based, within the limits of its 1/3 octave resolution (see below.)
  • The maximum amplifier power is specified as being 150 watts.  The various drivers in the speaker itself are rated for far less than this in terms of continuous power, but practically any "sane" volume setting on such an amplifier will be quite safe as these drivers can easily handle the occasional peaks.

Update (21 January, 2013):
I was able to borrow an Ivie Technology IE-30A audio analyzer with matching microphone and, putting a white noise source into the audio amplifier (and verifying that it was also "flat" at the speaker terminals) I saw that the speakers were also quite well-matched with to each other - the newly-rebuilt 2213H bass driver and the OEM JBL driver.
This test was done in the middle of my living room with the speaker about 18 inches off the floor on a pad so room resonances cannot be ruled out.  It was too cold (about 12 degrees F) outside to lug everything into the yard to attempt measurements in an environment much less susceptible to such vagaries!


This page stolen from

Tuesday, January 1, 2013

Making an FM Stereo modulator work properly with streaming audio sources

Like many these days I often listen to streaming audio and podcasts, but there's a sticking point when it comes to listening to any of these while moving about the house, yard and garage:  How do I get the audio content from the source to where I am at that instant?
Figure 1:
An inexpensive stereo modulator - one of many varieties available.

A portable audio (e.g. MP3) player is fine, but not much good for a live stream.  There are other ways to stream audio - such as with some of the fancier players that WiFi interconnect, or even my smartphone, but I find this a bit awkward and would rather not burn through the batteries' charge on my phone - and I'd much rather not walk around the house wearing headphones, especially when I already have several decent audio systems in my house!

I could get a Bluetooth audio device that takes the source from the "Internet Radio" appliance, tablet or computer and then, to each of the other audio systems connect a Bluetooth audio receiver, but this seems to be a bit redundant and expensive - and this still doesn't really help when I'm outside in the yard or in the garage where WiFi coverage gets a bit spotty and Bluetooth isn't likely to be much better!  The other issue with some Bluetooth devices is that they can have slight amounts of audio delay, the amount varying between devices - something that can be really annoying if there are overlapping audio sources within earshot!

The obvious thing (to me) would be to throw the audio content - from whatever source - onto a cheap FM stereo modulator and use that to distribute it.  Not only will any FM radio in the house already pick it up, but it's pretty easy to get good enough coverage so that I can be in the yard or the garage and still pick it up using any portable device (including many MP3 players) that can receive FM radio.

With this in mind I picked up a cheap FM Stereo modulator from one of the (many!) online stores that sell such things.  The audio may (or may not) be quite as good as bluetooth, but it can be plenty good for background, casual listening and relatively "low-fi" audio such as that from many podcasts.

I've used these types of modulators for several years and they work "Ok" - but there's a problem:  The audio tends to "tear" a bit on the highs in the audio.  When I was playing audio from the laptop, this wasn't too much of a problem since I could just go into the graphic equalizer and roll off audio above 10-12 kHz.  Not perfect, but it helped.

More recently I got an "Internet Radio" box and soon discovered that when I plugged the modulator into it, I got nothing but "shash" (I'll let you figure that one out...) for audio when I tuned it in on an FM receiver.

I'd been afraid that this would happen!

A few boring bits about how FM stereo works:

First, let's talk a bit about how FM stereo works.  To make an FM stereo signal they do two things with it:
  1. They take the Left and Right channels and add them together in an audio mixer, the result being old-fashioned mono FM.  They stick this right on the FM signal.
  2. They take the Left and Right channels and subtract them and the result of this is a signal that contains the differences between the two channels.  They take this audio and up-convert it to 38 kHz.
The beauty of this system is its relative simplicity - after all, it was designed in the 1950's!  Compatibility with non-stereo receivers is maintained since the original mono audio is still where it always was - but the "new" signal (the left and right subtracted signal, or "L-R" as in "L minus R") is stashed way up there in the ultrasonic frequencies and really doesn't bother anyone since it was too high to be effectively be reproduced by many amplifiers and speakers and could be trivially removed on inexpensive (mono) sets.  You can see this displayed in figure 2 where one sees these various audio components on the audio spectrum from a source with really active audio with lots of synthesizers and snare drums.
Figure 2:
The anatomy of an off-air FM stereo signal.
At audio frequencies, below 15kHz (15000 Hz), you can see the "monaural"
portion (L+R) of the audio while centered about 38 kHz you can see the
"L-minus-R" signal.  At 19 kHz you can see the "pilot" carrier that is
used to help reconstruct the "L-R" and tell the receiver that a stereo
broadcast is being received.  Also evident is the "brick-wall" filtering
to remove audio above 15 kHz.
Click on the image for a larger version.

When you receive a stereo audio signal they do something clever.  When the "L-R" signal is converted up to 38 kHz they also generate a 19 kHz signal which, you might notice, is half of the 38 kHz up-converted frequency of the "L-R" signal that we need to reconstruct our original stereo signal.

When transmitted, they send that same 19 kHz signal which is then doubled in frequency and used to convert that "L-R" signal from 38 kHz down to its original audio frequency.  That 19 kHz signal has another function:  It lets the receiver know that there's a stereo signal!

Once you have that "L-R" signal again using simple math you can combine it with the mono "L+R" signal that you already had - which can be done with audio mixing:
  • (L+R) + (L-R) = 2L - The two "R's" cancel out and you are left with just the left channel
  • (L+R) - (L-R) = 2R - The two "L's" cancel out and you are left with just the right channel

Here's the problem:

In order for this scheme to work you can't have any audio higher than 1/2 of the frequency to which the L-R audio is converted in your original audio which means that everything below 19 kHz must be removed.  Practically speaking one can't easily make a filter that will allow everything up to 19 kHz get through and then absolutely block everything above it so the standard in broadcasting is to knock out everything above 15 kHz.  Since practical filters aren't perfect, by the time one gets to 19 kHz, the filter - which starts to filter at about 15 kHz - has done its job and removed the signals.

Why is this important?  We run into the same problem here in this analog system as we do in any sampling system whether it be digital or analog:  The Nyquist limit (link).  What this says is that we can't accurately represent any signal above one-half of our sampling rate which, for FM stereo, is 19 kHz - half of our 38 kHz sampling rate.  If we allow signals above this to be "sampled" (a term that works for our analog up-conversion and for analog-to-digital conversion alike!) they will re-emerge later as being "folded back" with portions of the audio present at the wrong frequency and the result can be rather annoying distortion of the original signal.

There's another problem:

This cheap FM stereo modulator doesn't really have any filtering in it to assure that audio above 15 kHz doesn't get through, but it does have the 75 microsecond equalization curve standard in FM broadcasting which boosts the highs:  This equalization can also work against us as we'll see.

For an analog source such as a tape player, it's a pretty safe assumption that there's not much content above 15 kHz, and for my laptop computer - which has a half-decent sound card built into it - the hardware generally puts out only those signals that it's supposed to:  If I set the graphic equalizer program to cut off signals above, say, 12 kHz, nothing much above 12 kHz comes out! (To be sure, I actually checked it using an oscilloscope and audio spectrum analyzer program - and it's clean.)

This is not true for all audio sources!

These days, there are a number of ways to make digital signals into analog ones for things such as MP3 players, computers, audio streaming devices, etc. and not all of them are created equal.  On many of these devices, the low-cost hardware doesn't filter the artifacts of digital-to-analog conversion very well.  If the sample rate is 48 kHz, there are "images" of audio near 96 kHz - twice the sample rate - with a two versions of the audio:  One starts at 96 kHz and goes up while the other is a mirror image and goes downwards from 96 kHz.
Figure 3:
Spectral output of the Internet Radio from 0 to 96 kHz. The "audio" is
seen below 15 kHz (15000 Hz) or so, but white noise from the
digital circuitry dominates above about 40kHz or so, raising havoc
with the modulator!
Click on the image for a larger version.

Practically speaking, this 96 kHz (or other ultrasonic-related) energy isn't a big deal since most audio amplifiers (and speakers!) can't really reproduce it, but if it gets into the modulator - at even low levels - it can raise havoc by making the transmitted signal wider than it should be!

There's yet another problem:

In the interest of low cost and high power efficiency, many audio amplifiers are of the "Class-D" type (link) and similar.  These aren't "true" audio amplifiers since they don't amplify the original signal in the conventional sense (e.g. each successive stage makes the original signal "bigger") but they sample the original audio signal, convert it into a digital waveform that consists of only "On" and "Off" voltages (e.g. "1's" and "0's") and then "amplify" it using a really fast on/off switch.

The advantage of this is that a simple on/off switch is very efficient:  Being either "on" or "off" it doesn't produce heat since it either allows all of the power through it with little loss when it's on, or it's completely turned off so no heat will be produced in that case, either!  Using simple components (capacitors, coils and the speaker itself!) this digital signal gets converted back into a decent representation of the original analog signal - provided that the intermediate digital signal was of high enough frequency to avoid the Nyquist problem we talked about before.
Figure 4:
Scope trace of the audio output of the Internet Radio showing the
low-level 400 kHz energy from the audio amplifier.
This, too, is causes severe problems when fed to the modulator!
Click on the image for a larger version.

For my Internet radio device the "Audio Out" actually takes a sample of the output intended for the speakers and in so doing since it comes from a Class-D amplifier.  Because of this it injects into the FM stereo modulator some of that high-frequency digital signal used in the audio amplification - in this case, around 400 kHz.


This further explains that "shash" that resulted from connecting the FM stereo modulator to the output of the Internet Radio box:  The extra "grunge" splattered the signal all over the place.

To see how bad this was, I plugged the output of the Internet Radio box into a computer with a 192 kHz sound card and, using the "Spectrum Lab" program, took a look at the output.  In the plot in figure 3, you can see the audio going from 0 to about 15 kHz where it drops off, but you'll also notice that by the time it gets to 40 kHz, we have noise!

To see higher frequencies, I connected it to an oscilloscope and quickly found the rather strong 400 kHz signal produced by the class-D audio amplifier as can be seen in figure 4:  The scope trace shows that this signal is at about 140 millivolts - a significant percentage of the roughly 1 volt peak-to-peak audio output at full volume!

Figure 5:
A 15 kHz passive low-pass filter using inexpensive coils and capacitors.
For stereo, two of these filters are required - one for each channel.
Click on the image for a larger version.
Filtering required:

As mentioned, this cheap FM stereo modulator had little or no filtering at all in the audio path so I needed to add some of my own.  To be sure, I could find on the web a myriad of low-power FM transmitters - both pre-built and already in kit form, many intended for uses not legal without licenses! - but I didn't really want to spend $100 plus to find such a device when it would be pretty easy to make this modulator work fine for my purposes.

There are two ways that one could build a filter:  Active - with some transistors or op-amps along with some capacitors and resistors, or passive, using just some inductors, capacitors and resistors.  An active filter would work just fine, but it would need its own power source and this would be fairly inconvenient, either as a "wall wart" to power it, or batteries that one would have to replace every time you forgot to turn the filter off!

Figure 6:
Completed passive  2-channel low-pass filter on a small piece of
"perf board", ready for testing.
Click on the image for a larger version.
Passive, it was, so I rummaged around in my inductor collection to get an idea of what I had laying around and then cracked open my copy of "Electronic Filter Design Handbook" by A.B. Williams (available via - link) - one of the very best library references around for understanding and designing all sorts of analog filters and well worth the price even if you buy it new.  Poring over graphs and tables I determined that an "Elliptic" filter (more details here - link) using two inductors and 5 capacitors (per channel) would provide adequate filtering so I crunched some numbers to see what I could make using the inductors that I had on hand.

Ultimately, I came up with the design shown in figure 5 that would make use of a 18 mH and a 27 mH inductor (both being fairly standard values) along with standard capacitor values while providing a decent amount of filtering above 15 kHz.

As a sanity check, I decided to simulate the filter using LTSpicetm - a very useful program - and it looked to be pretty good.  While I was at it, I checked to see how much of an affect the source and load impedances had on the response and observed that the filter was fairly forgiving:  Anything between 1k and 10k on the input and output yielded reasonable results but it seemed to look the best with something around 2k on the input and the output.  For my version, I chose 1k and 4.7k (respectively) for the input and output resistors as this seemed to be a good compromise between flat response and insertion loss.

Figure 7:
This is a simulated low-pass response of the filter showing the predicted
response with the amplitude response shown using the solid line. 
This simulation was done using "LTSpice" - a free program offered
by Linear Technology Corp.
Remember to double the dB reading in the vertical scale since LTSpice
"measures" voltage, not power.
Click on the image for a larger version.
The design was intended to be fairly insensitive to source and load impedance and as such, it is intended to be fed from a "Line Out" or "Speaker Out" connection and then terminated in a high-impedance input, typical of many "Line-In" devices, including my modulator.  As-built and tested, the low-pass filter exhibits several dB of insertion loss when terminated with a typical "line in" input impedance (which is typically 30k to 100k for consumer devices) - most of this loss being due to the 1k input resistor (which is necessary for proper response) and the subsequent 4.7k resistor on the output used to guarantee a maximum load impedance with a small additional amount due to the losses in the coils.

Rummaging around, I found the necessary capacitors, inductors and resistors and then built the entire circuit on a small piece of phenolic prototype board, making a nice, compact package.  For testing, I connected to it two short lengths of 3-conductor cable (2 wires plus shield) with one having a 3-conductor (stereo) 3.5mm jack on the "input" end to plug into the audio source and a 3.5mm plug on the other end into which the modulator connected allowing me to insert the filter inline.

The result?

Figure 8:
Bottom of the filter board showing the rather simple wiring.  I prefer using
the perf board material with copper rings as it makes for much more
reliable and solid construction than that without the copper.
Click on the image for a larger version.
It worked just as it should!

Without the filter, connecting the FM Stereo Modulator to the Internet Radio box resulted in the aforementioned "shash" that badly "noised-up" and distorted the audio whereas with the filter inline, the audio sounded great!

Measuring the filter's performance:

As for the predicted attenuation, the rejection compared to 1 kHz looked quite good:
  • -6dB at 14.0 kHz
  • -12dB at 14.6 kHz
  • -20dB at 15.0 kHz
  • -40dB at 16.1 kHz
  • At least 50dB of attenuation at the 400 kHz PWM frequency from the Internet radio device.
Using LT-Spice, the component values shown in the diagram resulted in a slight (about 2dB) "peaking" at the higher audio frequencies, the worst occurring at about 9.5 kHz - this being largely due to the slight (intentional) mismatch in source and termination impedance noted above.  If this slight peak bothers you and you can tolerate an additional 3-4dB or so of total insertion loss (for a total of 6dB) lowering the load impedance (mostly using R2) to 2k-2.2k will take nicely flatten the filter's response.

Since simulations are just that, I decided to check the actual filter response in two ways:  The first was with the oscilloscope connected to the output and an audio generator capable of producing up to 2 MHz output to the input terminal.  In the quick examination I observed that above 100 kHz the output was less than 1% of the input indicating at least 40dB of attenuation.

Figure 9:
Measure response of the filter as built.  Limited to about 24 kHz, this
measurement shows that the frequency response agrees well
with the simulation.  A logarithmic frequency scale was used to better-show
the response characteristics of the filter.
Click on the image for a larger version.
In the other, more graphical, method I used computer tools to "sweep" the filter.  Using the "Audacity" program (a free, open-source audio tool) I generated a segment of white noise and playing it back, I "looked" at the result using the Spectrum Lab program and found that it was flat to about 23 kHz - as it should be with a 48 kHz sampling rate.  Owing to the nature of the measurements (e.g. FFT settings and the "bin width", limited resolution of the display etc.) the true depth of the "notch" at around 19 kHz is not well depicted. 

I then inserted the newly-built filter into the path and the result may be seen in Figure 9:  The attenuation was about where it should be, indicating that the filter was working at least as well as the simulation!

So, there it is:  A simple, passive 15 kHz low-pass filter!

  •  There are programs that will do this entire measurement in one operation, that is sweep the input and display the response, all using a sound card, but I haven't gotten around to putting one of these on my computer. 
  • Some day, I hope to get around to putting everything in a nice box.