Kyma Forum
  Kyma Sound Exchange
  Proper Block Convolutions

Post New Topic  Post A Reply
profile | register | preferences | faq | search

next newest topic | next oldest topic
Author Topic:   Proper Block Convolutions
David McClain
Member
posted 01 June 2001 04:48         Edit/Delete Message   Reply w/Quote

polyphase.zip

 
Hi,

The attached zip file contains a pair of Sounds, a Smalltalk program for generating a centered half-width Bristow-Johnson window, and the window AIFF itself.

The two sounds are for comparison purposes. The first is the usual FFT processing pipeline with pre-windowing, and using a 50% overlap-add processing.

The second sound uses a 4-phase polyphase algorithm with zero padding to ameliorate the edge effects from circular convolution by the FFT pipeline. In effect this is a 75% overlap-add algorithm, but only the central 50% of each block contains any data. So it is really still a 50% overlap of data from block to block.

The result depends on the quality of the filter spectrum you use inside the FFT pipeline. But a comparison between the two included sounds with the same 3-band filter shows that the spurs are reduced another 24 dB or so, to below -84 dBFS.

The departure from ideal (i.e., no spurs) is due to the crudity of the filter spectrum computed for use inside the FFT pipeline. Numerical models of proper block convolution show even better behavior, with better filters, but they take much, much, longer to render than using the Kyma to process live sound at 48 KHz sample rate.

For example, my Pentium III 500 MHz computer can just beat realtime at stereo 16 KHz sample rate processing, using a very high level modeling language. With this new polyphase algorithm Kyma/Capy does very nearly as well (both are audibly excellent!) at 48 KHz sample rate in real time stereo.

So who says block convolutions can't be done with Kyma!?

[...anyone want to try block convolution reverb processing?]

- DM


[This message has been edited by David McClain (edited 01 June 2001).]

IP: Logged

David McClain
Member
posted 01 June 2001 19:17         Edit/Delete Message   Reply w/Quote
BTW,

I have just found that smoothing the filter used between the FFT and its inverse helps enormously both here and with the simpler 2-phase filtering algorithm already presented by SSC.

In fact, if you make the smoothing window about 4% of the total sampling bandwidth I have been able to reduce the spurious sidebands to levels below -90 dBFS or lower.

That removes much of the need for such a complex convolution algorithm as this 4-phase system. Of course, you can always smooth the filters used here for even better performance.

Smoothing can be accomplished by means of the AveragingLowPassFilter Sound provided by SSC. Use a cutoff frequency given as

?NFilt samp hz

where ?NFilt is about ?FFTLength / 50. So for example, with an FFT length of 1024, ?NFilt should be around 20 or so. You should notice a drastic reduction in spurious sidebands.

Cheers,

- DM

[This message has been edited by David McClain (edited 01 June 2001).]

IP: Logged

All times are CT (US)

next newest topic | next oldest topic

Administrative Options: Close Topic | Archive/Move | Delete Topic
Post New Topic  Post A Reply

Contact Us | Symbolic Sound Home

This forum is provided solely for the support and edification of the customers of Symbolic Sound Corporation.


Ultimate Bulletin Board 5.45c