DSPRelated.com
Forums

window and fft

Started by cfx August 19, 2003
"cfx" <u.t.o@wanadoo.fr> wrote in message
news:bhvepg$juu$1@news-sop.inria.fr...
> > "Rune Allnor" <allnor@tele.ntnu.no> a &#4294967295;crit dans le message de news: > f56893ae.0308191106.2b3944fd@posting.google.com... > > OK. You are applying an all-pass filter to your signal in frequency > domain. > > Now, I can't see the relation between the 512 complex samples of the > > transfer function and the block size of 1024. Is the transfer function > > specified in frequency domain? If so, what do you do with the frequency > bins > > between the Nyquist frequency and the sampling frequency? > > The sampling rate is equal to 44100, the FFTSIZE to 1024, and my fft > function > return FFTSIZE/2 complex samples, with each corresponding to a frequency > component > from SAMPLINGRATE/FFTSIZE to SAMPLINGRATE/2. > > > > > > > Your problem appears to be how to patch blocks in time domain,
considering
> > that each sample is represented in two blocks... > > > > > > > I think it should be possible to implement a filter this way. You would > > probably need to pay some attention to quite a few details, though. > > > > Having said that, my immediate response (provided I understand your > problem > > correctly) is that you may want to consider a time-domain implementation > > of your all-pass filter. I don't know much about such implementations,
but
> > there may be others here who can help you with the details. > > I was looking for a such temporal method, but I haven't found a > representation > of an all-pass such that this one ( e^(j*2*pi*g(Fn)) with Fn = > n*SAMPLINGRATE / FFTSIZE, > and g a fnction of Fn) in the time domain (so if any one have one ;)). > > I will try to apply the Allpass filter in the frequency domain without > pre-applying a window on the > time domain samples, and apply the window after the ifft and overlap-add
the
> blocks.
Charles-Felix, Without analyzing everything you're doing: If you have a finite-length frequency domain function then you can always ifft that function to get a FIR structure. Now, generally you want the temporal FIR structure to be purely real so: - If the frequency domain function is a transform of a real time function then all you need to do is make sure that you're including all of the parts of the frequency domain function in the proper order. - If the frequency domain function is *not* a transform of a real time function then you will get a complex-valued time function resulting from the processing in any form. That's probably not what you want. This suggests that you can inverse transform the filter and apply it continuously in the time domain - but perhaps with less compute efficiency. Otherwise, the comments from Don and Jerry about not pre- windowing in an overlap-save method apply. Fred