LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

After modifying the FFT frequency resolution of a sound, how to go back to time-domain in a proper way by iFFT and get the so-transformed sound ?

Hello,
 
I've got some 4s recorded music samples (44100Hz, 16bits) for which I'd like to damage the frequency resolution. I've got some difficulties to achieve this task.
Actually, I first applied an FFT transform to get the spectrum (mod. and phase), then I damaged the frequency resolution (initially equal to 0.25Hz) by taking for example one point every 8 points  from the first point (modified resolution equal to 2 Hz); in order to get back a modified signal sampled at 44100Hz; the damaged spectrum is linearly interpolated to get a value every 0.25 Hz; then several zero paddings are added to get oversampling before the complex iFFT is performed. After iFFT, I just keep the real part of the signal and undersample it to recover a sampling frequency equal to 44100Hz. But, when listening to the so-transformed sound, it doesn't really sound like the original sound, there's a short impulse noise at the beginning of the sample, then silence and a finally short sound sequence at the end which seems modulated (the sound is "accelerated"); Can anyone help me to detect where my reasonning is erroneous ?
 
Thanks in advance.
 
Skoobi.
0 Kudos
Message 1 of 3
(2,664 Views)
I would suggest working with the real and imaginary components instead of magnitude and phase.  You can then try to do the same thing. I wouldn't pad if I were you before going back to the time domain.

I'm not sure what you mean by 'damaged' spectrum, but your process may be altering the phase too much to get the kind of results you are looking for.

Can you post an example sound file?

Message Edited by rpursley8 on 09-23-2006 08:27 PM

Randall Pursley
0 Kudos
Message 2 of 3
(2,653 Views)
Hello,
 
Thanks a lot for your advice. I made the modifications in the vi so that the real and imaginary parts of the spectrum are interpolated to recover 4*44100 samples before applying iFFT. Before that, the complex spectrum is "damaged"; by "damaged" I mean that, once I've got the FFT of the original sound, I increase its frequency resolution (fine to coarse :0.25Hz up to 1Hz for example, in that case, one complex value every four values is kept). Actually, I'm trying to validate the vi on music samples but my goal is to eventually use it for recorded sounds of vibrating plates. However, I do not obtain the same transformed sound as before correction but something is still going wrong: the original sound seems to be repeated four times within the tranformed sound; in addition, the level seems to be modulated, the number of times the original sound is repeated within the transformed sound seems to be especially linked to the ratio with which complex spectrum values are extracted (i.e. four). I do not manage to see where could locate another mistake in the vi; my experience of signal processing is quite limited. Can you help me again ? If needed, I'm attaching a .rar file containing the .wav files (both original and modified samples) and the VIs (version 6.1: spectrum "damaging" is processed in the under-vi "Transformation du spectre" and interpolation and resynthesis are processed in the under-vi "synthese.vi").
 
Thanks in advance,
Best Regards,
Skoobi.
0 Kudos
Message 3 of 3
(2,633 Views)