Looking around for a practical hilbert transform implementation

I’ve been pondering this idea for a while now. When I’m at home, I like to listen to my music… and sometimes, talk to people using VoIP. One big bug-bear I have, however, is being tethered to a desk by the cord of a headset.

Now… I basically have a few options:

  • Cordless headphones (either infra-red or radio) — but these usually are receive-only. I’d need to rig up some sort of cordless microphone to transmit a signal the other way.
  • Bluetooth headset — but they’re much too expensive, and I have no idea how well Linux works with them.

I’ve heard comments that both of the above options, have somewhat lesser audio quality, than a wired set. Many cordless headphones operating on radio, use stereo wideband FM to transmit a signal with a bandwidth of approximately 15KHz/channel. This is okay for what I want, but if I can do better, I might as well aim for it. ;-)

Bluetooth headsets offering the A2DP profile, may do better, but they do it through the use of lossy compression. To be honest though, I’m also concerned with compatibility — I don’t have any Bluetooth interfaces on my computers so I’m up for a dongle. My phone (a Nokia 3310… yes, I’ve had it since 2001) doesn’t support Bluetooth, thus the only device I’d be able to use it with, is my laptop. I don’t have a lot of money to experiment — and headsets of this nature cost around AU$250 or more.

So I’m looking at homebrewing a set. Looking at the ACMA radio frequency class licenses, it would seem these devices are classed under the LIPD class license. I’ll have to double check with the ACMA on this… but looking at the gory details, it would seem there are a few bands that are allocated under this license for this purpose…

  • 88MHz - 108MHz (FM broadcast band) with 180kHz bandwidth and maximum EIRP of 10µW
  • 174MHz - 230MHz (VHF television) with 330kHz bandwidth and maximum EIRP of 3mW
  • 520MHz - 820MHz (UHF television) with 330kHz bandwidth and maximum EIRP of 100mW

Now… out of these… the 520MHz-820MHz band has the most liberal power limit of the three, and is also the least populated of the three bands. The catch is… all three of these have to use FM.

There are three signals to be transmitted in two different directions for this project…

  • Two 25kHz audio channels, transmitted by base station to be received by the headset.
  • A single 25KHz audio channel, transmitted by headset back to the base station.

For the headset microphone->base station path, this is trivial… I’ll just use one frequency to transmit a 25kHz mono signal, modulated on a wideband FM carrier. Easy. The difficult bit, is the other direction.

Stereo FM is normally achieved through the use of a subcarrier technique. The left and right channels are transformed into two signals that I call the mono signal (left + right), and the differential (left - right). They’re both band-limited to 15kHz. The mono signal is sent at baseband, with the differential modulated using a DSBSC subcarrier at 38kHz. The entire modulating signal has a bandwidth of 53kHz, generated by these two 15kHz sources.

My idea… is to use single sideband to conserve the bandwidth a bit. I’m undecided as to how I’ll transmit the left and right channels, whether I transmit them separately, or using the mono+differential technique discussed earlier. However it’s done… the plan is that one signal will be transmitted at baseband, and the other… using upper-sideband at approximately 30kHz. The entire modulating signal will have a bandwidth of approximately 55kHz, generated from two 25kHz sources. By reducing the bandwidth of the modulating signal, I hope to improve the noise immunity of my system so I can rely on minimal transmission power.

I have covered the principles behind single-sideband transmission, including simulating a Hartley modulator using Matlab. But looking around, I can’t see any schematic or notes on a Hilbert transform. It should be noted that a real-world Hilbert transform is an approximation, since the theoretical one is non-causal — this is why Harley modulators have a compensating delay.

There’s notes on how to implement them using discrete signal processing techniques, but I really don’t want the complexity of a DSP in something so trivial. I know it can, and has, been implemented using analogue electronics. If anyone knows of a simple, easy-to-follow schematic or notes on the topic… I’d be greatly interested. :-)

Looking around I’ve found these documents… but if people know of others, I’m all ears. ;-)

One Response to “Looking around for a practical hilbert transform implementation”

  1. Redhatter’s Web Blog » Blog Archive » Messing with Bluetooth SCO Says:

    [...] of you may recall a recent post in which I described my idea for building my own high-fidelity wireless headset. The recommendation from most people was just to buy a bluetooth headset. Today I was in the [...]

Leave a Reply


Bad Behavior has blocked 512 access attempts in the last 7 days.