Reply by Vladimir Vassilevsky April 18, 20132013-04-18
On 4/18/2013 6:28 AM, westocl wrote:
> I have a signal that is the output of a real time system. The system > performs 'ok' but has a a problem of what i would reduce down to additive > band limited noise. Since I know the source (but cant change it) i know > that it is bandpass noise of spectral bandwith approx .2Fs. > > I am not the liberty to delay the signal AT ALL, so throwing a filter at > the output is out of the question. > > My thoughts were that hopefully there could be a way for me to do some > noise cancelling using my knowlege of the bandlimited nature of the noise > and its statistics. > > Any suggestions? > > (I do not want to add much unwanted noise into an other reigions when > trying to get mitigate this bandpass noise.)
If both models for signal source and noise source are available, then optimal solution is a kind of (possibly nonlinear) Kalman algorithm. By definition, this delivers best result within known data and given constraints. Depending on the nature of a problem, this may or may not work. However, if this doesn't work, nothing else will. Q: Why it is impossible to have sex in Red Square in Moscow ? A: Because every bystander idiot would be trying to give his invaluable advice. Vladimir Vassilevsky DSP and Mixed Signal Designs www.abvolt.com
Reply by westocl April 18, 20132013-04-18
>On Thu, 18 Apr 2013 13:07:30 -0500, dszabo wrote: > >>> Not automatically, but easily. The most direct (and safe) way to >>>> implement it would be as a bunch of resonant notch filters, cascaded >>>> as necessary for rejection and width. That'd guarantee your "no
phase
>>>> shift in the pass bands", and give you a solution that's a collection >> of >>>> cookbook answers. >> >> Wouldn't that operate under the assumption that the signal spectrum and >> noise spectrum don't overlap? I didn't get a condition on that one way >> or the other from the OP, but I was assuming that they did. > > >The best time to remove noise from a signal is, of course, before it gets
>in. > >-- >My liberal friends think I'm a conservative kook. >My conservative friends think I'm a liberal kook. >Why am I not happy that they have found common ground? > >Tim Wescott, Communications, Control, Circuits & Software >http://www.wescottdesign.com
The implicit assumption (thank you for making me state it) is either that the noise and signal don't overlap, or that the cost of having the noise in the signal is greater than the cost of having the signal with a chunk of spectrum missing. The cost of having the noise in the signal is greater than the cost of having the signal with a chunk of spectrum missing is indeed the case!
Reply by Tim Wescott April 18, 20132013-04-18
On Thu, 18 Apr 2013 13:07:30 -0500, dszabo wrote:

>> Not automatically, but easily. The most direct (and safe) way to >>> implement it would be as a bunch of resonant notch filters, cascaded >>> as necessary for rejection and width. That'd guarantee your "no phase >>> shift in the pass bands", and give you a solution that's a collection > of >>> cookbook answers. > > Wouldn't that operate under the assumption that the signal spectrum and > noise spectrum don't overlap? I didn't get a condition on that one way > or the other from the OP, but I was assuming that they did.
The implicit assumption (thank you for making me state it) is either that the noise and signal don't overlap, or that the cost of having the noise in the signal is greater than the cost of having the signal with a chunk of spectrum missing. The best time to remove noise from a signal is, of course, before it gets in. -- My liberal friends think I'm a conservative kook. My conservative friends think I'm a liberal kook. Why am I not happy that they have found common ground? Tim Wescott, Communications, Control, Circuits & Software http://www.wescottdesign.com
Reply by dszabo April 18, 20132013-04-18
> Not automatically, but easily. The most direct (and safe) way to >> implement it would be as a bunch of resonant notch filters, cascaded as >> necessary for rejection and width. That'd guarantee your "no phase >> shift in the pass bands", and give you a solution that's a collection
of
>> cookbook answers.
Wouldn't that operate under the assumption that the signal spectrum and noise spectrum don't overlap? I didn't get a condition on that one way or the other from the OP, but I was assuming that they did.
Reply by westocl April 18, 20132013-04-18
>On Thu, 18 Apr 2013 12:18:33 -0500, westocl wrote: > >>>On Thu, 18 Apr 2013 11:50:53 -0500, westocl wrote: >>> >>>>>On Thu, 18 Apr 2013 11:02:03 -0500, westocl wrote: >>>>> >>>>>>>On Thu, 18 Apr 2013 06:28:58 -0500, westocl wrote: >>>>>>> >>>>>>>> I have a signal that is the output of a real time system. The >> system >>>>>>>> performs 'ok' but has a a problem of what i would reduce down to >>>>>>>> additive band limited noise. Since I know the source (but cant >>>> change >>>>>>>> it) i know that it is bandpass noise of spectral bandwith approx >>>> .2Fs. >>>>>>>> >>>>>>>> I am not the liberty to delay the signal AT ALL, so throwing a >>>>>>>> filter >>>>>> at >>>>>>>> the output is out of the question. >>>>>>>> >>>>>>>> My thoughts were that hopefully there could be a way for me to do >>>> some >>>>>>>> noise cancelling using my knowlege of the bandlimited nature of >>>>>>>> the noise and its statistics. >>>>>>>> >>>>>>>> Any suggestions? >>>>>>>> >>>>>>>> (I do not want to add much unwanted noise into an other reigions >>>> when >>>>>>>> trying to get mitigate this bandpass noise.) >>>>>>> >>>>>>>How random is this noise? If it's truly random, you're probably >>>>>>>stuck. >>>>>>>If it's at least partly stable, then it can be estimated and >>>>>>>subtracted from the raw signal with no appreciable delay. >>>>>>> >>>>>>>If the noise is narrowband and considerably higher frequency than >> your >>>>>>>signal of interest, a notch filter might add negligible delay. >>>>>>> >>>>>>> >>>>>> -How random is this noise? >>>>>> >>>>>> I would say for all practical purposes, it could be considered to
be
>>>> the >>>>>> output of a bandpass filter driven by white noise. >>>>>> >>>>>> -If the noise is narrowband and considerably higher frequency than >>>>>> your signal of interest, a notch filter might add negligible delay. >>>>>> >>>>>> The noise has 'considerable bandwith' call it .2Fs so notch and any >>>>>> convolutional type filtering is out. Im thinking hit has to be some >>>> kind >>>>>> of statistical additive/cancelling filter? >>>>> >>>>>Any kind of linear filter, no matter how hard you try to fool
yourself
>>>>>with fancy terms, is going to add the same kind of delay. Basically, >> if >>>>>you try you'll just invent an obfuscated bandstop filter. >>>>> >>>>>By "convolutional" filter do you mean FIR, or do you mean IIR as
well?
>>>>>An IIR bandstop filter will only create delay at the edges of the >>>>>stop- band, where your information is questionable anyway. >>>>> >>>>>_Any_ filter that you add in the one path is going to filter signal >>>>>right >>>> >>>>>along with noise -- you can't change that. If you have access to the >>>>>process that's generating the noise then you may be able to filter it >>>>>and >>>> >>>>>subtract it out of your intended output in such a way that the result >> is >>>>>much cleaner. Depending on how much information you have, how >>>>>consistent >>>> >>>>>the coupling is, and how much you need to attenuate the signal, doing >> so >>>>>can range from easy-peasy to a hopeless attempt at black magic. >>>>> >>>>>-- >>>>>Tim Wescott Control system and signal processing consulting >>>>>www.wescottdesign.com >>>> >>>> >>>>>By "convolutional" filter do you mean FIR, or do you mean IIR as
well?
>>>>>An IIR bandstop filter will only create delay at the edges of the >>>>>stop- band, where your information is questionable anyway. >>>> >>>> I meant FIR. Would and IIR bandstop approach zero delay in the >>>> 'non-rejection band'?? Never had much use to try one until now. >>> >>>Not automatically, but easily. The most direct (and safe) way to >>>implement it would be as a bunch of resonant notch filters, cascaded as >>>necessary for rejection and width. That'd guarantee your "no phase >>>shift >> >>>in the pass bands", and give you a solution that's a collection of >>>cookbook answers. >>> >>>>>_Any_ filter that you add in the one path is going to filter signal >>>>>right >>>> >>>>>along with noise -- you can't change that. >>>> >>>> I was thinking about setting up come kind of process that has the
same
>>>> statistacal properties as my known bandlimted noise and doing some >>>> substraction. Not putting any multiplicitive thing 'inline'... Maybe >>>> some kind of addaptive thing.. who knows, im fishing. >>> >>>I'm not sure what you're thinking. >>> >>>If you just come up with a noise process with the same statistics and >>>spectral density and add it in (or subtract it -- same thing) all
you'll
>>>do is double your noise power. >>> >>>If you observe your output signal and make a best guess of the noise
and
>>>subtract that out, all you'll do is take a very involved and difficult >>>road to a plain old bandstop filter (assuming no adaptation). Making
it
>>>adaptive might improve things somewhat, or it may just give you >>>opportunities for your product to misbehave when you're not there to
see
>>>it. >>> >>>If you have a way of observing your noise signal independently of the >>>output, before it goes through its bandpass filter, then that's what I >>>was talking about at the end of my note. It may be just the bees knees >>>to knock the noise down, or it may be the good intentions paving the >>>road >> >>>to your own personal hell -- it all depends on how much you need to >>>knock >> >>>the noise down, and how much the coupling varies from the time you >>>measure it to the time you ship product. >>> >>>-- >>>Tim Wescott >>>Control system and signal processing consulting www.wescottdesign.com >> >> Not automatically, but easily. The most direct (and safe) way to >> implement it would be as a bunch of resonant notch filters, cascaded as >> necessary for rejection and width. That'd guarantee your "no phase >> shift in the pass bands", and give you a solution that's a collection
of
>> cookbook answers. >> >> Can you elaborate on this a little for me? > >Damn. It's clear as a bell for me, so I don't know what's missing for >you. > >Assuming that you're programming in C++, and you've got a notch filter >class with an "update" function: > >// function: update >// description: update the filter >// input: the current iteration of the input signal >// output: the current iteration of the output signal >// modifies: the state of the filter >double Update(double x); > >Then you'd configure a bunch of filters (or maybe one, if you can get >away with it) with staggered frequencies: > >CNotchFilter notch1(centerFreq, width); >CNotchFilter notch2(centerFreq + width/2, width); >CNotchFilter notch3(centerFreq - width/2, width); > >(Note that this'll give you a pretty lumpy response in the stop band -- >finding the right spacing for the notches is left as an exercise to the >reader). > >Then in your code, at each sample you'd call: > >x = notch1.Update(noisy_output); >x = notch2.Update(x); >quiet_output = notch3.Update(x); > >>>If you just come up with a noise process with the same statistics and >>>spectral density and add it in (or subtract it -- same thing) all
you'll
>>>do is double your noise power. >> >> Agreed, I was just hoping for some adaptation type algoritm to have
them
>> statistically phase up. I guess thats the 'black magic' thing you spoke >> of that doesn't exist. > >Well, in your case the "some adaptation" would be to to figure out the >state of the bandpass process that's filtering the noise. This would >boil down to a Kalman filter (not really an "adaptive" filter as the term
>is usually used). If you simplified things by taking the steady state >filter, then you would have a bandpass process that you'd then subtract >from the output. This would give you -- wait for it -- a plain old
shift-
>invariant IIR bandstop filter. > >Depending on what you're trying to do, instead of doing a series of >cascaded notches, you may wish to cascade a low-pass with a high-pass. >Either way, you'll still get the effect of no delay well outside of the >stop band. > >-- >My liberal friends think I'm a conservative kook. >My conservative friends think I'm a liberal kook. >Why am I not happy that they have found common ground? > >Tim Wescott, Communications, Control, Circuits & Software >http://www.wescottdesign.com
Thanks. Ill give it a whirl.
Reply by Tim Wescott April 18, 20132013-04-18
On Thu, 18 Apr 2013 12:18:33 -0500, westocl wrote:

>>On Thu, 18 Apr 2013 11:50:53 -0500, westocl wrote: >> >>>>On Thu, 18 Apr 2013 11:02:03 -0500, westocl wrote: >>>> >>>>>>On Thu, 18 Apr 2013 06:28:58 -0500, westocl wrote: >>>>>> >>>>>>> I have a signal that is the output of a real time system. The > system >>>>>>> performs 'ok' but has a a problem of what i would reduce down to >>>>>>> additive band limited noise. Since I know the source (but cant >>> change >>>>>>> it) i know that it is bandpass noise of spectral bandwith approx >>> .2Fs. >>>>>>> >>>>>>> I am not the liberty to delay the signal AT ALL, so throwing a >>>>>>> filter >>>>> at >>>>>>> the output is out of the question. >>>>>>> >>>>>>> My thoughts were that hopefully there could be a way for me to do >>> some >>>>>>> noise cancelling using my knowlege of the bandlimited nature of >>>>>>> the noise and its statistics. >>>>>>> >>>>>>> Any suggestions? >>>>>>> >>>>>>> (I do not want to add much unwanted noise into an other reigions >>> when >>>>>>> trying to get mitigate this bandpass noise.) >>>>>> >>>>>>How random is this noise? If it's truly random, you're probably >>>>>>stuck. >>>>>>If it's at least partly stable, then it can be estimated and >>>>>>subtracted from the raw signal with no appreciable delay. >>>>>> >>>>>>If the noise is narrowband and considerably higher frequency than > your >>>>>>signal of interest, a notch filter might add negligible delay. >>>>>> >>>>>> >>>>> -How random is this noise? >>>>> >>>>> I would say for all practical purposes, it could be considered to be >>> the >>>>> output of a bandpass filter driven by white noise. >>>>> >>>>> -If the noise is narrowband and considerably higher frequency than >>>>> your signal of interest, a notch filter might add negligible delay. >>>>> >>>>> The noise has 'considerable bandwith' call it .2Fs so notch and any >>>>> convolutional type filtering is out. Im thinking hit has to be some >>> kind >>>>> of statistical additive/cancelling filter? >>>> >>>>Any kind of linear filter, no matter how hard you try to fool yourself >>>>with fancy terms, is going to add the same kind of delay. Basically, > if >>>>you try you'll just invent an obfuscated bandstop filter. >>>> >>>>By "convolutional" filter do you mean FIR, or do you mean IIR as well? >>>>An IIR bandstop filter will only create delay at the edges of the >>>>stop- band, where your information is questionable anyway. >>>> >>>>_Any_ filter that you add in the one path is going to filter signal >>>>right >>> >>>>along with noise -- you can't change that. If you have access to the >>>>process that's generating the noise then you may be able to filter it >>>>and >>> >>>>subtract it out of your intended output in such a way that the result > is >>>>much cleaner. Depending on how much information you have, how >>>>consistent >>> >>>>the coupling is, and how much you need to attenuate the signal, doing > so >>>>can range from easy-peasy to a hopeless attempt at black magic. >>>> >>>>-- >>>>Tim Wescott Control system and signal processing consulting >>>>www.wescottdesign.com >>> >>> >>>>By "convolutional" filter do you mean FIR, or do you mean IIR as well? >>>>An IIR bandstop filter will only create delay at the edges of the >>>>stop- band, where your information is questionable anyway. >>> >>> I meant FIR. Would and IIR bandstop approach zero delay in the >>> 'non-rejection band'?? Never had much use to try one until now. >> >>Not automatically, but easily. The most direct (and safe) way to >>implement it would be as a bunch of resonant notch filters, cascaded as >>necessary for rejection and width. That'd guarantee your "no phase >>shift > >>in the pass bands", and give you a solution that's a collection of >>cookbook answers. >> >>>>_Any_ filter that you add in the one path is going to filter signal >>>>right >>> >>>>along with noise -- you can't change that. >>> >>> I was thinking about setting up come kind of process that has the same >>> statistacal properties as my known bandlimted noise and doing some >>> substraction. Not putting any multiplicitive thing 'inline'... Maybe >>> some kind of addaptive thing.. who knows, im fishing. >> >>I'm not sure what you're thinking. >> >>If you just come up with a noise process with the same statistics and >>spectral density and add it in (or subtract it -- same thing) all you'll >>do is double your noise power. >> >>If you observe your output signal and make a best guess of the noise and >>subtract that out, all you'll do is take a very involved and difficult >>road to a plain old bandstop filter (assuming no adaptation). Making it >>adaptive might improve things somewhat, or it may just give you >>opportunities for your product to misbehave when you're not there to see >>it. >> >>If you have a way of observing your noise signal independently of the >>output, before it goes through its bandpass filter, then that's what I >>was talking about at the end of my note. It may be just the bees knees >>to knock the noise down, or it may be the good intentions paving the >>road > >>to your own personal hell -- it all depends on how much you need to >>knock > >>the noise down, and how much the coupling varies from the time you >>measure it to the time you ship product. >> >>-- >>Tim Wescott >>Control system and signal processing consulting www.wescottdesign.com > > Not automatically, but easily. The most direct (and safe) way to > implement it would be as a bunch of resonant notch filters, cascaded as > necessary for rejection and width. That'd guarantee your "no phase > shift in the pass bands", and give you a solution that's a collection of > cookbook answers. > > Can you elaborate on this a little for me?
Damn. It's clear as a bell for me, so I don't know what's missing for you. Assuming that you're programming in C++, and you've got a notch filter class with an "update" function: // function: update // description: update the filter // input: the current iteration of the input signal // output: the current iteration of the output signal // modifies: the state of the filter double Update(double x); Then you'd configure a bunch of filters (or maybe one, if you can get away with it) with staggered frequencies: CNotchFilter notch1(centerFreq, width); CNotchFilter notch2(centerFreq + width/2, width); CNotchFilter notch3(centerFreq - width/2, width); (Note that this'll give you a pretty lumpy response in the stop band -- finding the right spacing for the notches is left as an exercise to the reader). Then in your code, at each sample you'd call: x = notch1.Update(noisy_output); x = notch2.Update(x); quiet_output = notch3.Update(x);
>>If you just come up with a noise process with the same statistics and >>spectral density and add it in (or subtract it -- same thing) all you'll >>do is double your noise power. > > Agreed, I was just hoping for some adaptation type algoritm to have them > statistically phase up. I guess thats the 'black magic' thing you spoke > of that doesn't exist.
Well, in your case the "some adaptation" would be to to figure out the state of the bandpass process that's filtering the noise. This would boil down to a Kalman filter (not really an "adaptive" filter as the term is usually used). If you simplified things by taking the steady state filter, then you would have a bandpass process that you'd then subtract from the output. This would give you -- wait for it -- a plain old shift- invariant IIR bandstop filter. Depending on what you're trying to do, instead of doing a series of cascaded notches, you may wish to cascade a low-pass with a high-pass. Either way, you'll still get the effect of no delay well outside of the stop band. -- My liberal friends think I'm a conservative kook. My conservative friends think I'm a liberal kook. Why am I not happy that they have found common ground? Tim Wescott, Communications, Control, Circuits & Software http://www.wescottdesign.com
Reply by westocl April 18, 20132013-04-18
>On Thu, 18 Apr 2013 11:50:53 -0500, westocl wrote: > >>>On Thu, 18 Apr 2013 11:02:03 -0500, westocl wrote: >>> >>>>>On Thu, 18 Apr 2013 06:28:58 -0500, westocl wrote: >>>>> >>>>>> I have a signal that is the output of a real time system. The
system
>>>>>> performs 'ok' but has a a problem of what i would reduce down to >>>>>> additive band limited noise. Since I know the source (but cant >> change >>>>>> it) i know that it is bandpass noise of spectral bandwith approx >> .2Fs. >>>>>> >>>>>> I am not the liberty to delay the signal AT ALL, so throwing a >>>>>> filter >>>> at >>>>>> the output is out of the question. >>>>>> >>>>>> My thoughts were that hopefully there could be a way for me to do >> some >>>>>> noise cancelling using my knowlege of the bandlimited nature of the >>>>>> noise and its statistics. >>>>>> >>>>>> Any suggestions? >>>>>> >>>>>> (I do not want to add much unwanted noise into an other reigions >> when >>>>>> trying to get mitigate this bandpass noise.) >>>>> >>>>>How random is this noise? If it's truly random, you're probably >>>>>stuck. >>>>>If it's at least partly stable, then it can be estimated and >>>>>subtracted from the raw signal with no appreciable delay. >>>>> >>>>>If the noise is narrowband and considerably higher frequency than
your
>>>>>signal of interest, a notch filter might add negligible delay. >>>>> >>>>> >>>> -How random is this noise? >>>> >>>> I would say for all practical purposes, it could be considered to be >> the >>>> output of a bandpass filter driven by white noise. >>>> >>>> -If the noise is narrowband and considerably higher frequency than >>>> your signal of interest, a notch filter might add negligible delay. >>>> >>>> The noise has 'considerable bandwith' call it .2Fs so notch and any >>>> convolutional type filtering is out. Im thinking hit has to be some >> kind >>>> of statistical additive/cancelling filter? >>> >>>Any kind of linear filter, no matter how hard you try to fool yourself >>>with fancy terms, is going to add the same kind of delay. Basically,
if
>>>you try you'll just invent an obfuscated bandstop filter. >>> >>>By "convolutional" filter do you mean FIR, or do you mean IIR as well? >>>An IIR bandstop filter will only create delay at the edges of the stop- >>>band, where your information is questionable anyway. >>> >>>_Any_ filter that you add in the one path is going to filter signal >>>right >> >>>along with noise -- you can't change that. If you have access to the >>>process that's generating the noise then you may be able to filter it >>>and >> >>>subtract it out of your intended output in such a way that the result
is
>>>much cleaner. Depending on how much information you have, how >>>consistent >> >>>the coupling is, and how much you need to attenuate the signal, doing
so
>>>can range from easy-peasy to a hopeless attempt at black magic. >>> >>>-- >>>Tim Wescott Control system and signal processing consulting >>>www.wescottdesign.com >> >> >>>By "convolutional" filter do you mean FIR, or do you mean IIR as well? >>>An IIR bandstop filter will only create delay at the edges of the stop- >>>band, where your information is questionable anyway. >> >> I meant FIR. Would and IIR bandstop approach zero delay in the >> 'non-rejection band'?? Never had much use to try one until now. > >Not automatically, but easily. The most direct (and safe) way to >implement it would be as a bunch of resonant notch filters, cascaded as >necessary for rejection and width. That'd guarantee your "no phase shift
>in the pass bands", and give you a solution that's a collection of >cookbook answers. > >>>_Any_ filter that you add in the one path is going to filter signal >>>right >> >>>along with noise -- you can't change that. >> >> I was thinking about setting up come kind of process that has the same >> statistacal properties as my known bandlimted noise and doing some >> substraction. Not putting any multiplicitive thing 'inline'... Maybe >> some kind of addaptive thing.. who knows, im fishing. > >I'm not sure what you're thinking. > >If you just come up with a noise process with the same statistics and >spectral density and add it in (or subtract it -- same thing) all you'll >do is double your noise power. > >If you observe your output signal and make a best guess of the noise and >subtract that out, all you'll do is take a very involved and difficult >road to a plain old bandstop filter (assuming no adaptation). Making it >adaptive might improve things somewhat, or it may just give you >opportunities for your product to misbehave when you're not there to see >it. > >If you have a way of observing your noise signal independently of the >output, before it goes through its bandpass filter, then that's what I >was talking about at the end of my note. It may be just the bees knees >to knock the noise down, or it may be the good intentions paving the road
>to your own personal hell -- it all depends on how much you need to knock
>the noise down, and how much the coupling varies from the time you >measure it to the time you ship product. > >-- >Tim Wescott >Control system and signal processing consulting >www.wescottdesign.com
Not automatically, but easily. The most direct (and safe) way to implement it would be as a bunch of resonant notch filters, cascaded as necessary for rejection and width. That'd guarantee your "no phase shift in the pass bands", and give you a solution that's a collection of cookbook answers. Can you elaborate on this a little for me?
>If you just come up with a noise process with the same statistics and >spectral density and add it in (or subtract it -- same thing) all you'll >do is double your noise power.
Agreed, I was just hoping for some adaptation type algoritm to have them statistically phase up. I guess thats the 'black magic' thing you spoke of that doesnt exist.
Reply by dszabo April 18, 20132013-04-18
Why can't you have ANY delay?
Reply by Tim Wescott April 18, 20132013-04-18
On Thu, 18 Apr 2013 11:50:53 -0500, westocl wrote:

>>On Thu, 18 Apr 2013 11:02:03 -0500, westocl wrote: >> >>>>On Thu, 18 Apr 2013 06:28:58 -0500, westocl wrote: >>>> >>>>> I have a signal that is the output of a real time system. The system >>>>> performs 'ok' but has a a problem of what i would reduce down to >>>>> additive band limited noise. Since I know the source (but cant > change >>>>> it) i know that it is bandpass noise of spectral bandwith approx > .2Fs. >>>>> >>>>> I am not the liberty to delay the signal AT ALL, so throwing a >>>>> filter >>> at >>>>> the output is out of the question. >>>>> >>>>> My thoughts were that hopefully there could be a way for me to do > some >>>>> noise cancelling using my knowlege of the bandlimited nature of the >>>>> noise and its statistics. >>>>> >>>>> Any suggestions? >>>>> >>>>> (I do not want to add much unwanted noise into an other reigions > when >>>>> trying to get mitigate this bandpass noise.) >>>> >>>>How random is this noise? If it's truly random, you're probably >>>>stuck. >>>>If it's at least partly stable, then it can be estimated and >>>>subtracted from the raw signal with no appreciable delay. >>>> >>>>If the noise is narrowband and considerably higher frequency than your >>>>signal of interest, a notch filter might add negligible delay. >>>> >>>> >>> -How random is this noise? >>> >>> I would say for all practical purposes, it could be considered to be > the >>> output of a bandpass filter driven by white noise. >>> >>> -If the noise is narrowband and considerably higher frequency than >>> your signal of interest, a notch filter might add negligible delay. >>> >>> The noise has 'considerable bandwith' call it .2Fs so notch and any >>> convolutional type filtering is out. Im thinking hit has to be some > kind >>> of statistical additive/cancelling filter? >> >>Any kind of linear filter, no matter how hard you try to fool yourself >>with fancy terms, is going to add the same kind of delay. Basically, if >>you try you'll just invent an obfuscated bandstop filter. >> >>By "convolutional" filter do you mean FIR, or do you mean IIR as well? >>An IIR bandstop filter will only create delay at the edges of the stop- >>band, where your information is questionable anyway. >> >>_Any_ filter that you add in the one path is going to filter signal >>right > >>along with noise -- you can't change that. If you have access to the >>process that's generating the noise then you may be able to filter it >>and > >>subtract it out of your intended output in such a way that the result is >>much cleaner. Depending on how much information you have, how >>consistent > >>the coupling is, and how much you need to attenuate the signal, doing so >>can range from easy-peasy to a hopeless attempt at black magic. >> >>-- >>Tim Wescott Control system and signal processing consulting >>www.wescottdesign.com > > >>By "convolutional" filter do you mean FIR, or do you mean IIR as well? >>An IIR bandstop filter will only create delay at the edges of the stop- >>band, where your information is questionable anyway. > > I meant FIR. Would and IIR bandstop approach zero delay in the > 'non-rejection band'?? Never had much use to try one until now.
Not automatically, but easily. The most direct (and safe) way to implement it would be as a bunch of resonant notch filters, cascaded as necessary for rejection and width. That'd guarantee your "no phase shift in the pass bands", and give you a solution that's a collection of cookbook answers.
>>_Any_ filter that you add in the one path is going to filter signal >>right > >>along with noise -- you can't change that. > > I was thinking about setting up come kind of process that has the same > statistacal properties as my known bandlimted noise and doing some > substraction. Not putting any multiplicitive thing 'inline'... Maybe > some kind of addaptive thing.. who knows, im fishing.
I'm not sure what you're thinking. If you just come up with a noise process with the same statistics and spectral density and add it in (or subtract it -- same thing) all you'll do is double your noise power. If you observe your output signal and make a best guess of the noise and subtract that out, all you'll do is take a very involved and difficult road to a plain old bandstop filter (assuming no adaptation). Making it adaptive might improve things somewhat, or it may just give you opportunities for your product to misbehave when you're not there to see it. If you have a way of observing your noise signal independently of the output, before it goes through its bandpass filter, then that's what I was talking about at the end of my note. It may be just the bees knees to knock the noise down, or it may be the good intentions paving the road to your own personal hell -- it all depends on how much you need to knock the noise down, and how much the coupling varies from the time you measure it to the time you ship product. -- Tim Wescott Control system and signal processing consulting www.wescottdesign.com
Reply by westocl April 18, 20132013-04-18
>On Thu, 18 Apr 2013 11:02:03 -0500, westocl wrote: > >>>On Thu, 18 Apr 2013 06:28:58 -0500, westocl wrote: >>> >>>> I have a signal that is the output of a real time system. The system >>>> performs 'ok' but has a a problem of what i would reduce down to >>>> additive band limited noise. Since I know the source (but cant
change
>>>> it) i know that it is bandpass noise of spectral bandwith approx
.2Fs.
>>>> >>>> I am not the liberty to delay the signal AT ALL, so throwing a filter >> at >>>> the output is out of the question. >>>> >>>> My thoughts were that hopefully there could be a way for me to do
some
>>>> noise cancelling using my knowlege of the bandlimited nature of the >>>> noise and its statistics. >>>> >>>> Any suggestions? >>>> >>>> (I do not want to add much unwanted noise into an other reigions
when
>>>> trying to get mitigate this bandpass noise.) >>> >>>How random is this noise? If it's truly random, you're probably stuck. >>>If it's at least partly stable, then it can be estimated and subtracted >>>from the raw signal with no appreciable delay. >>> >>>If the noise is narrowband and considerably higher frequency than your >>>signal of interest, a notch filter might add negligible delay. >>> >>> >> -How random is this noise? >> >> I would say for all practical purposes, it could be considered to be
the
>> output of a bandpass filter driven by white noise. >> >> -If the noise is narrowband and considerably higher frequency than your >> signal of interest, a notch filter might add negligible delay. >> >> The noise has 'considerable bandwith' call it .2Fs so notch and any >> convolutional type filtering is out. Im thinking hit has to be some
kind
>> of statistical additive/cancelling filter? > >Any kind of linear filter, no matter how hard you try to fool yourself >with fancy terms, is going to add the same kind of delay. Basically, if >you try you'll just invent an obfuscated bandstop filter. > >By "convolutional" filter do you mean FIR, or do you mean IIR as well? >An IIR bandstop filter will only create delay at the edges of the stop- >band, where your information is questionable anyway. > >_Any_ filter that you add in the one path is going to filter signal right
>along with noise -- you can't change that. If you have access to the >process that's generating the noise then you may be able to filter it and
>subtract it out of your intended output in such a way that the result is >much cleaner. Depending on how much information you have, how consistent
>the coupling is, and how much you need to attenuate the signal, doing so >can range from easy-peasy to a hopeless attempt at black magic. > >-- >Tim Wescott >Control system and signal processing consulting >www.wescottdesign.com
>By "convolutional" filter do you mean FIR, or do you mean IIR as well? >An IIR bandstop filter will only create delay at the edges of the stop- >band, where your information is questionable anyway.
I meant FIR. Would and IIR bandstop approach zero delay in the 'non-rejection band'?? Never had much use to try one until now.
>_Any_ filter that you add in the one path is going to filter signal right
>along with noise -- you can't change that.
I was thinking about setting up come kind of process that has the same statistacal properties as my known bandlimted noise and doing some substraction. Not putting any multiplicitive thing 'inline'... Maybe some kind of addaptive thing.. who knows, im fishing.