Saturday, 23 April 2016

Study DSP application and implement any signal processing operation

For this lab session, we were divided into groups and had to implement a practical application of signal processing.

Team : Vikram Asgaonkar, Praneet Bala, Akshay Bangera, Kshitij Gosavi and Sahil Gujrathi

Problem Definition : Speech recognition system having an interface to a host computer bus for direct access to the host memory . Individual experiment was to review one IEEE paper and one patent on the above topic.

Patents : US20110099019, US5715369, US5353377, US5752232, US4837830

My patent : David Lee Basore and William Stuart Meisel, Voice activated device and method for providing access to remote data, Patent No.US5752232, May 12, 1998.

Summary : Our topic was Speech Recognition, and so we started the search for papers relevant to this topic. The paper that I selected proposed a speech recognition technique based on acoustic models, considering voice characteristic variations. The result of a gender-dependent speech recognition experiment shows that the proposed method achieves higher recognition performance in comparison to the conventional methods.

The patent that I selected talked about a method of accessing remote data with the help of voice commands. This patent comprises of a mixture of two ideas, one being Speech Recognition and the other being Telemetry, method of storing and accessing remotely placed datas.

Using all the ideas available to us from our individual assignments, our team was able to complete the given task.

Go to the link below to view the IEEE report and the plagiarism report,
https://drive.google.com/open?id=0B8OWu2Drhsp0X2VuYzdsOVJLNjA

Friday, 22 April 2016

Basic operations using DSP processor

In this experiment, we made use of hardware kit for the first time. The DSP kit used was TMS320F28375. The experiment was a demonstration based experiment and was carried out by our seniors. Basic operations like arithmetic, logical and shifting operations was demonstrated. Later, a program for voice modulation was demonstrated with microphone as the input device. Filtering of the voice signal was done using the kit, which functioned as an independent processor.

FIR Filter design using Frequency Sampling method

In the frequency sampling method, the desired output is obtained by sampling and processing values at each sample. It used to obtain standard frequency selective filters like high pass, low pass and band pass filters.
The coding for this was done in SCILAB, to obtain the Magnitude and Phase plots. h[n] values of the signal and the magnitude and phase plot was obtained using SCILAB.

Go to the link below to view the code for frequency sampling,
https://drive.google.com/open?id=0B8OWu2Drhsp0dE9ncDdPTGlhd3c

FIR Filter design using Windowing method

FIR filters can be designed to be linear phase by making the coefficients symmetric. They are stable as compared to other filters. There are many ways to design these filters. Here, I have designed the filter using Windowing method. The coding for this was done in C and SCILAB to obtain the Magnitude and Phase plots. C programming was used to obtain the h[n] values of the signal, while SCILAB was used to plot the graphs
Initially, I was a bit confused about how to plot the phase plot graph. It took me a few weeks to understand the actual working of the filter, which later on paved the way for me to write the code. The phase plot shows desired linear characteristics.

Go to the link below to view the codes for obtaining h[n] values of high pass, low pass, and band pass filters and also to plot the magnitude and phase plot,
https://drive.google.com/open?id=0B8OWu2Drhsp0YjdoODVGQ1dQakE

Chebyshev Filter Design

Chebyshev Filter, unlike the butterworth filter, has ripples either in its pass band area (Type-I) or in the stop band area (Type-II) of the magnitude spectrum. The filter also has a steeper roll-off, making it more useful for higher filtering applications.
The code for the filter design was written in SCILAB, since it provides means for plotting of magnitude response and pole-zero graphs.

Go to the link below to view the codes for Chebyshev High pass and Low pass filter,
https://drive.google.com/open?id=0B8OWu2Drhsp0MUpnNm9DUnNIdDA

Butterworth Filter Design

Butterworth Filter is a signal processing filter having flat frequency response in both the pass band and the stop band. The designing of filters was done using SCILAB, since it gave plot outputs.
SCILAB was a new software that I had to get used to at first, which caused delay in my submission. But after weeks of practice, I find the software useful on many grounds, like the in-built fuctions for calculating fft, magnitude response, swapping of variables etc. 
The magnitude spectrum and pole-zero plot of both high pass and low pass butterworth filter was obtained in this program. The values of pass band and stop band attenuation was compared with the given input and I found them to be almost similar.

Go to the link below to view the codes for Butterworth high and low pass filters,
https://drive.google.com/open?id=0B8OWu2Drhsp0ZnNyMTNyUHRsNzA

Overlap Add and Overlap Save Method

Overlap Add Method is used to calculate the linear convolution of very long signals with finite impulse response. In this method, the long signal is first broken down into smaller parts. These smaller signals are then convoluted with the given h[n]. The result obtained from these convolutions is then added in such a way so as to get the linear convolution of the original signal. 
Overlap Save method is similar to Overlap Add method with respect to the splitting of the signal. But the smaller signals are then circularly convoluted with the given h[n] and concatenated in such a way to obtain the final result.
In both the methods, FFT is used to obtain faster calculations

Go to the link below to view the codes for Overlap Add and Overlap Save Method
https://drive.google.com/open?id=0B8OWu2Drhsp0WjJ3SjJoU3RjSkE

Fast Fourier Transform

FFT, basically, is the decomposition of higher points of signals into smaller points and calculating the transform. This reduces the calculation with respect to DFT. DFT calculation of higher point signals takes large amount of time and hence, FFT reduces the time taken to produce output. 

Go to the link below to view the code for Fast Fourier Transform,
https://drive.google.com/open?id=0B8OWu2Drhsp0dWNUa3R3UHRVT3M

Discrete Fourier Transform

Discrete Fourier Transform of a signal converts the signal from time domain to frequency domain. On performing the experiment, we observe that as the number of points increases, i.e. from 4 point to 8 point, the magnitude spectrum becomes smoother. The DFT pf any signal will have the same number of elements as that of the signal.

Go to the link below to view the code for DFT,
https://drive.google.com/open?id=0B8OWu2Drhsp0dC1yUmxuMmJDcUk

Convolution and Correlation

A few prerequisites of C and C++ was required for the lab sessions of DSPP, and my first problem definition was to perform convolution and correlation of signals. Since everyone was supposed to use ubuntu, we wrote the program in the terminal provided in ubuntu. Refering to the lecture notes, I made the algorithm for the required programs. Initially, linear convolution took me some time to write, but the others (Circular convolution, Linear using circular convolution and correlation) had similar algorithm and hence I was able to execute them quickly with a little tweaking in the linear convolution program itself.
In Linear convolution, the length of output signal is L+M-1, where L is length of x[n] and M is length of h[n].
In Circular convolution, we observe aliasing error, i.e, folding of the signal
In Correlation, the output of the signal is in the form of pallindrome when the signals are same. This phenomenon can be used to find errors in a signal.

Go to the link below to view the codes for Linear convolution, Circular convolution, linear using circular convolution and correlation.
https://drive.google.com/open?id=0B8OWu2Drhsp0RGdEejQweVM5Wkk