Reply by Rick Lyons August 20, 20032003-08-20
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-]
Reply by Jerry J. Trantow August 19, 20032003-08-19
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 >
Reply by August 6, 20032003-08-06
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
Reply by Rick Lyons August 5, 20032003-08-05
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-]
Reply by August 5, 20032003-08-05
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
Reply by Clay S. Turner August 5, 20032003-08-05
"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
Reply by Rick Lyons August 5, 20032003-08-05
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-]
Reply by August 4, 20032003-08-04
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
Reply by Rick Lyons August 2, 20032003-08-02
On Thu, 31 Jul 2003 06:40:24 GMT, eric.jacobsen@ieee.org (Eric
Jacobsen) wrote:

>On Wed, 30 Jul 2003 22:31:50 -0500, Dennis@NoSpam.com wrote: > >>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 > >I don't think it was original to Springer as I've seen it >independantly derived elsewhere, but his EDN paper seems to be the >earliest published and most commonly referenced derivation. It got >tweaked in typesetting or something because the way it appeared in EDN >wasn't really very good in my opinion. > >The document I posted is based on Springer's derivation but I cleaned >up the notation, expanded some of the steps and just generally tried >to make it easier to follow. > >If anyone wants the original MathCAD file from the posting I can put >that up as well. > >Re: http://www.ericjacobsen.org/Slddft2.doc > > >Eric Jacobsen >Minister of Algorithms, Intel Corp. >My opinions may not be Intel's opinions. >http://www.ericjacobsen.org
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-]
Reply by Eric Jacobsen July 31, 20032003-07-31
On Wed, 30 Jul 2003 22:31:50 -0500, Dennis@NoSpam.com wrote:

>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
I don't think it was original to Springer as I've seen it independantly derived elsewhere, but his EDN paper seems to be the earliest published and most commonly referenced derivation. It got tweaked in typesetting or something because the way it appeared in EDN wasn't really very good in my opinion. The document I posted is based on Springer's derivation but I cleaned up the notation, expanded some of the steps and just generally tried to make it easier to follow. If anyone wants the original MathCAD file from the posting I can put that up as well. Re: http://www.ericjacobsen.org/Slddft2.doc Eric Jacobsen Minister of Algorithms, Intel Corp. My opinions may not be Intel's opinions. http://www.ericjacobsen.org