Wednesday, December 30, 2015

In previous postings I wrote about how FM reception - including squelch and subaudible tone detection - was accomplished on the mcHF. As is often the case, it is usually more difficult to receive a signal than to generate one and this is arguably the case with FM as well.

In writing the code to generate FM I found the above to be true: It was comparatively trivial to produce an FM signal, particularly applying "tricks" that I'd already done in the demodulation.

Producing the FM carrier:

One of the features that I added to the mcHF many code releases back was that of "Frequency Translation" in which the local oscillator was "off-tuned" from the receive frequency, + or - 6 kHz for the mcHF with the "baseband" signals for receive and transmit being shifted by 6 kHz (in the opposite direction) in software.

One reason that this was done was to improve the performance of the transceiver by removing its receive and transmit passbands from the immediate vicinity of the "zero Hertz hole" which not only improves frequency response, but it reduces other issues related to thinks like "1/F" noise and, perhaps most importantly, greatly reduces the likelihood that other receiver audio (e.g. audio amplifier energy) will find its way back into the microvolt-level audio paths via power supply and ground loops and cause feedback!

Applying this to transmit, we soon realize that if wished to produce a signal with a constant carrier, such as AM or FM, we would have to remove ourselves from this "zero Hertz hole" as it would be, by definition, impossible to produce a carrier in that hole as a the carrier is, in fact, represented by DC. (For SSB, which purposely has its carrier removed, this "hole" is nearly irrelevant...)

This explains another reason why this feature was added: The eventual addition of AM transmission (and reception) several revisions ago, but this same feature used once again for FM, but in a different way: Via the use of DDS (Direct Digital Synthesis) techniques.

The use of DDS techniques has been discussed here before - see the article "Generating low-distortion audio sine waves using a PIC and DDS techniques." - link.

Using DDS techniques to generate an FM carrier:

In this technique one generates a sine wave (or any other arbitrary signal, for that matter) by jumping through a "lookup table". In the case of the mcHF, with its 48 kHz sample rate, if we wanted to generate a 6 kHz sine wave this implies that we would need to step through this sine wave table once every 8 samples. This sounds easy enough - but how would one do this?

- The variables "accumulator" and "frequency_word" are both integers. Let us presume 16 bits, unsigned, each, which means that each value would range from 0-65535. Incremented past 65535, it would return to zero.
- "sine table" is a lookup table containing values mapped to a sine wave. Let us presume that our sine table contains 1024 entries - a number that may be represented by precisely 10 bits.
- "table_index" is used to index the table. It must be able to index all of the sine table (10 bits) so we will use a 16 bit value for this.
- "amplitude" is the result from the sine table. This could be an integer or floating point value - whatever format your system ultimately requires.

To calculate the value of "table index" we need to take the top 10 bits of the "accumulator", which means that we can obtain by taking the accumulator value and shifting it to the right by 6 bits (e.g. size of accumulator in bits, minus the size of table index in bits, which are 16 and 10, respectively.) By doing this we can see that as the value of "accumulator" increases, it also points farther along the sine table. When the value of accumulator "rolls over" back to zero, the pointer into the sine table also resets back to the beginning.

To understand how the frequency is generated, let us now assume that "frequency word" is set to 1. We can see that every 65536 times through the loop we will "roll" through an entire sine wave, but since our sample rate is 48 kHz, we know that the produced frequency will be:

48000 / 65536 = 0.732 Hz (approx.)

If we want to generate an arbitrary frequency, we would take the above ratio and use it to calculate the "frequency word" as in:

desired frequency / (48000/65536)

or, rewriting a bit:

(desired frequency * 65536) / 48000

or, reducing the fraction even more:

(desired frequency * 512) / 375

If we wanted to generate a frequency of precisely 6 kHz, the above equation would yield a "frequency word" value of 8192 - which just happens to be exactly 1/8th of 65536, which makes sense since we have already figured out that since 6 kHz is 1/8th of our sample rate of 48 kHz, it would therefore take 8 samples to produce such a sine wave!

Modulating our carrier:

We now know how to generate a carrier, but how to modulate it?

We know that FM is simply "Frequency Modulation", and we also know that by varying the value of "frequency_word" above, we can change the frequency, does this mean that if we superimpose audio on our value of "frequency_word" that we can modulate our signal?

(Let us assume that "audio_index" is updated each time through the loop and represents one sample of the audio, also sampled at 48 kHz, to be modulated onto the carrier.)

Let us first take a look at the first line after the start of the loop where we added the term "audio". Because our audio is already represented digitally as a numerical value that goes above zero for a positive voltage and below zero for a negative voltage, it would make sense that we could simply add this to our "frequency_word" value.

In other words (pun intended!) when the audio voltage increased above zero, our frequency would increase, but as it went below zero, our frequency would decrease - just as FM would. What's more, because this is an exact numerical representation, our frequency change would be proportional to the audio applied - which is just want we want to occur for low-distortion, faithful representations of our audio.

Figure 1:
A demonstration of a typical FM signal modulated with a tone as
displayed on the mcHF's waterfall display.(This picture doesn't have much to do with transmitting, butI wanted to include some color in this posting!)

There is another modification to the above code as well. If you look, you will see that we do two look-ups in the "sine_table". The first one is our original value, now called "amplitude_I" (In-phase) but we now see that we have taken our table index and added 256 to it which is precisely 1/4th the size of our sine table: One quarter of a sine wave is, of course, represented by 90 degrees. After "fixing" that value so that it is always lower than 1024, we look up into the sine table again and call this value "amplitude_Q".

What we have done here is generated two sine waves exactly 90 degrees apart from the same frequency synthesis operation. As you will recall from your understanding of the "phasing" required to generate an SSB signal, you need both an "I" and "Q" signal for transmit and unlike the generation of quadrature audio for SSB which requires some fairly "hairy" math, we have handily done this for FM with almost no math at all!

Comment: In reality one would employ modulus operators rather than "greater-than and subtract" or even logically "AND" the table index value with 1023 (decimal) after adding 256 to it, either being a much quicker operation for a computer than in the example shown above.

Additional audio processing:

As was mentioned in the discussion about the demodulator, for amateur radio purposes we don't actually want to transmit an "FM" signal, but really a "PM" (Phase Modulated) signal. For our purposes, a PM signal is really an FM signal in which the audio is pre-emphasized at a rate of 6dB per octave - which is a fancy way of saying that a signal voltage that causes +/- 1 kHz of deviation with a modulation frequency of 1 kHz would cause +/- 2 kHz of deviation with a modulation frequency of 2 kHz. As noted in previous postings, this is done to improve the overall signal-noise performance of the system as it boosts the "highs" in the audio at about the same rate as the noise increases on weak signals.

There are some practical issues with this pre-emphasis that must be considered. If you were to start your pre-emphasis at 1 Hz, by the time you get to 2048 Hz would have pre-emphasized your audio by 66 dB or so (if I've done my math right) - a ridiculous amount, and any audio content that might be present at higher frequencies would be boosted even more! Such high frequency content would also cause high amounts of deviation which, in turn, would greatly expand the occupied bandwidth of the transmitted signal - something that is neither necessary or neighborly!

Clearly, this implies that we must do two things:

Limit the frequency range over which we do our pre-emphasis

Filter the the audio to the desired range for speech communications

If we start our pre-emphasis at around 200 Hz, instead, we can see that by the time we get to 3200 Hz we need to boost only by 36 dB - a far more reasonable value than the 66 dB mentioned above!

For speech we need only reproduce audio from around 250 Hz to something in the area of 2500-2700 Hz. Our low-frequency limit is imposed by our desire to include the encoding of "subaudible" tones on our transmitted signal and it is important that we remove a reasonable amount of energy in that frequency range so that spectral content of the human voice - particularly that of the adult male - does not encroach in that area and cause reliability problems with decoding on the receiving end.

Fortunately, such tools are already at hand!

Pre-emphasis:

We already met the differentiator algorithm in our receiver as it was used to reduce the low-frequency, subaudible tones from received audio. This algorithm reproduced below.

loop:

filtered = α * (old_input + input - old_filtered)

old_filtered = filtered

old_input = input

Where:
"α" is the the equivalent of the time constant in that a "small" α
implies an R/C circuit with a fast time-constant strongly affecting
"low" frequencies.
"input" is the new audio sample.
"filtered" is the high-pass filtered (differentiated) audio

In the case of the receiver we used it as a high-pass filter with a cut-off below the speech range, but for transmit we can adjust the "knee" of this differentiator such that it is just above the speech range, instead. As it turns out, an "α" value of 0.05 is suitable for our purposes.

Filtering:

Having done pre-emphasis, we still need to do filtering, but I'd already implemented a "transmit" filter on the mcHF for both SSB and AM and all I needed to do was redesign the filter to suit the FM audio characteristics. I used MatLab and the filter designing plug in for this, but the "Iowa Hills" filter designer suite (free and easily found via a web search) could be used to produce suitable sets of coefficients. As are most of the filters used on the mcHF, these filters were IIR since one can get a lot of "bang for the buck" in terms of good, "sharp" filtering with relatively few computation cycles.

With a fairly compact filter with fairly low computational overhead I was able to achieve >20dB of voice rejection in the upper frequencies used for subaudible tones and well over 50 dB of attenuation above 3200 Hz - much better than that achieved in a typical, analog FM transmitter. At the low end, audio below 250 Hz was attenuated by at least 20dB with over 40 dB reduction for audio content below 200 Hz - this, to prevent "pollution" of the frequencies occupied by subaudible tones.

Comment: Because I was using floating-point math, the order in which pre-emphasis or filtering is done is unimportant. If fixed-point/integer math was used, instead, you would need to carefully analyze the signal path and the resulting values to assure that nothing "blew up" (e.g. exceeded the integer range or, at the other extreme, was so "small" that resolution was compromised and distortion/noise introduced) at the expected audio levels at all frequencies!

Limiting:

One necessary function employed in typical amateur FM transmitters is that of the limiter to "clip" the audio to an absolute maximum level. This device improves overall intelligibility by allowing the designer to set the microphone gain to a somewhat excessive level, but the clipper forcing a maximum loudness. The result of this is that somewhat low audio from soft-spoken users is boosted to promote intelligibility while those who have "hot" microphones and/or speak loudly do not cause excess amounts of deviation of the transmitted signal.

The mcHF does not have a clipper, per se, but it does have an audio compressor that was implemented many versions ago to improve usability on SSB. Like a limiter, this device prevents the audio from exceeding an absolute maximum level and it also adjusts the gain upwards during quiet portions to reduce the "peak-to-average" ratio of the audio, thereby improving intelligibility.

I did experiment with both a "hard" and a "soft" limiter (or clipper) in software. A "hard" limiter is one that sets an absolute ceiling on the amplitude of the signal present while a "soft" limiter, as the name implies, is less abrupt, more like the "knee" of a diode with some sort of logarithmic-like action. Because they alter the waveforms, both of these methods generate harmonics and intermodulation products - the "soft" limiter being a bit less aggressive - which require that filtering be done. Since we are low-pass filtering the audio, the higher-frequency harmonics outside the speech range will not contribute to the occupied bandwidth of the signal but the increased energy in the upper speech frequencies from harmonics of the lower-frequency audio components coupled with the pre-emphasis can somewhat broaden the signal. Finally, because the signal is distorted by the clipping action, high audio levels that result in a lot of clipping are likely to result in audio that "sounds" degraded.

In comparing the sounds of the limiter/clipper to that of the audio compressor, I decided to use the latter as it was more "pleasing" to the ear and more versatile, overall since there are a number of available adjustments (e.g. the amount of audio into the variable gain stage and the decay rate of the variable gain stage.) As noted, I eventually decided not to use a clipper and used the already-existing compressor, instead.
Without either this compressor or a limiter, an FM
transmitter would have the problem of their signal being "too wide" for loud-speaking operators
and "too quiet" for those that were soft spoken - neither condition
being desirable for communications!

Subaudible tone:

A desirable feature of a modern FM transmitter is that of the Subaudible Tone, discussed previously. This signalling method consists of the generation of a low-level sine wave in the range of approximately 67 to 250 Hz that is superimposed on the transmitted audio which is used by the receiver to validate the presence of signal. While this was traditionally used in commercial radio to allow several groups of users to "share" the same frequency, amateurs have typically used it as interference mitigation techniques to prevent the receiver - that of the repeater or the user - from responding to noise or signals for other sources.

Since it is just a sine wave, it is very easy to generate - and we already know how!

Re-using the DDS algorithm, above, we need only generate a single tone, unmodulated this time, and sum it with our transmitted audio. We would of course, do this after we have done our pre-emphasis, filtering and limiting/compressing, placing this tone generator just before the DDS that produced our FM signal as the code snippet below illustrates.

[The code that follows is the DDS that generates the FM signal as shown above]

As we can see, only if the tone generator is turned on do we go through the loop - something that we'd do to save processing power. Included in the above code snipped is an additional parameter, "amplitude" which would be used to scale the value from the sine lookup table such that it yielded the proper amount of deviation on the transmitted signal - typically in the area of 15-20% of peak deviation.

In the case of generating the audio tone we'd need to make certain that we had enough frequency resolution to accurately produce the tone, and as we already calculated we know that with a 16 bit counter at a 48 kHz sample rate our resolution is approximately 0.732 Hz. Assuming no sample rate errors, this would imply that we could generate the desired frequency to within half that resolution worst-case, or approximately 0.366 Hz.

This frequency resolution is adequate for generation of these tones, again assuming that there are no additional error sources related to sample rate, but if you were not satisfied with that amount of resolution it would be a fairly simple matter to increase the number of bits used by the accumulator and frequency word to improve the resolution, just as was suggested for the frequency modulation.

For the calculation of the frequency words, all that was required was that the code include a table containing the frequency, in Hertz, of each of the subaudible tones: Since we already know the sample rate and the number of bits - and therefore the maximum counts for our accumulator - we can calculate, on the fly, the needed "frequency word".

Tone burst:

There is one more tone signalling scheme occasionally encountered on FM repeater systems, and that is the "tone burst", sometimes called "Whistle-up". Although it has largely disappeared from use, it is reportedly used in some areas in Europe.

In this system a short burst of a specific tone, typically 1750 or 2135 Hz, is transmitted to "wake up" a repeater for use, and once this is done, it may be used normally. Once the repeater has again become dormant, a timer expires and it will no longer respond to signals until it, again, receives a burst.

For a Wikipedia article that includes a section about single-tone signalling, look here: link

This is generated in exactly the same way as a subaudible tone, namely with a bit of DDS code that looks just like the above! From a purely practical standpoint, unless one absolutely needed to generate both a subaudible tone and a tone burst at the same time, one could actually use the same bit of code - provided that the amplitudes of the different tones (subaudible, burst) were taken into account.

Unlike a subaudible tone, a tone burst is typically transmitted only at the beginning of a transmission and for a fairly short period - perhaps one second. While one could rely on the user to time the duration of the tone burst, on the mcHF the duration of the burst was timed by counting the number of interrupt cycles called to process the audio, making the process semi-automatic: The user needed only activate push-to-talk and then press-and-hold the button that produced the tone and the rest would be completed automatically.

"DCS" codes:

Not mentioned previously there is one additional signalling scheme sometimes found on amateur frequencies, and that is "DCS" (Digital Coded Squelch) which consists of a binary signal with a base frequency of 134.4 Hz modulated with a specific bit pattern. This signalling scheme is quite rare in the amateur radio community - and even rarer on HF (10 meter) repeaters where this radio is likely to be used - so there has been no serious consideration in its support

How well does it work?

Generating a sine wave with a low-distortion audio generator and feeding the modulated signal into a communications test set (a.k.a. "Service Monitor") - a device specially designed to analyze the quality of communications gear - the modulation was tested at several audio frequencies and found that the distortion was at approximately the level of detection of the instrument to at least +/- 5 kHz deviation.

Testing was also done using speech at various levels, including attempts to overdrive the audio input and on a spectrum analyzer the occupied bandwidth was observed to be contained within the expected bandwidth mask for both the "narrow" (+/- 2.5 kHz) and "wide" (+/- 5 kHz) deviation settings with no audible distortion present nor were there any unexpected spectral components outside the frequency range typical of such an FM signal - even though the "accumulator" of the frequency-modulating DDS is only 16 bits and the audio represented by it will have even lower resolution (e.g. on the order of 12 bits, maximum.)

At the present time I can't think of any additional features that would need to be added to the FM mode so it is, for now, "good to go."

Thursday, December 17, 2015

Several years ago we started replacing the old, "iron" ballasts with T-12 fluorescent tubes at my work with T-8 tubes and electronic ballasts. The program to do this was along these lines:

When a T-12 tube or ballast failed, immediately retrofit the fixture.

As soon as practical, retrofit those lights that are on all of the time, or "most" of the time.

Gradually retrofit other fixtures as needed/convenient.

The lamp sockets (known as "tombstones") for T-8 and T-12 sockets are, for all practical purposes, interchangeable. (Yes, there can be some voltage rating differences...) Since, in most cases, we were working with what had originally been 4-tube fixtures - two of which (e.g. one ballast) had been disconnected years ago to save energy (we didn't miss the extra light) we had extra tombstones on-hand to replace those that were broken, discolored or damaged and in some cases we even replaced the bracket and tombstone with those of the brand new "official" T-8 variety.

Figure 1:Typical "iron" ballast used for T-12 tubes.Click on the image for a larger version.

We were also able to get T-8 ballasts of known-good brands (Advance, Triad, Sylvania, etc.) for very good prices from an number of sources - far lower than "retail" - and we were sticking only with these brands because we felt that they would offer good reliability and efficiency. In the years since we have started, the majority of fixtures have been retrofitted and we have yet to replace even a single electronic ballast and we've only replaced a half-dozen tubes - most of those within a week or so of being installed - all of this while providing at least as much light with lower power usage and heat load.

Before we go on, here are a few "weasel words" of warning:

The devices discussed present hazardous/fatal shock hazards: Do not even think about doing any such modification unless you have experience with such things.

There
are no guarantees, expressed or implied, that the modifications will work for you, are
suitable or will meet electrical code requirements in your area.

If you do such modifications you take any and all risks related to it, including damage to person or property, injury, fire, or liability.

All
RF interference situations are unique: There is no guarantee at all
that even when performed as described that the steps described will
mitigate problems that you might be experiencing.

Please use care and common sense!

You have been warned!

The rise of interference:

There is one place where we have had problems with the T-8 tubes and accompanying electronic ballasts and that is the electronics shop.

Soon after retrofitting the fixtures in the engineering shop we noticed that we had difficulty hearing local 2 meter and UHF repeater when listening in that room, the noise floor having risen up by 10-20dB - depending on frequency and exact location within the room - with 120 Hz modulated noise and the fact that it disappeared when the lights were turned off pointed directly to the cause.

Differences between magnetic and electronic ballasts:

For a typical 4-foot (approx. 102 cm) tube, good, old magnetic ballasts are, at least when powered from 120 volts, transformers that boost the voltage to that high enough to sustain conduction on each cycle of the 120 Hz sinusoid. When starting up there are special windings that will activate the filament and/or boost the voltage such that this conduction - which is higher when the tube is "cold" (both physically and has not been lit) but when the current is established as the tube lights, these diminish. To limit the current through the tube to a safe value it is typical that there is a large amount of series inductance which, by virtue of its reactance, sets the maximum current consumed by the lamp.

For more general information about how fluorescent tubes and ballasts work, go to "Sam's F-Lamp FAQ" - link.

For various reasons (core, skin-effect, magnetic and resistive losses, etc.) these old "iron" ballasts are somewhat inefficient, but even so, this efficiency of the linear, fluorescent tube made the combination far more efficient than practically any other tungsten (incandescent) light source. Nowadays, the skinnier "T-8" tubes are used along with electronic ballasts and these skinnier tubes can, for various reasons, produce at least as much light as the larger T-12 tubes, but in order to maintain such efficiency and to provide reasonable longevity they must be driven with an electronic ballast.

Unlike the old-fashioned "iron" ballast, modern, electronic ballast are essentially high-power oscillators that produce a lot of voltage (perhaps much as 1kV peak, open-circuit and while starting the tube) at a fairly high frequency - say, 30-60 kHz. Using this higher frequency allows much smaller, lower-loss magnetics to be used and driving the tube with a higher frequency than that of the mains improves its "power to light" conversion efficiency even more.

Electronic ballasts and interference:

Even the old, "iron" ballasts with the fluorescent lamps could cause RFI (Radio Frequency Interference), largely due to significant nonlinearities in the conduction of the tube with respect to the applied voltage resulting in the generation of harmonics. Furthermore, a malfunctioning ballast could generate interference in other ways, such as internal arcing. Typically, such interference, if present, occurred on the mediumwave (AM broadcast) frequencies and, occasionally, in the HF (shortwave) range and, most typically, either very short range - within a few feet/meters of the lamps themselves - or conducted via the power connections. Usually, replacement of the defective tubes and/or ballast remedied this situation.

With electronic ballasts the situation is quite different.

With a high-power (10's of watts) electronic oscillator on-board there are already problems at hand:

With frequencies in the 10's of kHz, harmonics appearing in the mediumwave and HF are of much lower order. In other words, the 30th harmonic of the switching frequency in an electronic ballast puts you squarely in them mediumwave range while the 30th harmonic from an iron ballast is still within the frequency range of hearing!

The rise/fall times of the waveforms from an iron ballast are quite slow in comparison with those from an electronic ballast which, by necessity of design, can be in the order of 100's or 10's of nanoseconds. Having these high switch rates on the transistors inside the electronic ballasts puts energy squarely in the MF, HF and even the VHF or UHF range!

The length of a common 4-foot (1.2 meter) tube/fixture is commensurate to the wavelengths within the VHF/UHF range. This means that the fluorescent tube itself is perfectly capable of acting as a radiator at many frequencies - not to mention various other parts of the fixture and contained wiring.

Unless one were to scrap the electronic ballast altogether and go back to using the old, iron ballast, if you experience interference issues there are a number of things that you will have to do.

Conduction of high frequency energy onto conductors and radiators:

In the case of our electronics shop the biggest problem appeared to be direct radiation of energy at VHF frequencies, apparently from the tube and connecting wiring. One way to minimize this effect would be to reduce the harmonic energy emerging from the ballasts and finding their way onto the tube and wiring.

The most practical way to do this with minimal risk of deleterious effects (e.g. loss of efficiency, electric shock, fire, reduction of operational lifetime of the ballast and/or tubes) is to apply a bit of series inductance to the leads that feed the fluorescent tube. While we are at it, we might as well apply some common mode filtering to the AC (mains) leads as well to minimize conduction of "grunge" that might find its way out via that path, as well.

Figure 2 shows the typical connection of the tubes and electronic ballast.

Figure 2:Electronic ballast and typical connection to tubes. In typical "room temperature" installations the filament heater is not used, except as a simple emitter of electrons: In the example, above, "load sharing" is afforded by the individual, series capacitor for each tube and starting ionization for each tube is provided solely by high-voltage excitation from the ballast.Not depicted, ballasts are available that have four wires to each tube to provide heater current for starting the tube(s) in cold environments, but most "indoor" ballasts have only a single wire connected to each end of the tube. Click on the image for a larger version.

As can be seen, the tubes are in parallel with the output of the high-power oscillator, typically using a series reactance (capacitor) to limit each tube's current and to provide a mechanism for load-sharing and offer operational stability in the presences of the tubes' negative resistance characteristics. Many electronic ballasts allow different numbers of tubes to be connected: 3-tube ballasts will allow 2 or 3 tubes while 2-tube ballasts will usually allow just one tube to be powered, and using these series reactances is a simple way of keeping the tube current more-or-less constant, despite the number of tubes connected - either at the time of installation or due to later tube failure.

Figure 2 also indicates something else: On the wires marked "A" and "B" are carried the high-frequency currents from the ballast's oscillator. As we discussed before, not only are these same currents very non-sinusoidal and contain many harmonics, but the tubes themselves tend to badly distort the currents, further-increasing the harmonic content on these leads. Finally, at VHF and UHF frequencies, the very lengths of wires "A" and "B" and the tubes themselves, "T", can make them capable radiators in their own rights!

The distortion added by the tubes themselves is likely not significant one gets above MF and HF frequencies as the mechanism is generally too slow in its own right, but we still have the harmonics from the oscillator itself to contend with which can be carried, as current, by the ionization of the gas within the tube itself which will form an antenna and as we know, as long as there is some current flowing, we will have electromagnetic radiation.

Inductors used for reducing the harmonic content on the tube current:

Our best bet is to reduce the harmonic content on the tube current itself and the easiest way to do this with minimal intrusion and risk to the user is to insert a small amount of inductance onto the connecting leads "A" and "B".

Figure 3:A pile of toroidal inductors pulled from some scrapped power supplies.In the upper-left is a bifilar choke used for mains filtering, also foundin higher-quality switching supplies.Click on the image for a larger version.

We had a number of junked switching power supplies in the "boneyard" and we pulled a pile of toroidal inductors (see Figure 3) from some of them and did a quick analysis.

The most common type of toroidal inductor is the sort typically found in PC power supplies, usually used for output filtering, wound in either a yellow or yellow-and-white core. The permeability of these cores isn't extremely high, typically achieving somewhere in the area of 20-30 microhenries with 10-15 turns, but they are not particularly suitable for use much above the range of 100-200 kHz: Higher than this they get quite lossy - but we don't really care too much about that since we are trying to quash this energy, anyway.

The "Yellow-White" cores appear to be "26 Mix" Iron Powder types that are specified for use from DC to approximately 800 kHz. The aforementioned "Yellow" cores would have the color code for "6-mix", but when they were measured, their permeability was closer to that of "26 mix" indicating that whoever made them wasn't precisely following color convention!

The sizes (outside diameters) of these inductors varied, from approximately 1 inch (25.4mm) in diameter to over 2 inches (50mm). If you were to translate these to "store bought" toroids these could equate to sizes from "T94-26" to as large as "T200-26" or "T225-26".

Another inductor that appeared to be useful was one that was simply painted light gray and it, too had permeability roughly equal to that of the yellow/yellow-white ones - that is, 10-20 turns yielded something in the area of 20-100 microhenries. I've found no obvious reference to "light gray" painted toroids in the typical references so I don't know what "mix" they might be, but they appear to be vaguely similar to the "Yellow-White" ones in general properties.

When either the gray or the yellow/yellow-white inductors were broken, it appeared that they contained some sort of metallic powder, pressed and molded into shape and covered with paint.

The third type of inductor, often used for filtering the the AC mains input, appeared to be some sort of very high permeability ferrite and putting 10-20 turns on these yielded hundreds of microhenries or even millihenries of inductance: These are not suitable points "A" and "B" and should be set aside for now - but we will be using them later. When broken these particular cores were either a black compound (e.g. ferrite) or, in a few cases, wound with some sort of thin, ferromagnetic tape as in the case of the red-cored inductors depicted in Figure 3.

Which toroids to be used where?

Let's take a look at a redrawn version of Figure 2:

Figure 4:A fluorescent ballast/fixture with added ferrite to minimize RFI by virtue of "isolating" the fluorescent tubes atradio frequencies.For "cold weather" ballasts that use filament current for starting, each "pair" of wires to each tube would be treated as a single conductor through L1-L3. See text for explanations! Click on the image for a larger version.

First, let us take a look at inductor L1 which is in series with the "common" lead "B" that connects to one side of both tubes. With the inductors that we had we are able to put approximately 15 turns of the original wire into this core which yielded an inductance of 10-15uH (value not critical!) In running the numbers we can see that at 30 kHz, a typical operating frequency of an electronic ballast, this inserts approximately 3 ohms of reactance into the circuit. Considering that for a 32 watt, T8 fluorescent tube that the average current will be around 300 milliamps (see reference, here - link) we can calculate that if the current were perfectly sinusoidal (it is not!) the effective loss would be a volt. Because this is a reactance, we would not experience I^2R losses in the same way that we would if we were dropping the same voltage with an ohmic loss (a resistor) but even if we were, this would amount to only 1/3rd of a watt or so.

If we were to translate this same inductance (15 uH) to the middle of the AM broadcast band (1 MHz) we would see a reactance of around 94 ohms - significantly higher than at the operating frequency, reducing the potential current through the tube, at that frequency, by a factor of around 30 which corresponds to 10's of dB reduction. Since only a fraction of the oscillator's energy is at harmonics of this magnitude a negligible amount of power is being blocked by this inductance.

Taking this to an extreme, let us consider a frequency of 150 MHz with this same 15uH of inductance where we find the reactance to be approximately 14000 ohms - extremely high and, for all practical purposes, completely "blocking". In reality the effective series resistance would not be nearly this high as not only would this particular core material ("26" mix) not be effectively offering such inductance at this frequency, but there would also be capacitive (shunt) coupling across the inductor/windings itself and between various conductors (wires) located under the cover of the ballast shield. Nevertheless, the impedance would be significantly increased due to the inductance present and the core losses at this frequency.

Taking another look at Figure 4 we can see that we'd need to install similar filtering in the other leads connecting to the tubes as well (e.g. the "A" leads) and the similar math applies. By installing such inductors in both leads we effectively "isolate" the tube at high frequencies by virtue of the series inductance while leaving the frequencies at which the tube is powered - around 30 kHz - virtually unaffected.

How do we know that this does not affect normal operation? A bit of emperical measurement can (and did) verify this assertion:

A "Lux Meter" placed below the fixture showed no discernible difference in light output before and after modification.

The added inductors did not get perceptibly warm: If they did, this would indicate power loss!

A core not to use at points "A" and "B":

In an experiment I placed one of the high permeability ferrite cores (not one of the yellow cores)
in place of L3: It immediately got too hot to touch, indicating both
high losses and a significant amount of inductance. When checked on an
inductance meter I found that approximately the same number of turns as
I'd placed on this core when tested in the fixture (15 or so)
yielded around 200 microhenries - a reactance of around 38 ohms at 30
kHz - a significant amount at 300 milliamps of tube current!

The upshot: When trying an core, verify that it does not warm up by an appreciable amount before deciding to use it!

If it gets (noticeably!) warm after several seconds/minutes, it is not suitable and could pose a hazard due to heat:
This heat could, in theory, melt insulation which could pose an
electrical/fire hazard or the heat itself could melt or cause combustion
in its own right!

Don't worry - we still plan to use this core!

Additional modification:

Figure 5:Added inductances on the leads marked "A" in Figure 4,above. The inductor on the far left is a multifilar choke -see the text below for an explanation. There are actually threesmall yellow/white toroidal inductors, one being obscured.Click on the image for a larger version.

If you look at Figure 5 you will see, on the right side, the three, smaller yellow/white inductors (one is obscured.) In this particular case this is a 3-tube fixture, the third tube used to provide extra light as it was placed over the workbench area.

Because it was directly over the workbench, it was typically much closer to the gear being used and tested which made the noise emitted by it a bit more problematic by proximity. To reduce this noise still-further an additional inductance was added in the form of the large, yellow inductor on the left. This particular core was taken from a scrapped PC power supply (almost all of them have such a device) and the three wires were wound, in parallel - keeping the same number of turns - through the core to fill it up to make, in this case, a "tri-filar" winding. Doing this forced an additional series inductance on the "A" leads depicted in Figure 4 as "F1" but it forces the currents through the tubes to be equal - not too difficult a job considering that L1 and L2 (depicted in Figure 4) have already presented a high impedance (at high frequencies) on those leads already.

While doing the initial work on the first fixture to be modified, a Yaesu FT-817 - an all-band, all-mode amateur radio transceiver - was laying on the workbench immediately below it and it was noted that by grabbing a wire of the unmodified fixture I could couple some of the noisy RF (at around 144 MHz) into my body which would then be re-radiated as evidenced by the the noise from the FT-817 increasing.

As a rough indicator of the efficacy of the added inductances I observed that after installing L1-L3 I could grasp the wire "after" these inductors (on the "tube" side) and hear no difference, but if I did so on the "ballast" side of the inductors I heard the noise increase, indicating to me that they were doing their job in removing a significant amount of "grunge". While I was doing this I noted that I could also hear "grunge" if I grabbed around the AC mains wires as well, indicating that some of this energy was being conducted via that route. Being a commercial building, the mains input is routed via metallic conduit and it was noted by poking around in the "drop" ceiling and placing the antenna of the FT-817 near-ish the power conduit that relatively little of the noise was emanating from the conduit itself, but since I had a plethora of chokes on-hand I decided to try an experiment.

Using the high-mu (lossy) cores:

Using one of the same "lossy" ferrite cores that got hot when tested, I parallel-wound, in bifilar fashion, as many turns of the AC mains wire of the ballast as I could fit on the core. As with the milti-filar core, above, it is important that these wires be kept parallel and that the exact same number of turns be used for each of the two mains conductors so that the "common mode" attenuation be maximized.

When wound in a bifilar fashion - and on leads that have only a residual amount of RF energy - we are using these ferrite cores in the manner intended with no fear of their getting hot: Because both wires of the AC mains go through in parallel, their magnetic fields cancel and the core does not "see" it - it is only that small amount of RF energy that is not supposed to be there that is being blocked by the bifilar winding on the core! It is important to note that in order for this type of winding to work, you must wind equal numbers of turns of both wires, preferably in parallel or gently twisted together: It is by virtue of the equal inductance and coupling between these two wires that this sort of filter works.

After doing this I did the "grab" test with the wire again: If I grasped the wire on the "ballast side" of the newly-added bifilar inductor I could hear an increase in the noise on the FT-817, but if I did so on the "mains" side I could not. In other words, this choke was keeping the "grunge" from the ballast out of the mains.

While it may not have been particularly important on VHF/UHF to add this extra bifilar inductor on the mains power leads, it was pretty easy to do since I had the fixture "open" already - and I decided that every little bit helps! Also, it is worth noting that on MF and HF that it will likely be via the mains power leads that the majority of noise will be conducted while at higher frequencies like VHF and UHF, the wavelengths are small enough that energy can be emitted directly from the lamps and fixtures themselves as their very size is a significant portion of a wavelength.

Efficacy of the modifications: Did they work?

Of the 6 fixtures in the shop, only the two directly
above the workbench where they are closest equipment under test now have both the small chokes in each of the leads in series with the tubes (e.g. L1 and L2). All of them have an choke on the "common" side of the tube (L3), the common-mode choke on all of the tubes (F1) and the bifilar choke on the mains side (F2).

Did this modification have any effect? The quick answer is yes and here are the ways that it was measured.

A portable HF/VHF/UHF all-mode transceiver with a whip antenna (an FT-817)
was placed underneath/near the fixture, the distance of the plastic
diffuser. The "S-Meter" reading of the noise of the modified fixture
was compared with an unmodified fixture with the same complement of
tubes and ballast type/model and the modified (filtered) fixture was found to radiate far less than the unmodified one based on observations of the S-meter and audible noise.

Two spectrum analyzers were set up on the workbench in the electronics shop
connected to small whip antennas and sweeping in the range of 100-200
MHz. After all of the fixtures in the shop were modified, the amount of
noise indicated on the analyzers was 10-20dB lower than before the modification, depending on frequency. It was not completely gone, but significantly reduced.

Using a portable handie-talkie transceiver, several VHF (2 meter)
repeaters were checked for receive signal quality within the shop before and
after fixture modification. All but the strongest were inaudible in the
shop prior to modification, but all were easily audible afterwards. A
slight amount of extra noise is apparent when the lights are turned on,
but there is no trouble in finding a location that provides a suitably
noise-free signal for testing/monitoring now.

Final comments:

The addition of screening

Prior to the installation of the chokes in series with the lamps some experimentation was done with metallic screening of the fixture. The particular fixtures that we are using are light-gauge Lithonia fixtures that have spot-welded seams and appear to be likely to provide a reasonable RF-tight seal on the back side: It was via the open front, through the plastic diffuser that RFI was radiating - apparently from the tubes themselves.

In an experiment we decided to cover the front of the fixture with aluminum foil. While blocking the light, it would serve to help us determine if this was a viable means of containing the RFI within the enclosure. We placed, lengthwise, two parallel sheets of foil over the diffuser, but it happened that there was a very narrow (1/4" inch, approx. 6mm) gap between the two strips running along the long dimension of the fixture.

We noted that with the foil in place that the interference actually got worse until we bridged the narrow gap with small pieces of scrap foil in 3-4 places. We surmised that the two pieces of foil were acting as independent radiators until we connected the two, at which point the noise level was reduced - but it was still significant. Clearly, the foil itself was coupled to the the noise energy within the box and re-radiating a significant percentage.

We then bridged the foil to the steel box itself, causing a further reduction in noise - but the amount of reduction depended strongly on where, exactly, we made this connection. If this was done in each corner of the box (e.g. four places) there was a significant reduction.

Practically speaking one would not use aluminum foil to provide such shielding as it would clearly block the light. Aluminum window screen would also not be recommended as there is not guarantee that there is an electrical connection across its entire face as each wire is not "bonded" to its neighbor - plus it, too, blocks a significant amount of light.

This leaves the use of so-called "expanded metal" or "hardware cloth" - both of which are electrically-connected across their plane as options. Of the two, the "hardware cloth" - typically galvanized steel mesh is, by far, the cheapest and least "light blocking" alternative - plus, it is possible to solder to the zinc coating with relatively little difficulty. This material is available in different mesh sizes and for VHF/UHF frequencies the larger sizes (around an inch or several centimeters) would be adequate.

The problem would be providing a firm, electrical bonding of this screen to the case of the light fixture. On the "hinge" side of the diffuser cover one would use very short, wide metal straps to make the connection to the case, but for best efficacy it would also be preferable to make a similar connection on the side opposite the hinge where the cover opens - but aside from the installation of "finger stock" or very short plug/receptacles, this is rather complicated to do!About LED replacements:

I am aware of LED drop-in replacements for T-12 and T-8 fluorescent tubes, but has, for the time-being, dismissed these owing to issues of cost, reliability, efficiency, and "light quality" (e.g. color rendition or "CRI"). For an in-depth report on this subject see "Performance of T18 and T8 Fluorescent Lamps and Troffers and LED Linear Replacement Lamps" - link. Since this report was published significant improvements have been made in LED efficiency, but similar issues - particularly those related to quality and longevity - remain unless one uses devices made by reputable manufacturers.

As far as EMI/RFI issues related to LED replacements for T-12 and T-8 tubes: Based on reports in the amateur radio press and on forums such as the EEVBlog (examples here - link and another link) I would expect similar - or worse - problems to occur, depending on the manufacturer - as they would also have issues with high slew rates on switching regulators and/or semiconductor-related transients. While it is very likely that common-mode mains filtering would also be recommended on these devices as well, it may be more difficult to remove noise along the entire length of a series or series-parallel fed array of LEDs that was nearly 4 feet (1.2 meters) long as this is a significant portion of a wavelength at VHF/UHF frequencies and could easily radiate on its own right!

If you do wish to upgrade an existing "troffer" or similar fluorescent fixture to LEDs, I would strongly recommend that you obtain JUST ONE and carefully analyze it before you risk ruining your HF, VHF and/or UHF reception with little means of mitigation!