|
Prev: Separation of speech from multiple speakers speaking in different microphones connected to a mixer
Next: Optimal FFT algorithm for hardware implementation ?
From: Rune Allnor on 4 May 2008 16:47 On 2 Mai, 20:32, dcbr...(a)gmail.com wrote: > I'm new to DSP, learning from Understanding Digital Signal > Processing. I'm into the FIR filter chapter right now and I'm > beginning to work on some real data at the same time. > > Basically, I have some data that I'd like to do a spectral analysis > on. My data contains an obvious high amplitude low frequency > component and possibly some other higher frequency, but much lower > amplitude components. When I do a fft on this data, the low frequency > component leaks into the rest of the spectrum and masks any other > components. I made some test data to see if I could design a filter > to remove this low frequency component, but I haven't been successful > so far. I would suggest to use Welch's method and use an as long data record as possible. There isn't much else you can do, as there will always be some spectral leakage. Just forget about 'choosing record lengths which makes the strong component fall exactly on a spectrum coefficient'. Those sorts of things only happen in classroom excercises and discussions on comp.dsp; never in practice. The task, then, is to accumulate enough data so that a) you can choose a long enough record length to get a lobe width of the winodw function narrow enough to separate the two spectrum lines. b) average enoug spectra to make the weaker component appear clearly above the noise floor. Basically then, you need a lot of data. If you can't get that much data, you are for all intents and purposes out of luck. Rune
From: dcbrien on 5 May 2008 12:09
On May 4, 4:47 pm, Rune Allnor <all...(a)tele.ntnu.no> wrote: > On 2 Mai, 20:32, dcbr...(a)gmail.com wrote: > > > I'm new to DSP, learning from Understanding Digital Signal > > Processing. I'm into the FIR filter chapter right now and I'm > > beginning to work on some real data at the same time. > > > Basically, I have some data that I'd like to do a spectral analysis > > on. My data contains an obvious high amplitude low frequency > > component and possibly some other higher frequency, but much lower > > amplitude components. When I do a fft on this data, the low frequency > > component leaks into the rest of the spectrum and masks any other > > components. I made some test data to see if I could design a filter > > to remove this low frequency component, but I haven't been successful > > so far. > > I would suggest to use Welch's method and use an as long data > record as possible. > > There isn't much else you can do, as there will always be some > spectral leakage. Just forget about 'choosing record lengths > which makes the strong component fall exactly on a spectrum > coefficient'. Those sorts of things only happen in classroom > excercises and discussions on comp.dsp; never in practice. > > The task, then, is to accumulate enough data so that > > a) you can choose a long enough record length to get a lobe width > of the winodw function narrow enough to separate the two > spectrum lines. > b) average enoug spectra to make the weaker component appear > clearly above the noise floor. > > Basically then, you need a lot of data. If you can't get that > much data, you are for all intents and purposes out of luck. > > Rune Thanks for the responses everyone. Yes, choosing my record lengths is good for a modeled example like I gave, but not so good for a real work example as you pointed out. Decimation seems like an interesting prospect, especially if I have a 1000Hz signal, but I'm really only interested in the low frequency components. I'm just reading on that now, but after playing around with it in Matlab it might be helpful. |