DSPRelated.com
Forums

Bandpass FIR filter varying over time

Started by Michel Rouzic January 6, 2006
I'm looking for a way to filter a signal in a way so that it's a
bandpass filter that follows the curve. Basically in a signal
containing a frequency sweep and lots of noise i'm trying to isolate
the frequency sweep.

The only way i can think about doing that is cutting the signal in
slices that overlap each other, window them, filter each of them with a
FIR that would change on each slice, and then put it back together.

Isn't there a better way to do it, like, a way to directly make a
filter that doesn't always stay the same over time?

Michel Rouzic wrote:
> I'm looking for a way to filter a signal in a way so that it's a > bandpass filter that follows the curve. Basically in a signal > containing a frequency sweep and lots of noise i'm trying to isolate > the frequency sweep. > > The only way i can think about doing that is cutting the signal in > slices that overlap each other, window them, filter each of them with a > FIR that would change on each slice, and then put it back together. > > Isn't there a better way to do it, like, a way to directly make a > filter that doesn't always stay the same over time?
An answer depends a lot on the application, and what is known about the signal and noise. A straight-to-the-point answre to your question might include some "FM demodulator-controlled adaptive filter." I don't know if such a thing can be made, but it raises one question: Is the noise so bad that you don't find the signal at all? Is there anything at all to lock on to? Maybe it is better to step back a little, and ask what you are trying to achieve. If you know the shape of the signal, and want to detect its arrival time and/or amplitude, then maybe a matched filter or a Wiener filter can be useful to you. Why don't you sketch the application and purpose of your processing? Rune
"Michel Rouzic" <Michel0528@yahoo.fr> wrote in 
news:1136548378.921373.285580@g44g2000cwa.googlegroups.com:

> I'm looking for a way to filter a signal in a way so that it's a > bandpass filter that follows the curve. Basically in a signal > containing a frequency sweep and lots of noise i'm trying to isolate > the frequency sweep. > > The only way i can think about doing that is cutting the signal in > slices that overlap each other, window them, filter each of them with a > FIR that would change on each slice, and then put it back together. > > Isn't there a better way to do it, like, a way to directly make a > filter that doesn't always stay the same over time? >
If you know the center frequency, you could create a tracking filter. Basically, you use a fixed filter and multiply the incoming signal with sinusoids. You might google weaver filters. Another method that I have used that worked well from a human interface tuning point of view was a set of LP FIRs of identical length. I used two ping pong memories for coefficients. When I needed to change coefficents, I would DMA to the unused bank. When the transfer was complete, I toggled the memories for the next sample. This worked because the group delay was the same for all filters. -- Al Clark Danville Signal Processing, Inc. -------------------------------------------------------------------- Purveyors of Fine DSP Hardware and other Cool Stuff Available at http://www.danvillesignal.com
Hi!

> I'm looking for a way to filter a signal in a way so that it's a > bandpass filter that follows the curve. Basically in a signal > containing a frequency sweep and lots of noise i'm trying to isolate > the frequency sweep. > > The only way i can think about doing that is cutting the signal in > slices that overlap each other, window them, filter each of them with a > FIR that would change on each slice, and then put it back together. > > Isn't there a better way to do it, like, a way to directly make a > filter that doesn't always stay the same over time?
Generate a bandlimited frequency interpolator that follows the frequency sweep and converts it to a constant frequency. Then you can apply a standard bandpass filter. Regards! Atmapuri
Al Clark wrote:
> "Michel Rouzic" <Michel0528@yahoo.fr> wrote in > news:1136548378.921373.285580@g44g2000cwa.googlegroups.com: > > > I'm looking for a way to filter a signal in a way so that it's a > > bandpass filter that follows the curve. Basically in a signal > > containing a frequency sweep and lots of noise i'm trying to isolate > > the frequency sweep. > > > > The only way i can think about doing that is cutting the signal in > > slices that overlap each other, window them, filter each of them with a > > FIR that would change on each slice, and then put it back together. > > > > Isn't there a better way to do it, like, a way to directly make a > > filter that doesn't always stay the same over time? > > > > If you know the center frequency, you could create a tracking filter. > Basically, you use a fixed filter and multiply the incoming signal with > sinusoids. You might google weaver filters.
oh yeah, since it's a linear frequency sweep that i'm trying to isolate, I could multiply it by another frequency sweep that would make that it would make the signal flat (i mean at the same frequency the whole time) and then i could filter it with a normal bandpass FIR. So, for a frequency sweep going from frequency 0 to 0.5, what frequency sweep(s) should I multiply it with to bring it all at 0.25? 0.25 to 0 up to the middle and then from 0.5 to 0.25, right?
> Another method that I have used that worked well from a human interface > tuning point of view was a set of LP FIRs of identical length. I used two > ping pong memories for coefficients. When I needed to change coefficents, I > would DMA to the unused bank. When the transfer was complete, I toggled the > memories for the next sample. This worked because the group delay was the > same for all filters.
sorry to tell you that but i didnt understand the whole thing. Im still quite a beginner
Atmapuri wrote:
> Hi! > > > I'm looking for a way to filter a signal in a way so that it's a > > bandpass filter that follows the curve. Basically in a signal > > containing a frequency sweep and lots of noise i'm trying to isolate > > the frequency sweep. > > > > The only way i can think about doing that is cutting the signal in > > slices that overlap each other, window them, filter each of them with a > > FIR that would change on each slice, and then put it back together. > > > > Isn't there a better way to do it, like, a way to directly make a > > filter that doesn't always stay the same over time? > > Generate a bandlimited frequency interpolator that follows > the frequency sweep and converts it to a constant frequency. > > Then you can apply a standard bandpass filter.
ok, but what is a bandlimited frequency interpolator?
Rune Allnor wrote:
> Michel Rouzic wrote: > > I'm looking for a way to filter a signal in a way so that it's a > > bandpass filter that follows the curve. Basically in a signal > > containing a frequency sweep and lots of noise i'm trying to isolate > > the frequency sweep. > > > > The only way i can think about doing that is cutting the signal in > > slices that overlap each other, window them, filter each of them with a > > FIR that would change on each slice, and then put it back together. > > > > Isn't there a better way to do it, like, a way to directly make a > > filter that doesn't always stay the same over time? > > An answer depends a lot on the application, and what is known about the > > signal and noise. > > A straight-to-the-point answre to your question might include some > "FM demodulator-controlled adaptive filter." I don't know if such > a thing can be made, but it raises one question: Is the noise so > bad that you don't find the signal at all? Is there anything at all > to lock on to? > > Maybe it is better to step back a little, and ask what you are trying > to achieve. If you know the shape of the signal, and want to detect > its arrival time and/or amplitude, then maybe a matched filter or > a Wiener filter can be useful to you. > > Why don't you sketch the application and purpose of your > processing?
OK I guess I should have made what I'm trying to do a bit more clearly. Basically, the signal is dominating the noise, if you look at any time, in the signal, the strongest frequency is one matching to the signal. Anyways, we know exactly at what frequencies and when the signal is, so what we're looking for is the envelope of the signal. That's why noise has to be removed, because it's way too important to keep it with the signal, it changes completly the envelope of the signal, although the signal is way strong enough to tell it's there. So I can tell exactly at any precise time where the signal (the frequency sweep) passes by, the goal is to isolate it from the noise to get the precise shape of the signal.
Al Clark wrote:
> "Michel Rouzic" <Michel0528@yahoo.fr> wrote in > news:1136548378.921373.285580@g44g2000cwa.googlegroups.com: > > > I'm looking for a way to filter a signal in a way so that it's a > > bandpass filter that follows the curve. Basically in a signal > > containing a frequency sweep and lots of noise i'm trying to isolate > > the frequency sweep. > > > > The only way i can think about doing that is cutting the signal in > > slices that overlap each other, window them, filter each of them with a > > FIR that would change on each slice, and then put it back together. > > > > Isn't there a better way to do it, like, a way to directly make a > > filter that doesn't always stay the same over time? > > > > If you know the center frequency, you could create a tracking filter. > Basically, you use a fixed filter and multiply the incoming signal with > sinusoids. You might google weaver filters.
I over simplified it when I said it had to be multiplied with a frequency sweep. Makes the signal partially flat, while making images of it not flat at all. I forgot what has to be done to correctly shit the frequency of a signal by modulation tho... btw, i tried googling weaver filters and didn't give much results...
On 6 Jan 2006 03:52:58 -0800, "Michel Rouzic" <Michel0528@yahoo.fr>
wrote:
> >I'm looking for a way to filter a signal in a way so that it's a >bandpass filter that follows the curve. Basically in a signal >containing a frequency sweep and lots of noise i'm trying to isolate >the frequency sweep. >
Phase-locked loop comes to mind...
Hi!

This I think is very good description:

http://ccrma.stanford.edu/~jos/resample/Theory_Ideal_Bandlimited_Interpolation.html

Best Regards!
Atmapuri

"Michel Rouzic" <Michel0528@yahoo.fr> wrote in message 
news:1136561777.775948.157710@z14g2000cwz.googlegroups.com...
> > Atmapuri wrote: >> Hi! >> >> > I'm looking for a way to filter a signal in a way so that it's a >> > bandpass filter that follows the curve. Basically in a signal >> > containing a frequency sweep and lots of noise i'm trying to isolate >> > the frequency sweep. >> > >> > The only way i can think about doing that is cutting the signal in >> > slices that overlap each other, window them, filter each of them with a >> > FIR that would change on each slice, and then put it back together. >> > >> > Isn't there a better way to do it, like, a way to directly make a >> > filter that doesn't always stay the same over time? >> >> Generate a bandlimited frequency interpolator that follows >> the frequency sweep and converts it to a constant frequency. >> >> Then you can apply a standard bandpass filter. > > ok, but what is a bandlimited frequency interpolator? >