Matlab is a registered trademark of The Mathworks, Inc.

# Advanced Source Code . Com     The FFW package is an FFT-based algorithm for a fast 2D convolution using the overlap-add method. The overlap-add method is based on the fundamental technique in DSP: decompose the signal into simple components, process each of the components in some useful way, and recombine the processed components into the final signal. This is possible since the convolutional operator is linear. The FFW package works similarly to fftfilt function (Matlab Image Processing Toolbox) but in a deeper way: all possible lengths for vectors are considered and not only lengths which are powers of two. This is highly necessary since the FFTW package ( for more details visit http://www.fftw.org ) includes codelets optimized also for other fixed sizes. Codelets are produced automatically by the FFTW codelet generator: you can add your own codelets and re-calculate the execution times for each FFT. The execution times for:

• FFT of real 1D vectors
• FFT of complex 1D vectors
• IFFT of complex 1D vectors
have been calculated with the script papiclock.m from length N = 1 up to length N = 2048. These times have been determinated using PAPI for Matlab ( available here or at http://icl.cs.utk.edu/papi ). A 2D FFT (see Matlab command fft2) is decomposed into several 1D FFTs: the FFT operator for an N-dimensional array can in fact be splitted into several 1-dimensional FFTs of monodimensional arrays. The FFW algorithm automatically selects which is the best choice (first dimension, second dimension and best lengths for overlap-add method) and calculates the 2D convolution.

The FFW package can be easily used to improve speed performances of:
• 2D convolution (Matlab function conv2)
• 2D filtering (Matlab function filter2)
• 2D cross-correlation (Matlab function xcorr2)
• Normalized cross-correlation (Matlab function normxcorr2)

How does FFW package work?
In order to find the best parameters for overlap-add method an exhaustive search on 2D matrices would not be possible. The computational cost of FFT2 operator is done decomposing it into the computational costs of two series of FFTs on monodimensional arrays. For example, if you want to calculate the FFT2 computational cost using a matrix N x M as input, you will perform the following sum: N*cost(FFT(M)) + M*cost(FFT(N)) where cost(FFT(X)) is the computational cost of FFT operator using as input a vector whose length is X. The computational cost of FFT for a real vector is, in general, different from the cost of FFT for a complex vector. For this reason more than one choice is possible: you can choose the first dimension along which you can apply the FFT operator. Analogous considerations can be made for IFFT operator.

After the minimum computational cost has been found, a finer tuning is possible: the FFW algorithm makes a quasi-exhaustive search using an optimized algorithm. The fine-tuning option requires a lot of time but it is recommended for high-performances FFT-based filtering. Of course, this option has sense only when you have to do several convolution products.

If both input images are real FFW algorithm uses 'symmetric' option when using IFFT operator. The optimized parameters for FFW algorithm depend only on sizes of input matrices and on their values (real or complex). If the same filter has to be applied to several images, its FFT2 value can be determined only one time, saving computational time. In this case (the same filter applied to several images) the determination of optimized parameter must not take into account the computational cost of such operation, since it is done only once. FFW algorithm can also work in time domain: this choice is necessary for small filter kernel, using standard conv2 built-in Matlab function.

Index Terms: Matlab, source, code, conv, conv2, fft, fft2, convolution, correlation, normalized cross-correlation, filtering, filter, filters, fast fourier transform, kernel. Figure 1. Lucky Luke A useful package for a fast and optimized 2D filtering. Download now free source code. This software is completely free. Release Date Major features 3.1 2006.12.19 Improved IFFT2 scheme Minor bug fixed for time required by direct convolution Download now Matlab free source code 3.0 2006.12.18 Optimized code for small kernels (i.e. supported also time-domain direct convolution) Added 'symmetric' and 'nonsymmetric' options for IFFT operator Improved documentation 2.0 2006.09.09 Added an optimized fine tuning option Flops count done with PAPI for Matlab Minor bug fixed 1.0 2006.09.03 FFT-Based 2d convolution Fast filtering Easy C/C++ implementations

This software is completely free. The authors have no relationship or partnership with The Mathworks. All the code provided is written in Matlab language (M-files and/or M-functions), with no dll or other protected parts of code (P-files or executables). The code was developed with Matlab 14 SP1. The code provided has to be considered "as is" and it is without any kind of warranty. The authors deny any kind of warranty concerning the code as well as any kind of responsibility for problems and damages which may be caused by the use of the code itself including all parts of the source code. New - Python Face Recognition Biometric Authentication with Python We have developed a fast and reliable Python code for face recognition based on Principal Component Analysis (PCA). Proposed algorithm results computationally inexpensive and it can run also in a low-cost pc such as Raspberry PI.

New - Raspberry PI Remote Desktop Raspberry PI Remote Desktop A complete and detailed PDF tutorial to learn how to connect to and from a Raspberry PI using Remote Desktop.

New - Speaker Verification System Text-Independent Speaker Authentication There are two major applications of speaker recognition technologies and methodologies. If the speaker claims to be of a certain identity and the voice is used to verify this claim, this is called verification or authentication.

New - Java Face Recognition Java-based Biometric Authentication System Face recognition is essential in many applications, including mugshot matching, surveillance, access control and personal identification, and forensic and law enforcement applications.

New - White Papers High Capacity Wavelet Watermarking Using CDMA Multilevel Codes This paper proposes a technique based on CDMA and multilevel coding in order to achieve a high capacity watermarking scheme. The bits of watermark are grouped together and for each sequence a different modulation coefficient is used.

New - WebCam Face Identification Face Recognition Based on Fractional Gaussian Derivatives Local photometric descriptors computed for interest regions have proven to be very successful in applications such as wide baseline matching, object recognition, texture recognition, image retrieval, robot localization, video data mining, building panoramas, and recognition of object categories.

New - Speaker Recognition System Source code for speaker recognition
Speaker recognition is the process of automatically recognizing who is speaking on the basis of individual information included in speech waves.

New - Speech Recognition System Source code for isolated words recognition
Speech recognition technology is used more and more for telephone applications like travel booking and information, financial account information, customer service call routing, and directory assistance. Using constrained grammar recognition, such applications can achieve remarkably high accuracy.         