NoMoreZealots
NoMoreZealots

Reputation: 5318

Integer FM Demodulation

What are some software (or FPGA) techniques suitable for FM demodulation? I've been experimenting in MATLAB to try and get an algorthm right, but I've been basing it on a analog reference material with limited results. I can make out the audio, but there is horrible distortions that I can't fix with filtering. Ultimately I want to be able to use an integer implementation on FPGA, but I need to get the basic demodulation working first.

An FFT shows the spectrum has been moved back down to be centered around DC, but it just doesn't sound right.

Upvotes: 0

Views: 661

Answers (1)

Peter Gibson
Peter Gibson

Reputation: 19554

If you're already hearing the sound, then I'd say you're most of the way there. It might help if you explain (or paste) some of the code/algorithm that you're using, as well as describing the noise as best you can.

If the noise is only appearing in integer based calculations, then integer rounding errors or overflow are the most likely causes of the noise - though perhaps shifting from the frequency domain is causing that noise to sound a little foreign. The key to good integer based calculations is to know your operator precedence and to make sure you're staying within the bounds of your integer at each step of the calculation. Too big and you'll get overflow, too small and you'll lose resolution.

Pre/de-emphasis may also cause your output to sound strange if you're not accounting for it although I wouldn't really expect "heavy distortion" to result.

Upvotes: 2

Related Questions