Sunday, 23 April 2017

Patent Review:BLIND SIGNAL SEPARATION

Patent Name:BLIND SIGNAL SEPARATION
US Patent No:6,625,587

               This patent emphasizes on the implementation of Blind Signal Separation on DSP(Digital Signal Processor) hardware.The inventor uses control system block diagram approach to define operations involved in separating audio signals from various sources.Here, blind signal indicates that signal characteristics are unknown. Multiple mixtures are sampled using the multi-channel ADC(Analog-to-Digital Converter) and passed to the DSP. For faster data transfers, on-chip DMA(Direct Memory Access) is used.The DSP uses its multiplier block for forming matrices and solving them to finally obtain separated signals. The output is obtained using DAC(Digital-to-Analog Converter).

IEEE Paper Review:Blind Audio Source Separation Using Wiener Filtering Approach

            This IEEE paper discusses an interesting application called Blind Audio Source Separation. This is used to recover the source signals from the mixture of signals. In case of Blind audio separation,the characteristics of the filter are not known. The source signals can be considered as a mixture of information and interference. These signals may be coming from different sources. Considering this mixture as a linear combination of these signals, the authors have developed a method to isolate 2-3 signals using the Weiner filtering approach and Short-time Fourier Transform(STFT). The output is a complex signal,this approach removes the complexity of the signal. The areas of application are Speech Processing and Telecommunication.

IEEE Paper Link: http://ieeexplore.ieee.org/document/7359371/

Basic operations on DSP Processor

           In this Lab session some basic operations were performed on TI's C2000 DSP(Digital Signal Processor)TMS320F28335. The basic arithmetic and logical operations were performed using assembly instructions defined by the processor's architecture. The output of these instructions is seen using the JTAG debugger. These operations are similar to the ones in a regular processor but the DSP's hardware allows faster and more efficient execution of these instructions. Multiply and add instruction(MLA) has a single cycle execution due to a dedicated multiplier block inside the DSP. These fast operations differentiate DSPs from other processors. As multiplication and addition are commonly used in signal processing applications, the DSP hardware is used in such applications where faster computation is required. 

FIR FIlter Design using Windowing Method

             The second type of filters after IIR filters are FIR filters(Finite Impulse Response i.e. h[n] has finite length). The inherent advantage these filters possess is stability. After passing Ap,As,fp and fs in the code, it automatically calculates the filter order and the window type used. All window functions namely Rectangular,Bartlett,Hanning,Hamming and Blackman were analyzed. The window type is obtained from the attenuation in stopband(As). Here, inverse-DTFT of the ideal filter design is done to obtain desired h[n],after which  it is multiplied with the suitable window function to obtain the final output. For sharper frequency transitions from pass band to stop band, ripples are obtained in the frequency response. h[n] obtained is symmetric.

FIR Filter Design using Frequency Sampling Method(FSM)

                After analyzing, the windowing method Frequency sampling method was analyzed for filter design using Scilab. Here, DFT is used,as frequency response at discrete values of frequency is obtained. The output h[n] is obtained by performing inverse-DFT. As discrete values of the frequency response, it can be considered that the response is sampled,hence the name FSM. As DFT involves summation, it can be easily computed compared to integration in IDTFT in windowing method.  The filter order obtained using both methods is the same. h[n] obtained is symmetric.

Digital Chebyshev Filter design

        After Butterworth Filter design, the other type of IIR filter,Analog and then Digital Chebyshev filters were designed on Scilab. Here, Chebyshev-1 filter was designed with ripple in pass band and no ripple in stop band. On putting similar parameters as that of Butterworth filter for the same type, the order of Chebyshev filter is lower. There are ripples in pass band and the poles lie on an ellipse. The mapping of poles is one-to-one from s to z-plane. Here, the number of ripple peaks in the pass band is equal to the order of the filter. Both Butterworth and Chebyshev filters are Analog filters,hence their Digital filter frequency responses are similar to their analog ones. For IIR filters, stability is not guaranteed.

Digital Butterworth Filter Design

             After analyzing different algorithms for obtaining filter(system) output, it's time to design a filter. Firstly, IIR(Infinite Impulse Response i.e. on taking Inverse Z-Transform, h[n] has infinite length) filters were designed on Scilab. The first type are Butterworth filters with no ripple in passband and stopband. On substituting the input parameters As,Ap, Ws,Wp and sampling frequency, for both High Pass and Low Pass, Filters,a high order filter is designed.Here, first , an Analog and then a Digital Filter is designed. The poles of this filter lie on a circle inside the unit circle in the z-plane. As BLT method is used for design, there is one-to-one mapping of filter poles, but the frequency bands are compressed in case of digital filters. 

Wednesday, 15 March 2017

Overlap Add Method(OAM) and Overlap Save Method(OSM)

                   After realizing the usefulness of FFT algorithm, it is necessary to understand its implementation in practical systems for faster and smarter(less calculative) operation. In real-time environment the long and indefinite length signals (unlike FFT) . To ensure proper analysis two methods: Overlap Add Method(OAM) and Overlap Save Method(OSM) are used. In both these methods the samples are divided into groups of samples such that the output of convolution of each group and the system function will have length equal to 2^N where N is an integer. To evaluate OAM and OSM in time domain Linear and Circular Convolution is used respectively. At times circular convolution is faster and hence, OSM can perform better.

Fast Fourier Transform

                        After understanding the complications involved in computing DFT it is time to understand its faster version i.e. the Fast Fourier Transform(FFT) algorithm (i.e.it is not a mathematical concept, it is a way to reduce calculations used in DFT) . FFT is implemented using two algorithms namely Decimation in Time FFT(DITFFT) and Decimation in Frequency FFT(DIFFFT). Both these algorithms take the same time for execution as same number of assembly instructions(after conversion from C program) are same overall. In case of DITFFT, after accepting the input, the samples are re-arranged whereas in case of DIFFFT the samples are taken as it is, but the output is re-arranged. After implementation of both algorithms, the outputs, execution time and computations involved were exactly the same. 

Discrete Fourier Transform

             As part of the next practical, Discrete Fourier Transform(DFT) had to be implemented on both a PC and DSP. Using C programming and the in-built mathematical operations(primarily sine and cosine) the DFT output can be observed in the form of 2 arrays(A[k] real and B[k] imaginary) for displaying complex numbers. By using both the above mentioned hardware, a fast response was observed. DFT is preferred only for smaller length inputs. For high length inputs , the computations involved are very high and hence DFT is not preferred. Also the complex computations are more.

Discrete Convolution and Correlation

                      The operations involved in Convolution and Correlation are multiplication and addition. On executing a C programs on both PC and DSP the result is the same as that obtained theoretically. Here, mainly arrays are used as operands for these operations. The operations performed were Linear and Circular Convolution and Auto Correlation(of same and delayed input signal) and Cross Correlation. Convolution is used to find output of any system for any given input. The length of output signal is L+M-1, where L and M are lengths of input signals. Whereas, correlation is used to find the degree of similarity of input signals which can be obtained by the Correlation coefficients. Correlation coefficients are obtained by calculating the variance of the input signal.