If FFT always has latency issues, how do the commercially developed plug-ins get around it?Borogove wrote:Yes, FFT always has latency issues.
Fast Convolution
-
- KVRer
- Topic Starter
- 21 posts since 10 Jan, 2007
-
- KVRer
- Topic Starter
- 21 posts since 10 Jan, 2007
I think i may be getting myself confused here.
I have a wav file which contains the impulse response of a mic, i want to perform an FFT on this file using the same sorenson algorithm. This then must have the same number of bins as the FFT i am using on my incoming data, say 2048. However my impulse file is way longer than say 2048 samples. How can i get this algorithm to output an FFT of a file which is say 2 seconds long into the same number of bins.
thanks again for the help. this is a steep learning curve for me but i think im getting there.
I have a wav file which contains the impulse response of a mic, i want to perform an FFT on this file using the same sorenson algorithm. This then must have the same number of bins as the FFT i am using on my incoming data, say 2048. However my impulse file is way longer than say 2048 samples. How can i get this algorithm to output an FFT of a file which is say 2 seconds long into the same number of bins.
thanks again for the help. this is a steep learning curve for me but i think im getting there.
-
- KVRAF
- 2460 posts since 3 Oct, 2002 from SF CA USA NA Earth
Short FFTs have lower frequency resolution, but lower latencies. You balance needed frequency resolution against acceptable latency.fromthisdrive wrote:If FFT always has latency issues, how do the commercially developed plug-ins get around it?Borogove wrote:Yes, FFT always has latency issues.
-
- KVRer
- Topic Starter
- 21 posts since 10 Jan, 2007
if i do a series of FFTs which follow on from one another and then sum and average of the contents of the bins will that give me an FFT for the whole impulse file which i can then use to multiply with the bins of the audio coming in?fromthisdrive wrote:I have a wav file which contains the impulse response of a mic, i want to perform an FFT on this file using the same sorenson algorithm. This then must have the same number of bins as the FFT i am using on my incoming data, say 2048. However my impulse file is way longer than say 2048 samples. How can i get this algorithm to output an FFT of a file which is say 2 seconds long into the same number of bins.
-
- KVRist
- 65 posts since 3 Apr, 2007
i'm new to this, so if i'm wrong here, someone please disabuse me of my ignorance:
i read about a technique of time decimation here
http://grus.berkeley.edu/~jrg/ngst/fft/timedeca.html
where the input is broken down into 2-point DFTs and then recombined.
why then, can you not begin performing DFTs with as little as 2 samples (4 for splix-radix?),and maintain a buffer of results for each 2-point DFT, increasing the buffer by powers of 2 as samples become available, up to max window size, so each iteration, only the newest X samples are added to the DFT results buffer and they are recombined with the previous window_max-X?
wouldn't this give you a kind of "rolling FFT" that would reduce latency?
i read about a technique of time decimation here
http://grus.berkeley.edu/~jrg/ngst/fft/timedeca.html
where the input is broken down into 2-point DFTs and then recombined.
why then, can you not begin performing DFTs with as little as 2 samples (4 for splix-radix?),and maintain a buffer of results for each 2-point DFT, increasing the buffer by powers of 2 as samples become available, up to max window size, so each iteration, only the newest X samples are added to the DFT results buffer and they are recombined with the previous window_max-X?
wouldn't this give you a kind of "rolling FFT" that would reduce latency?
-
- KVRist
- 32 posts since 4 Nov, 2005
Did you take a look at the following relevant resources about this subject?fromthisdrive wrote:I think i may be getting myself confused here.
(reprinting from http://www.kvraudio.com/forum/viewtopic ... highlight=)
The hybrid zero-delay convolution algorithm, which is patented by Lake Technology is clearly described by Gardner:
W. G. Gardner, "Efficient convolution without input-output
delay", J.AES vol. 43, n. 3, 1995 March, pp. 127-136.
which is basically real-time non-uniform partitioned FFT convolution. The uniform partioned FFT convolution is probably patent free, and it is clearly described by:
A. Torger, A. Farina, "Real-Time Partitioned Convolution for
Ambiophonics Surround Sound", 2001 IEEE Workshop on
Applications of Signal Processing to Audio and Acoustics, New
Paltz, New York, 21-24 October 2001.
http://www.angelofarina.it/Public/Paper ... nk2001.PDF
and
E. Armelloni, C. Giottoli, A. Farina, "Implementation of Real-Time Partitioned Convolution on a DSP Board", 2003 IEEE Workshop on Applications of Signal Processing to Audio and Acoustics, October 19-22, 2003, New Paltz, NY
http://www.angelofarina.it/Public/Paper ... nk2003.pdf
-
- KVRist
- 213 posts since 27 Sep, 2006
Oh, you're bang on the money there...method wrote:i'm new to this, so if i'm wrong here, someone please disabuse me of my ignorance:
wouldn't this give you a kind of "rolling FFT" that would reduce latency?
Alas, that's patented
(probably)
Dave.
-
- KVRist
- 65 posts since 3 Apr, 2007
thanks dave! i'm extremely relieved to get confirmation that understand the process correctly!
btw i've actually got some method patents myself in controls - one thing i've been told by my company's patent attorneys is that if you do just ONE thing differently in the process, even if the principal claim is the same, that is sufficient to circumvent the patent.
btw i've actually got some method patents myself in controls - one thing i've been told by my company's patent attorneys is that if you do just ONE thing differently in the process, even if the principal claim is the same, that is sufficient to circumvent the patent.

