Editing in Freq domain and applying inverse FFT

  • Context: Graduate 
  • Thread starter Thread starter raminee
  • Start date Start date
  • Tags Tags
    Domain Fft Inverse
Click For Summary
SUMMARY

This discussion focuses on the challenges of editing audio signals in the frequency domain using FFT (Fast Fourier Transform) and iFFT (inverse Fast Fourier Transform). The user, Raminee, experiences distortions at block/frame boundaries after applying adjustments to the real and imaginary components of the FFT output. Solutions discussed include using a phase vocoder approach in MATLAB and implementing windowing techniques, specifically the Hann and Hamming functions, with 50% overlap to smooth transitions between blocks. The consensus is that both windowing methods yield similar results, but the Hann function may provide a slight advantage in reducing discontinuities.

PREREQUISITES
  • Understanding of FFT and iFFT algorithms
  • Familiarity with audio signal processing concepts
  • Knowledge of windowing techniques in signal processing
  • Experience with MATLAB for implementing phase vocoder techniques
NEXT STEPS
  • Research the implementation of the phase vocoder in MATLAB
  • Explore the differences between Hann and Hamming window functions
  • Learn about overlapping techniques in FFT processing
  • Investigate methods for minimizing artifacts in audio signal processing
USEFUL FOR

Audio engineers, signal processing researchers, and developers working on audio manipulation techniques will benefit from this discussion.

raminee
Messages
15
Reaction score
3
TL;DR
How to overcome the distortions that result in editing in frequency domain before applying inverse FFT ?
Hello All,

I am somewhat familiar with FFT and iFFT and its uses.
However I have an issue when I edit in Freq domain and try to get back to time domain .

I have an audio signal in time domain that I transform to frequency domain using an FFT routine in block sizes of N points.
(in my case 256 samples)

I make some adjustments to the Real and Imaginary data based on some algorithm that I am working on.

I apply inverse FFT to get back to time domain.

I repeat this process for a number of blocks of N that forms my entire audio signal.

The resulted output audio signal has distortions mainly around the Block/Frame boundaries due to the changes that were made to the
real and imaginary samples in each Block.

How to remove block/frame boundary issues ?

Any suggestions would be helpful.

Thanks

Raminee
 
Physics news on Phys.org
I have no expertise in this, but it is interesting that the MATLAB phase vocoder described here sums up the time domain results from the analysis done in the windows. I suspect that makes the transitions smooth.
 
Thank you "FactChecker" for that info.
I have implemented the procedure as in the phase vocoder description and it works !!
THANKS AGAIN !!
Raminee
 
  • Like
Likes   Reactions: FactChecker
FactChecker said:
I have no expertise in this, but it is interesting that the MATLAB phase vocoder described here sums up the time domain results from the analysis done in the windows. I suspect that makes the transitions smooth.
I agree with this and the article linked to.

You can find out more about "windowing" at Window function and for this application the Hann function would be a suitable choice. Use blocks where each block is windowed by the Hann function and overlaps each of its neighbours by 50%.
 
I used Hamming window with 50% overlap.
Any reasons Hann function would be better ?
 
raminee said:
I used Hamming window with 50% overlap.
Any reasons Hann function would be better ?
Hann (a.k.a. Hanning) fades all the way to zero, whereas Hamming still has a small discontinuity. As the discontinuity is small, in practice you might not notice the difference. I'd be tempted to try both and see what difference it makes.
 
For anyone interested I tried both windows and it is very very hard to tell the difference in the outputs.
At least with the audio signals I tried they both performed equally well under subjective testing.
Thx
 

Similar threads

  • · Replies 8 ·
Replies
8
Views
3K
  • · Replies 13 ·
Replies
13
Views
3K
  • · Replies 2 ·
Replies
2
Views
3K
  • · Replies 4 ·
Replies
4
Views
4K
Replies
3
Views
3K
  • · Replies 11 ·
Replies
11
Views
3K
  • · Replies 3 ·
Replies
3
Views
3K
Replies
4
Views
2K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 5 ·
Replies
5
Views
3K