DSPRelated.com
Forums

Sliding Goertzel of Jacobsen&Lions correct?

Started by Unknown July 26, 2003
On Mon, 04 Aug 2003 16:48:10 -0500, Dennis@NoSpam.com wrote:

>ricklyon@remove.onemain.com (Rick Lyons) wrote: > >>Hi, >> agreed. Hey guys, did we all agree that the Sliding Goertzel >>(unlike the standard Goertzel algorithm) only operates at >>integer values of k? >> >>[-Rick-] > >Hmmm that's interesting. With the standard Goertzel(GA) I could pretend I zero >padded with a million zeros and choose k as close to the frequency I was >searching for as I wanted. This is because the GA magnitude calc doesn't change >no matter how many zeros you pad with. However, with the sliding GA, I'm adding >the current and subtracting the back value. I can't very well subtract the >millionth zero in the SGA. > >Dennis
Hi Dennis, I was thinking about the freq-domain resonant frequencies. For the N-sample Goertzel algo, k can be any value between 0 and N. (Jon Harris pointed that out to me.) For the N-sample Sliding Goertzel, the comb filter places N zeros equally-spaced around the unit circle. For correct pole/zero cancelation, the value of k must place a pole exactly on one of the zeros. Thus k cannot be just any arbitrary value. Just thought I'd remind us all about that fact. [-Rick-]
"Rick Lyons" <ricklyon@REMOVE.onemain.com> wrote in message
news:3f2fa793.91587125@news.earthlink.net...

> For the N-sample Goertzel algo, k can be any value between > 0 and N. (Jon Harris pointed that out to me.) > > For the N-sample Sliding Goertzel, the comb filter places > N zeros equally-spaced around the unit circle. For correct > pole/zero cancelation, the value of k must place a pole > exactly on one of the zeros. Thus k cannot be just any > arbitrary value. > > Just thought I'd remind us all about that fact. > > [-Rick-] >
Hello Rick et. al., The way I think about it is that you are putting in a pulse and then after a delay (one than spans the time extent of the transform window) you need to put in an antipulse. So with this reasoning one would expect the delay needs to be integral. But if you made your comb filter a little more sophisticated than having two delta functions comprising its impulse response, you could have nonintegral delay. After all you just need to make the pulse- antipulse pair cancel out after the delay. Does this have practical value? I don't know, but the math allows for this natural extension of the sliding window idea. Plus the frequency response of the comb filter needs to be flat only around the center frequency of the Goerzel, so the comb filter's impulse response can be more localized than a sinc filter. Just my thoughts. Clay
ricklyon@REMOVE.onemain.com (Rick Lyons) wrote:

>On Mon, 04 Aug 2003 16:48:10 -0500, Dennis@NoSpam.com wrote: >>Hmmm that's interesting. With the standard Goertzel(GA) I could pretend I zero >>padded with a million zeros and choose k as close to the frequency I was >>searching for as I wanted. This is because the GA magnitude calc doesn't change >>no matter how many zeros you pad with. However, with the sliding GA, I'm adding >>the current and subtracting the back value. I can't very well subtract the >>millionth zero in the SGA. > >Hi Dennis, > > I was thinking about the freq-domain resonant frequencies. > >For the N-sample Goertzel algo, k can be any value between >0 and N. (Jon Harris pointed that out to me.) > >For the N-sample Sliding Goertzel, the comb filter places >N zeros equally-spaced around the unit circle. For correct >pole/zero cancelation, the value of k must place a pole >exactly on one of the zeros. Thus k cannot be just any >arbitrary value. > >Just thought I'd remind us all about that fact. > >[-Rick-]
Hi Rick, What if I padded with M zeros and we had N samples. Where would the zeros fall on the unit circle with the N+M Sliding Goertzel? What about zero padding and the Sliding DFT? Dennis
On Tue, 05 Aug 2003 10:18:22 -0500, Dennis@NoSpam.com wrote:

>ricklyon@REMOVE.onemain.com (Rick Lyons) wrote: > >>On Mon, 04 Aug 2003 16:48:10 -0500, Dennis@NoSpam.com wrote: >>>Hmmm that's interesting. With the standard Goertzel(GA) I could pretend I zero >>>padded with a million zeros and choose k as close to the frequency I was >>>searching for as I wanted. This is because the GA magnitude calc doesn't change >>>no matter how many zeros you pad with. However, with the sliding GA, I'm adding >>>the current and subtracting the back value. I can't very well subtract the >>>millionth zero in the SGA. >> >>Hi Dennis, >> >> I was thinking about the freq-domain resonant frequencies. >> >>For the N-sample Goertzel algo, k can be any value between >>0 and N. (Jon Harris pointed that out to me.) >> >>For the N-sample Sliding Goertzel, the comb filter places >>N zeros equally-spaced around the unit circle. For correct >>pole/zero cancelation, the value of k must place a pole >>exactly on one of the zeros. Thus k cannot be just any >>arbitrary value. >> >>Just thought I'd remind us all about that fact. >> >>[-Rick-] > >Hi Rick, > >What if I padded with M zeros and we had N samples. Where would the zeros fall >on the unit circle with the N+M Sliding Goertzel? What about zero padding and >the Sliding DFT? > >Dennis
Hi Dennis, The zeros locations on the unit circle are independent of the input time-domain sequence to the filter. If the comb filter has a delay of N samples, the comb portion of the filter will have N zeros equally-spaced around the unit circle. See Ya', [-Rick-]
ricklyon@REMOVE.onemain.com (Rick Lyons) wrote:
>Hi Dennis, > > I was thinking about the freq-domain resonant frequencies. > >For the N-sample Goertzel algo, k can be any value between >0 and N. (Jon Harris pointed that out to me.) > >For the N-sample Sliding Goertzel, the comb filter places >N zeros equally-spaced around the unit circle. For correct >pole/zero cancelation, the value of k must place a pole >exactly on one of the zeros. Thus k cannot be just any >arbitrary value. > >Just thought I'd remind us all about that fact. > >[-Rick-]
Hi Rick, The N-sample Sliding Goertzel (SGA) doesn't have a comb filter because the SGA formula is not correct as per previous posts. In the time domain the SGA iteration in the time domain has an end term that should not be there. I haven't figured out how to eliminate that time domain end term yet. Dennis
Many of our DSP audio projects deal with frames of data.  The frame size is
usually smaller the the DFT N.  So we have extended the sliding DFT to
update a frame of data at a time.  Our implementations are on the TI
(54,55,67) cores.  Is this (frame based sliding DFT) generally known and
done?  .

<Dennis@NoSpam.com> wrote in message
news:8s2hivgb7p3fio16jl06q96j8silet6702@4ax.com...
> ricklyon@remove.onemain.com (Rick Lyons) wrote: > <snip> > >My (Rabiner & Gold) version and Dennis' version give the same > >DFT magnitude results. To get the correct phase results, my > >version of the Sliding DFT requires an additional phase correction. > >Dennis' version, which is not new by the way, requires no such > >phase correction. So, of the four forms of the Sliding DFT that > >I've seen, Dennis' is the form of the Sliding DFT that > >I now recommend. > > > >So Dennis, there's no typo in the article. But your Sliding DFT > >expression is the one I'd choose in the future. > > > >I haven't looked at Eric's paper yet, but I will. > > > >See Ya, > >[-Rick-] > > Hi Eric, > > The Sliding DFT version of the form > > Sk(n)=(Sk(n-1) - x(n-N) + x(n))*exp(j2PIk/N) > > is not mine of course. I believe it was derived by Tom Springer in his
article
> "Sliding FFT computes frequency spectra in real time" EDN Mag pp 161-170
Sept
> 29, 1988. > > I don't have this article and cannot get it, but I've seen Springer quoted
as
> the author of this version in a number of references on the Sliding DFT. > > I haven't found any earlier references to the Sliding DFT. > > Dennis >
On Tue, 19 Aug 2003 10:48:37 -0500, "Jerry J. Trantow"
<jtrantow@ieee.org> wrote:

>Many of our DSP audio projects deal with frames of data. The frame size is >usually smaller the the DFT N. So we have extended the sliding DFT to >update a frame of data at a time. Our implementations are on the TI >(54,55,67) cores. Is this (frame based sliding DFT) generally known and >done? . >
Hello jerry, what does it mean to "extend the sliding DFT to update a frame of data at a time"? [-Rick-]