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.