Patches item #1509427, was opened at 2006-06-20 18:30 Message generated for change (Comment added) made by zmoelnig You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=478072&aid=1509427&group_id=55736
Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: puredata >Group: wishlist >Status: Closed >Resolution: Wont Fix Priority: 5 Private: No Submitted By: IOhannes m zm�lnig (zmoelnig) Assigned to: Miller Puckette (millerpuckette) Summary: resampling method for halfblocks Initial Comment: this patch adds a new pair of up/downsampling methods, called "block". what it does: downsampling: the 1st part of the original signal is copied "as is" to the downsampled signal; the rest of the incoming signal is discarded upsampling: the original signal is copied to the 1st part of the upsampled signal; the rest of the upsampled signal is set to 0.f what for: an the output-signals of an fft are redundant since they are (anti)symmetric; therefore it is a waste of cpu-power to apply dsp-processing on both halfs of such signals; with this patch it is possible to do a "downsampled" processing only on the relevant (1st) part of the signal (~50% performance gain): after upsampling you would have to recreate the entire signal manually (e.g. mirror the block and add it to the non-mirrored part) i also put some defines for the various resampling methods into m_pd.h, so the code gets less "magic" ---------------------------------------------------------------------- >Comment By: IOhannes m zm�lnig (zmoelnig) Date: 2008-01-02 12:59 Message: Logged In: YES user_id=564396 Originator: YES i think this could as well be implemented as external objects (though not as comfortable as via [inlet~]) i therefore retract this feature-request ---------------------------------------------------------------------- Comment By: Mathieu Bouchard (matju) Date: 2006-06-20 20:35 Message: Logged In: YES user_id=801174 to save on CPU and memory, a "doubly real" FFT is possible: not only real inputs, but also real outputs. For a N-dimensional vector (block size N), there are 2N outputs. The way that it is normally reduced back to N, is to combine them to produce cosine and sine coefficients. I wonder whether that'd be a more appropriate way of dealing with the problem than using varying block sizes? (Maybe it's not) Also, what seems to be a clearly interesting use of the "block" method is that if you do [fft~] before a "block"-upsampling and a [ifft~] just after, then you've just done trigonometric interpolation, that is, interpolation that uses sinusoids (instead of cubics and stuff). IMHO this is the best way to upsample a signal *if* block boundaries are properly dealt with (using windowing). However, I've never tried this. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=478072&aid=1509427&group_id=55736
_______________________________________________ PD-dev mailing list [email protected] http://lists.puredata.info/listinfo/pd-dev
