From: Tim Wescott on
Jim Thompson wrote:

> On Mon, 24 Apr 2006 10:23:56 -0500, "Bo" <bo(a)> wrote:
>>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?
> 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 ;-)
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.
>>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
> Using a comparator on analog signals often aggravates the noise.
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.
>>PS. Thanks to Tim Wescott for pointing out that you are--not
>>comp.arch.embedded...where I originally posted.
> ...Jim Thompson


Tim Wescott
Wescott Design Services

Posting from Google? See
From: Nico Coesel on
Joerg <notthisjoergsch(a)> wrote:

>Hello Nico,
>>>>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?
>>>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
>> Sounds complicated and costly in CPU time / resources.
>Not at all. This is a fairly simple realization:

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

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

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(a)nctdevpuntnl (punt=.)
Bedrijven en winkels vindt U op
From: Joerg on
Hello Steve,

>> 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.
> What's wrong with a 12 bit converter? The entire telephone network uses
> 12 bits.

Nothing wrong with it. But on a noisy channel that contains some radio
links it might not cut it. Why settle for 12bits when you can buy a uC
with a 16bit converter at around the same budget? It's not advertised
much for some reason but the MSP430F2013 contains a 16bitter and can be
had between $1.50 and $2.00 depending on volume. I believe its prime
market is power metering and that probably doesn't require much advertising.

Regards, Joerg
From: Clay S. Turner on

"Tim Wescott" <tim(a)> wrote in message
> Well, I think that's where it came from, too -- but it was supposed to be
> 12 * 6. My kid does that. I try to impress upon him the importance of
> showing your work for just that reason. Still, he (and I) persist in
> doing things in our heads with little errors.
> --
> Tim Wescott
> Wescott Design Services

Well what is really fun to show is how to improperly reduce a fraction and
still get the right result

16 1
--- = ---
64 4

just cancel out the sixes.

Try it with


cancel the nines and you get 1/5

Of course the trick is there are four cases where this works when 2 digits
are divided by two digits.


First  |  Prev  | 
Pages: 1 2 3
Prev: FFT in OpenCV
Next: TalkThrough ADSP BF533