Wednesday, April 24, 2019

DIGITAL SIGNAL PROCESSING REVIEW

Digital Signal Processors (DSP) take real-world signals like voice, audio, video, temperature, pressure, or position that have been digitized and then mathematically manipulate them. A DSP is designed for performing mathematical functions like "add", "subtract", "multiply" and "divide" very quickly.
Signals need to be processed so that the information that they contain can be displayed, analyzed, or converted to another type of signal that may be of use. In the real-world, analog products detect signals such as sound, light, temperature or pressure and manipulate them. Converters such as an Analog-to-Digital converter then take the real-world signal and turn it into the digital format of 1's and 0's. From here, the DSP takes over by capturing the digitized information and processing it. It then feeds the digitized information back for use in the real world. It does this in one of two ways, either digitally or in an analog format by going through a Digital-to-Analog converter. All of this occurs at very high speeds.
DSP Lab of SPIT is well equipped with various DSP boards and have a systematic arrangement of experiments. It gave a great learning experience.

APPLICATION OF DSP

In this experiment we were supposed to write a review on a Patent of Application of DSP for which I chose ,

CPU with DSP having function pre-processor that converts instruction sequences intended to perform DSP function into DSP function identifier
-Mar 18, 1996 - Advanced Micro Devices, Inc.

This patent highlights the fact that there is a presence of a dedicated DSP core in a general-purpose x86 CPU. So, the CPU which performs digital signal processing functions, comprises of an instruction memory for storing a plurality of instructions, wherein said instruction memory stores one or more sequences of instructions which are intended to perform a digital signal processing function. Also, the CPU has a function preprocessor coupled to the instruction memory, wherein the function preprocessor includes the means for determining whether a sequence of said instructions in said instruction memory is intended to perform a digital signal processing function and at least one general purpose processing core coupled to the function preprocessor for executing instructions in said instruction memory.

SENSOR INTERFACING


This experiment was based on getting input of various sensors using ADC and display the output on DSO using DAC. Digital-to-Analog converters (DACs) and Analog-to-Digital converters (ADC) are important building blocks which interface sensors (e.g. temperature, pressure, light, sound, cruising speed of a car) to digital systems such as microcontrollers or PCs. An ADC takes an analog signal and converts it into a binary one, while a DAC converts a binary signal into an analog value. Applications for DACs span a wide range, from consumer audio to precision instrumentation, and everything in between. A DAC produces a set of analog values that corresponds to the digital input codes. Many DAC designs are actually current output devices, instead of voltage output devices.


ADC-DAC

Here we have written a code on CCS to generate  Sawtooth, Triangular and Sinusoidal waveforms and observe the output on the DSO. Analog-to-Digital Conversion (ADC) and Digital-to-Analog Conversion (DAC) are the processes that allow digital computers to use and output these everyday signals. The DSP board that we have used had a 4 channel DAC and 2 channel ADC. We gave a variable voltage to one channel of the ADC via a potentiometer (the voltage was positive) and then using the digital value we gave it to the DAC and observed the output on the DSO.

LED BINARY COUNTER


Here we have implemented a 4bit LED Binary counter using Flash Programming.Till now we have used the internal volatile memory of the F2833x to store the code for our examples. This approach is fine for projects where we there are frequent changes to parts and components  of the software. However when it comes to stand-alone embedded systems we no longer have the option to download the control code .For stand-alone applications we need to store our control code in the Non-volatile memory in this way the system will do the task immediately after system power up.

OSM-OAM


This experiment was to perform Linear filtering using OAM (Overlap Add Method) and  OSM (Overlap Save Method). Here we have a long sequence data x[n] whose response has to an impulse function here(h[n]) has to be observed. For this the length of the data sequence must be sufficiently larger than the impulse that is applied to the system.  In OAM we decompose the long input data sequence into smaller segments of lesser length, then we operate linear convolution to get segmented outputs of all the decomposed segments. After that we combine these outputs to obtain the final output. In OSM also we decompose the input data into smaller segments.The answer which we get for the linear convolution of the input data is the same by OAM method and OSM method. 

DFT-FFT


This experiment was based on developing a program to perform FFT and DFT of a N point signal on CCS.  DFT is one of the most powerful tools in digital signal processing; it enables us to find the spectrum of a finite-duration signal x(n). We observed that as the length of input signal increases frequency spacing and error decreases and resolution increases.  FFT is an algorithm that samples a signal over a period of time and divides it into its frequency components.FFT is a simpler and faster method. This is very useful when the value of N is large.

CORRELATION

In general, correlation describes the mutual relationship which exists between two or more things. The same definition holds good even in the case of signals. That is, correlation between signals indicates the measure up to which the given signal resembles another signal. In other words, if we want to know how much similarity exists between the signals 1 and 2, then we need to find out the correlation of Signal 1 with respect to Signal 2 or vice versa.
So we performed this experiment on the PC in ubuntu and on CCS. The aim of this experiment was to find auto/cross correlation and use Karl Pearson formula. We took a 4 point sequence in this experiment .We observed that correlation is a Mathematical tool that compares two signals and tells about the degree of similarity between them. This concept can be used for measuring the similarity of signals especially for “pattern recognition “and for “signal detection".

CONVOLUTION


In mathematics (in particular, functional analysis) convolution is a mathematical operation on two functions (f and g) to produce a third function that expresses how the shape of one is modified by the other. The term convolution refers to both the result function and to the process of computing it.This experiment was based on the different types of convolution . 
We had studied about convolution in the last semester in Signals and systems. In convolution we have done linear convolution which is based on linear time invariant system.Circular convolution is defined for finite length functions.We have calculated LC using CC by padding the input sequences with zero. Convolution is quite often used as a method of implementing filters of various types.We have observed the output on Code composer studio (CCS).

CODE COMPOSER STUDIO SIMULATOR

Code Composer Studio (CCStudio or CCS) is an Integrated Development Environment (IDE) to develop applications for Texas Instruments (TI) embedded processors. It is primarily designed as for embedded project design and low-level (baremetal) JTAG based debugging. 

So, this entire experiment was done on code composer studio (CCS) simulator and we observed the output in the CCS software itself . All the concepts and theory of this practical were taught in our Digital communication subject. The aim of the experiment was to develop a program on BPSK(Binary shift keying) , DPSK ,QPSK and harmonic generation. Phase Shift Keying (PSK) is the digital modulation technique in which the phase of the carrier signal is changed by varying the sine and cosine inputs at a particular time. In BPSK  the sine wave carrier takes two phase reversals such as 0° and 180°. In QPSK This is the phase shift keying technique, in which the sine wave carrier takes four phase reversals such as 0°, 90°, 180°, and 270°. We then observed the waveform for harmonics which showed the fundamental frequency 1st and 2nd harmonic.