ping: Jim Thompson

Jim,

I was perusing your website and happened upon your patent regarding demodulating of FSK. Is this the currently easiest/best way to decode FSK? Or would I be better off doing with SW and microcontroller?

I was thinking that a comparator with hysteresis to minimize noise could be used to 'square up' the input signal and then I could just use a timer on the uC to count transitions over the bit time. The freqs are 1562.5 and

2083.3 with 520.83 bit/sec rate--- giving 3 or 4, respective, transitions per bit time. Is this a good way to do it or is there another easier/better way?

Thanks,

Bo

PS. Thanks to Tim Wescott for pointing out that you are--not comp.arch.embedded...where I originally posted.

Reply to
Bo
Loading thread data ...

Most now use SW to decode FSK, but the analog approach generally yields better performance in low signal-to-noise situations. When I designed that scheme I was working in the dark ages with acoustic-muff coupling to telephones running at 300-1K Baud ;-)

Using a comparator on analog signals often aggravates the noise.

...Jim Thompson

--
|  James E.Thompson, P.E.                           |    mens     |
|  Analog Innovations, Inc.                         |     et      |
 Click to see the full signature
Reply to
Jim Thompson

Hello Bo,

As Jim said, much of this is now done in firmware. Look at DTMF decoder app notes in the TI MSP430 section or at other uC manufacturers. In my experience the lion's share of this job is to provide a nice matched filter for the FSK tones. Steep yet good pulse response, good time domain behavior and unconditional stability. Wave digital filters are quite efficient here. The rest is pretty trivial, usually. Unless you get into esoteric modulation schemes.

Regards, Joerg

formatting link

Reply to
Joerg

Wideband FSK is nontrivial to decode in software. The Bell 202 spec was 1200 baud async, shifting between 1200 to 2200 Hz, so you get very few edges to work with. A decent analog FSK decoder will deliver very nice, low jitter 1200 baud serial data here.

John

Reply to
John Larkin

Yep. My circuit simply implements the classic "S-curve" discriminator in an active filter manner. Performance in a noisy environment is great!

...Jim Thompson

--
|  James E.Thompson, P.E.                           |    mens     |
|  Analog Innovations, Inc.                         |     et      |
 Click to see the full signature
Reply to
Jim Thompson

I like using a 90+-x degree phase shifter (which turns out to be a very peaky 2-pole lowpass filter) followed by an xor, then a lowpass, then a comparator.

But FSK is going away. QAM and constellations and such are faster and easier to decode digitally.

John

Reply to
John Larkin

Those who bother to study my patent will see that I very cleverly derive the 90° directly from the gyrator-based filter... thus all the filtering and shifting is done simultaneously ;-)

...Jim Thompson

--
|  James E.Thompson, P.E.                           |    mens     |
|  Analog Innovations, Inc.                         |     et      |
 Click to see the full signature
Reply to
Jim Thompson

...

Even with enough hysteresis?

...

Jerry

--
Engineering is the art of making what you want from things you can get.
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Reply to
Jerry Avins

1200 baud FSK changes frequency in a _single_ cycle, so period-type demodulation goes to crap quickly in the presence of noise.

...Jim Thompson

--
|  James E.Thompson, P.E.                           |    mens     |
|  Analog Innovations, Inc.                         |     et      |
 Click to see the full signature
Reply to
Jim Thompson

Shades of the tape interface on my KIM-1 and its successors.

Jerry

--
Engineering is the art of making what you want from things you can get.
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Reply to
Jerry Avins

Hello Jim,

Zero-crossers are pretty much a thing of the past here, just like they are for medical ultrasound Doppler. You can do it in the digital domain these days. All it takes is a good uC such as the MSP430. But not a version with a puny 10 or 12 bit converter. They offer some that convert to 16 bits.

Regards, Joerg

formatting link

Reply to
Joerg

Yep. Why do it with an analog discriminator when you can do it with DSP... nobody will notice the performance degradation... they're so young they don't even know what they should be getting ;-)

...Jim Thompson

--
|  James E.Thompson, P.E.                           |    mens     |
|  Analog Innovations, Inc.                         |     et      |
 Click to see the full signature
Reply to
Jim Thompson

Sounds complicated and costly in CPU time / resources.

A few years ago I implemented the method from figure 3 on the following web page in an FPGA:

formatting link

The filter can be a simple 2nd order low-pass. Despite the simplicity it works very well as a caller-id decoder.

--
Reply to nico@nctdevpuntnl (punt=.)
Bedrijven en winkels vindt U op www.adresboekje.nl
Reply to
Nico Coesel

Hello Jim,

No need for a real DSP. A uC in the buck-fifty class can do the whole filter, demod plus UI and whatever else folks want in that module. With next to nothing in external part. As long as the firmware designer doesn't do anything stupid like forgetting that there can be substantial out-of-band noise. That is what the designers of my answering machine probably did :-(

Regards, Joerg

formatting link

Reply to
Joerg

Hello Nico,

Not at all. This is a fairly simple realization:

formatting link

Or look at this, where they crammed eight concurrently running filters into a really old and slow MSP430:

formatting link

With today's editions of the same controller you'd have plenty of CPU horse power left for other stuff. Heck, if you took one from the F4xx series you could run a bare-bones web host on it in parallel.

FPGA are another option. I never really warmed up to those because they were a bit overpriced in the early 90's and obsoleted way too fast for my taste. Usually I need something that my clients can keep producing for a couple of decades. Which is why I do many things analog :-)

Regards, Joerg

formatting link

Reply to
Joerg

What's wrong with a 12 bit converter? The entire telephone network uses

12 bits.

Steve

Reply to
Steve Underwood

I disagree with this. If you try to simulate an analog circuit in the digital domain then you have to sample very fast indeed to get similar performance levels. If you start from scratch, however, you can get just as close to the theoretical optimum with digital as you can with analog. In some cases the 'optimal' detector would be absurdly complex and subject to all sorts of mismatch and drift in analog circuitry, yet is quite practical to implement in software.

In low noise situations, yes. Only if you have a strong signal would you want to use something like a comparator followed by a discriminator.

--
Tim Wescott
Wescott Design Services
 Click to see the full signature
Reply to
Tim Wescott

This is exactly the same method I pointed to :-)

Not bad, but this DTMF detector won't work reliably (it won't pass the talk-off tests). Been there, done that. One customer had a female employee who could say at least one '5' DTMF digits in every sentence.

--
Reply to nico@nctdevpuntnl (punt=.)
Bedrijven en winkels vindt U op www.adresboekje.nl
Reply to
Nico Coesel

No, the telco network is 8 bits, 8000 times each second.

Don

Reply to
Don Bowey

The eight bits are derived via A-law or mu-law from 12-bit data.

Jerry

--
Engineering is the art of making what you want from things you can get.
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Reply to
Jerry Avins

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.