Demodulating a noisy digital sound signal

Thread Starter

Pedro Malabarte

Joined Dec 27, 2017
13
I am trying to carry some data over sound in environments that have a relevant amount of background noise, so my first step was to design a passband filter (algebraically, not on a circuit). There is a very convenient FIR filter design tool at http://t-filter.engineerjs.com/, which provided my with an 89 taps filter, given my specs (stopbands 0-4000Hz and 6000 to 22050, passband between 4700 and 5300Hz, sampling 44100Hz).

I implemented the calculations on a spreadsheet and they worked beautifully in several tests with a few simultaneous sinusoidal noises. Now, modulating the data into sound is easy and there are several good alternatives. But when the modulated signal comes out of the filter, the signal is virtually gone, once each filtered signal intensity is a weighted average of 89 previous intensities!

So, for instance, if the unfiltered signal is a full sine wave period alternated with a zero intensity signal ( y = sin wt for 0<wt<2pi and y = 0 for 2pi<wt<4pi), over and over again (simulating an infinite stream of 0s and 1s), the filtered signal is just y = sin wt, all the way through! No matter how I change the amplitude or the phase from one period to the other, the massive data averaging that occurs at the filter erases the whole thing.

Now, I suppose that exactly the same thing happens when you are carrying data over electromagnetic waves. So, what is the solution for this? A filter must always be used, right? And filters always average out signals, so how come the data is not lost? What am I doing wrong here?

Best
Pedro
 
Top