Programming the codes of this experiment was confusing and time-consuming as it involved manipulations in the various signal lengths of inputs, decomposed inputs, decomposed outputs and the final result. This had me referring the class notes and online resources, again and again, to make changes in the code and finally, the result was satisfactory. Also, many of my concepts were strengthened and overall it was a great programming assignment!
Using structures for performing operations on complex numbers made programming this experiment relatively simpler. I have used recursion in the FFT function which makes it functional for any radix-2 value of N, unlike the example codes provided, which had separate functions for different values of N. Because of this, the input signal of any length has to be first converted into a radix-2 form by appending the necessary amount of 0's and then calculating FFT. IFFT simply uses FFT for its calculation.
Real-time signals need to be processed using these techniques because processing is done as the signal is applied continuously.
ReplyDeleteThe programs provided are well designed, good job!
ReplyDeleteOverlap Add and Overlap Save are great techniques for filtering of long data sequences as they provide efficient memory usage breaking long sequences to small blocks which is necessary in digital computers & speedy to process.
ReplyDeleteWhat is the difference between the two?
ReplyDeleteEssentially, OS is slightly more efficient since it does not require the addition of the overlapping transients. However, you may want to use OA if you need to reuse the FFTs with zero-padding rather than repeated samples.
DeleteThere may be some optimizations in the way the DFT over the zero-padded portion of the OA buffer is computed, that gives an edge to the OA method. But this would depend on your processor and FFT package.
ReplyDelete