DSPRelated.com
Forums

Overharmonics and comb filters

Started by Rune Allnor December 1, 2004
Hi all. 

I have got involved with this signal detection and characterization 
problem where we have reason to expect that the useful signal is 
hidden inside of strong noise. Both the target signal and the 
masking signal is expected to comprise spectral lines + overharmonics. 

My naive approach to a DSP solution is to use a variety of comb filters
to extract the various lines + overharmonics from the data. The whole
approach is inspired by figure 4.57, page 349, in Proakis & Manolakis 
(P&M), 3rd ed.

What I have in mind, is to design an interactive GUI where I plot a 
spectrogram of the raw data and use some sort of cursor to designate 
the fundamental frequency of the signal, and then use this frequency 
as input to design some sort of comb (or notch) filter.

My problem is that I don't really see how to do that. Section 4.5.5 in 
P&M shows how to design comb filters by using a baseband FIR filter 
as a prototype, and then interpolate the coefficients by a number M of 
zeros, thus generating repeated spectra inside the frequency band. 
Somehow, I don't really see how this technique can be used for my 
application, since the restriction of M being an integer introduces 
a quantization of the allowed fundamental frequencies. I do intend 
to keep the FIR filter lengths within reasonable limits. 

Another possible method would be to generate narrow-band bandpass
filters at the fundamental and overharmonics. This leaves much better 
control, and would work in a worst-case scenario, but for some reason 
I am not very happy with this approach. 

Have I missed anything here? Is it possible to implement comb filters 
according to P&M's section 4.5.5 with M non-integer? Are there other 
ways of implementing comb filters that I don't know of?

Any help and comments are highly appreciated.

Rune
allnor@tele.ntnu.no (Rune Allnor) wrote 

> My naive approach to a DSP solution is to use a variety of comb filters > to extract the various lines + overharmonics from the data. The whole > approach is inspired by figure 4.57, page 349, in Proakis & Manolakis > (P&M), 3rd ed.
Sounds reasonable... I don't have P&M handy, though.
> My problem is that I don't really see how to do that. Section 4.5.5 in > P&M shows how to design comb filters by using a baseband FIR filter > as a prototype, and then interpolate the coefficients by a number M of > zeros, thus generating repeated spectra inside the frequency band. > Somehow, I don't really see how this technique can be used for my > application, since the restriction of M being an integer introduces > a quantization of the allowed fundamental frequencies. I do intend > to keep the FIR filter lengths within reasonable limits.
Q: Why are FIR filters needed? Do you need good phase response?
> Have I missed anything here? Is it possible to implement comb filters > according to P&M's section 4.5.5 with M non-integer? Are there other > ways of implementing comb filters that I don't know of?
Q: Why not just use 2nd order IIR notch filters? See rb-j's code at: http://www.dspguru.com/sw/lib/biquad.c It doesn't do the overharmonics, but that should be pretty easy to figure out. Ciao, Peter K.

in article f56893ae.0412010412.f910ba5@posting.google.com, Rune Allnor at
allnor@tele.ntnu.no wrote on 12/01/2004 07:12:

> Hi all. > > I have got involved with this signal detection and characterization > problem where we have reason to expect that the useful signal is > hidden inside of strong noise. Both the target signal and the > masking signal is expected to comprise spectral lines + overharmonics. > > My naive approach to a DSP solution is to use a variety of comb filters > to extract the various lines + overharmonics from the data. The whole > approach is inspired by figure 4.57, page 349, in Proakis & Manolakis > (P&M), 3rd ed. > > What I have in mind, is to design an interactive GUI where I plot a > spectrogram of the raw data and use some sort of cursor to designate > the fundamental frequency of the signal, and then use this frequency > as input to design some sort of comb (or notch) filter. > > My problem is that I don't really see how to do that. Section 4.5.5 in > P&M shows how to design comb filters by using a baseband FIR filter > as a prototype,
could be either a baseband (i presume you mean LPF) FIR *or* IIR. by just substituing z^-N in for z^-1 and you can see where the natural periodicity of any digital filter (period = 2*pi in normalized frequency) gets scaled to be periodic at 2*pi/N. N has to be an integer. if you need to tune your comb filter better than that, you have to interpolate (fractional sample delay) to effectively get non-integer N.
> and then interpolate the coefficients by a number M of > zeros, thus generating repeated spectra inside the frequency band. > Somehow, I don't really see how this technique can be used for my > application, since the restriction of M being an integer introduces > a quantization of the allowed fundamental frequencies. I do intend > to keep the FIR filter lengths within reasonable limits. > > Another possible method would be to generate narrow-band bandpass > filters at the fundamental and overharmonics. This leaves much better > control, and would work in a worst-case scenario, but for some reason > I am not very happy with this approach.
what are you trying to do? are you trying to notch out a periodic signal? (comb filters are well suited for that.) are you trying to isolate individual harmonics? in article 3fca8095.0412011152.5997f1b1@posting.google.com, Peter Kootsookos at p.kootsookos@iolfree.ie wrote on 12/01/2004 14:52:
> > Q: Why not just use 2nd order IIR notch filters? > > See rb-j's code at: > > http://www.dspguru.com/sw/lib/biquad.c
i didn't write that code (don't wanna take credit for someone else's work), but it looks like it will work. someone needs to add case: APF to it. r b-j
allnor@tele.ntnu.no (Rune Allnor) wrote in message news:<f56893ae.0412010412.f910ba5@posting.google.com>...
> Hi all. >
. . snip .
> > My problem is that I don't really see how to do that. Section 4.5.5 in > P&M shows how to design comb filters by using a baseband FIR filter > as a prototype, and then interpolate the coefficients by a number M of > zeros, thus generating repeated spectra inside the frequency band. > Somehow, I don't really see how this technique can be used for my > application, since the restriction of M being an integer introduces > a quantization of the allowed fundamental frequencies. I do intend > to keep the FIR filter lengths within reasonable limits.
Rune, In not sure about this but isn't the comb filter response equivalent to time averaging over a fixed length of time corresponding to the period of the fundamental? That being the case, you should be able to implement this sort of this for non-integer periods using interpolation. MAybe an application for Eriks SRC? (http://www.mega-nerd.com/SRC/) Regards, Paavo Jumppanen Author of HarBal Harmonic Balancer http://www.har-bal.com
Hi Rune.

Rune> Hi all.  I have got involved with this signal detection and
Rune> characterization problem where we have reason to expect that the
Rune> useful signal is hidden inside of strong noise. Both the target
Rune> signal and the masking signal is expected to comprise spectral
Rune> lines + overharmonics.
Rune> My naive approach to a DSP solution is to use a variety of comb
Rune> filters to extract the various lines + overharmonics from the
Rune> data. The whole approach is inspired by figure 4.57, page 349,
Rune> in Proakis & Manolakis (P&M), 3rd ed.
Rune> What I have in mind, is to design an interactive GUI where I
Rune> plot a spectrogram of the raw data and use some sort of cursor
Rune> to designate the fundamental frequency of the signal, and then
Rune> use this frequency as input to design some sort of comb (or
Rune> notch) filter.
Rune> Have I missed anything here? Is it possible to implement comb
Rune> filters according to P&M's section 4.5.5 with M non-integer? Are
Rune> there other ways of implementing comb filters that I don't know
Rune> of?
Rune> Any help and comments are highly appreciated.

I don't have this particular book, but I remember A. Nehorai writing
some papers on speech enhancement (in speech you also have a harmonic
structure) using adaptive comb filtering back in the early 80s. Maybe
this would be interesting for you?

-- 
/Mads 
Rune,

is there any specific reason why you would want your comb filter to be 
FIR? Why not use an interpolated delay line to build your filter?
-- 
Stephan M. Bernsee
http://www.dspdimension.com

I think this is exaclty what it is, and it can nicely be done using a 
ring buffer of the length that represents the fundamental. I am using a 
filter like:

filtered_sample = current_sample - ring_buffer[i];
ring_buffer[i]  = ring_buffer[i] * 0.9 + current_sample * 0.1;
i++;
i %= ring_buffer_length;

The 0.9 and 0.1 can be tuned to modify the bandwidth of each notch.

Disadvantage: Your sampling rate must be a multiple of the desired 
fundamental.

Andre


Paavo Jumppanen wrote:

> Rune, > > In not sure about this but isn't the comb filter response equivalent > to time averaging over a fixed length of time corresponding to the > period of the fundamental? That being the case, you should be able to > implement this sort of this for non-integer periods using > interpolation. MAybe an application for Eriks SRC? > (http://www.mega-nerd.com/SRC/) > > Regards, > > > Paavo Jumppanen > Author of HarBal Harmonic Balancer > http://www.har-bal.com
-- Please change no_spam to a.lodwig when replying via email!
r b-j wrote:

> i didn't write that code (don't wanna take credit for someone > else's work), but it looks like it will work. someone needs > to add case: APF to it.
Oops! My bad. Apologies for reading too quickly. Ciao, Peter K.
robert bristow-johnson <rbj@audioimagination.com> wrote in message news:<BDD394AF.2779%rbj@audioimagination.com>...
> in article f56893ae.0412010412.f910ba5@posting.google.com, Rune Allnor at > allnor@tele.ntnu.no wrote on 12/01/2004 07:12: > > > Hi all. > > > > I have got involved with this signal detection and characterization > > problem where we have reason to expect that the useful signal is > > hidden inside of strong noise. Both the target signal and the > > masking signal is expected to comprise spectral lines + overharmonics. > > > > My naive approach to a DSP solution is to use a variety of comb filters > > to extract the various lines + overharmonics from the data. The whole > > approach is inspired by figure 4.57, page 349, in Proakis & Manolakis > > (P&M), 3rd ed. > > > > What I have in mind, is to design an interactive GUI where I plot a > > spectrogram of the raw data and use some sort of cursor to designate > > the fundamental frequency of the signal, and then use this frequency > > as input to design some sort of comb (or notch) filter. > > > > My problem is that I don't really see how to do that. Section 4.5.5 in > > P&M shows how to design comb filters by using a baseband FIR filter > > as a prototype, > > could be either a baseband (i presume you mean LPF)
Yep
> FIR *or* IIR. by just > substituing z^-N in for z^-1 and you can see where the natural periodicity > of any digital filter (period = 2*pi in normalized frequency) gets scaled to > be periodic at 2*pi/N. N has to be an integer. if you need to tune your > comb filter better than that, you have to interpolate (fractional sample > delay) to effectively get non-integer N.
Right. Once you mention it, they speak about general H(z) but show the implementations for FIR.
> > and then interpolate the coefficients by a number M of > > zeros, thus generating repeated spectra inside the frequency band. > > Somehow, I don't really see how this technique can be used for my > > application, since the restriction of M being an integer introduces > > a quantization of the allowed fundamental frequencies. I do intend > > to keep the FIR filter lengths within reasonable limits. > > > > Another possible method would be to generate narrow-band bandpass > > filters at the fundamental and overharmonics. This leaves much better > > control, and would work in a worst-case scenario, but for some reason > > I am not very happy with this approach. > > what are you trying to do? are you trying to notch out a periodic signal? > (comb filters are well suited for that.) are you trying to isolate > individual harmonics?
Well, the main objective is eventually to monitor the mechanical condition of some piece of equipment. To the best of my knowledge, no one have tried to measure vibrations of these objects for such purposes, so we don't really know what the signals will look like. My first approach for an analysis will be to test for harmonics, isolate strong signals, detect weak signals, isolate useful signals and reject not useful signals. Comb filters or notch filters would come in very handy for such purposes. Rune
> in article 3fca8095.0412011152.5997f1b1@posting.google.com, Peter Kootsookos > at p.kootsookos@iolfree.ie wrote on 12/01/2004 14:52: > > > > > Q: Why not just use 2nd order IIR notch filters? > > > > See rb-j's code at: > > > > http://www.dspguru.com/sw/lib/biquad.c > > i didn't write that code (don't wanna take credit for someone else's work), > but it looks like it will work. someone needs to add case: APF to it. > > > r b-j
Rune Allnor wrote:

  ...

> Well, the main objective is eventually to monitor the mechanical > condition of some piece of equipment. To the best of my knowledge, > no one have tried to measure vibrations of these objects for such > purposes, so we don't really know what the signals will look like. > My first approach for an analysis will be to test for harmonics, > isolate strong signals, detect weak signals, isolate useful signals > and reject not useful signals. Comb filters or notch filters would > come in very handy for such purposes.
That appears to be similar to what you might find at http://www.google.com/search?q=vibration+signature+analysis At the sewerage plant, we no longer pull machinery apart for inspection and preventive maintenance. Equipment manufacturers permit us to ignore their maintenance schedules without voiding any warranties. Instead, we run regular maintenance checks by vibration signature analysis, and find impending breakdowns long before operation is affected. We keep a stock of spare bearings and seals, but on one occasion continued to operate a "bad" unit for over a week before a replacement became available. The damaged part showed unacceptable wear, but wasn't close to actual failure. In 15 years, only one motor failed while running. Jerry -- Engineering is the art of making what you want from things you can get. &#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;