Reply by Jerry Avins March 4, 20042004-03-04
Curl wrote:

> Hi All. > > I need to detect a 1kHz square wave sampled at 48kHz. > I have no idea of what the SNR will be. > > I remember that the optimal solution to detect a known waveform in > the presence of white noise is the matched filter. > > To reduce computation cost , I downsample by 12 > And the 32-bits input buffer is converted into a full scale 16-bits > buffer. > I compute mean(x) , and center the buffer (x = x-mean(x)) > > Now I compute correlation with the square waveform [ __|��|__ ] > I take the max of the correlation vector and use it as a statistical > detection threshold.. > > I think this could be safer and simplier > > Any comments ?
Only this for now: The waveform won't (better not be!) be as square as you seem to imagine it. You will need to filter out harmonics above the 23rd. That will round corners and may tilt the flat parts. In order to downsample by 12 (giving an effective sample rate of 4 KHz), you will need to remove components at and above 2 KHz. Since the square wave consists of odd harmonics, only the fundamental will be left. The good news is that noise is removed too. Jerry -- Engineering is the art of making what you want from things you can get. �����������������������������������������������������������������������
Reply by Curl March 4, 20042004-03-04
Hi All.

I need to detect a 1kHz square wave sampled at 48kHz.
I have no idea of what the SNR will be.

I remember that the optimal solution to detect a known waveform in
the presence of white noise is the matched filter.

To reduce computation cost , I downsample by 12
And the 32-bits input buffer is converted into a full scale 16-bits
buffer.
I compute mean(x) , and center the buffer (x = x-mean(x))

Now I compute  correlation with the square waveform [ __|��|__ ]
I take the max of the correlation vector and use it as a statistical
detection threshold..

I think this could be safer and simplier

Any comments ?