Audio Led Bargraph Equalizer Final Project for ECE-3551 05/02/09 Instructor: Dr Kepuska By; Anushan Weerasooriya & Chris Guzowski.

Slides:



Advertisements
Similar presentations
Spread Spectrum Chapter 7.
Advertisements

Spread Spectrum Chapter 7. Spread Spectrum Input is fed into a channel encoder Produces analog signal with narrow bandwidth Signal is further modulated.
Digital Coding of Analog Signal Prepared By: Amit Degada Teaching Assistant Electronics Engineering Department, Sardar Vallabhbhai National Institute of.
What is Arduino?  Arduino is a ATMEL 168 micro-controller kit designed specially for small projects  User friendly IDE(Integrated Development Environment)
Microcomputer Systems I ECE 3551 MOHAMMED ALYAMANI Instructor: Dr. Kepuska.
Senior Capstone Project Integration of Matlab Tools for DSP Code Generation ECE Department March 2nd, 2006 Team Members: Kwadwo Boateng and Charles Badu.
Implementation of an Audio Reverberation Algorithm
Auto-tuning for Electric Guitars using Digital Signal Processing Pat Hurney, 4ECE 31 st March 2009.
Digital to Analog and Analog to Digital Conversion
Data Acquisition Concepts Data Translation, Inc. Basics of Data Acquisition.
CEN352, Dr. Ghulam Muhammad King Saud University
Classification of Music According to Genres Using Neural Networks, Genetic Algorithms and Fuzzy Systems.
Dual Tone Multi-Frequency System Michael Odion Okosun Farhan Mahmood Benjamin Boateng Project Participants: Dial PulseDTMF.
Guitar Effects Processor Critical Design Review October, 07, 2003 Groups Members: Adam Bernstein Hosam Ghaith Jasenko Alagic Matthew Iyer Yousef Alyousef.
Professor: Dr Kepuska Presented by Kyle Farnum. Audio Manipulation through utilizing three types of filters: Low-pass filters Band- pass filters High-
1 RF (Radio Frequency) technology Part ll RF (Radio Frequency) technology Part ll BASIC TELECOMMUNICATIONS.
Self-Calibrating Audio Signal Equalization Greg Burns Wade Lindsey Kevin McLanahan Jack Samet.
Data and Computer Communications Chapter 8 – Multiplexing
Hardware Architecture of a real-world Digital Signal Processing platform: ADSP BlackFin Processor, Software Development on DSPs, and Signal Processing.
AUDIO COMPRESSION msccomputerscience.com. The process of digitizing audio signals is called PCM PCM involves sampling audio signal at minimum rate which.
MICROPROCESSOR INPUT/OUTPUT
MCU: Interrupts and Timers Ganesh Pitchiah. What’s an MCU ?
To use the blackfin processor BF-533 to implement what we have learned about the blackfin processor. My approach for this project by : Input Audio will.
EZ-Additive Synthesizer By Max Bastien 12/14/07. Problem Statement Mystery of keyboards reproducing a wide range of sounds from any particular instrument.
Senior Project Presentation: Designers: Shreya Prasad & Heather Smith Advisor: Dr. Vinod Prasad May 6th, 2003 Internal Hardware Design of a Microcontroller.
Digitalized Surround Sound Effects Using ADSP BF 533 Kunal Gupta ECE 3551, 03 Fall, 2006.
ECE 4710: Lecture #7 1 Overview  Chapter 3: Baseband Pulse & Digital Signaling  Encode analog waveforms into baseband digital signals »Digital signaling.
Blackfin Calculator Learning Game By Majed Al-Herbi Will Matthau Course: ECE3552 – Spring 2008 Instructor: Dr. Veton Kepuska.
SDRAM Load and Play By Hernacki, Kevin ECE3551 Final Project 25 April 2008.
Danielle Roy.  The goal of this project is to create an emulation of a popular children’s game. This game flashes a pattern at the player, and the player.
CE Operating Systems Lecture 2 Low level hardware support for operating systems.
Microcomputer Systems I ECE 3551 Fahad Alqasim Instructor: Dr. Kepuska.
Josh Lawson ECE Overview Project Description Schematic Hardware Involved Features of ATMEGA16/STK500 Involved System Features Testing Method.
Simon Says ECE 3551 Microcomputer Systems I Elizabeth Nelson.
CE Operating Systems Lecture 2 Low level hardware support for operating systems.
Loop Board ECE 3551 Final Project by Brian Robl. Objectives Use the Blackfin BF533 EZ-KIT to create a 4 track audio looper.  Utilize 32MB of external.
Digital Control CSE 421.
Audio Manipulation And Buffers using DSP-BF533 EZ-KIT Lite Dr. Veton Z. Këpuska By Husain Alotaibi Ahmed Alalyak ECE 3551 Microcomputer System I Spring.
Microcomputer Systems I ECE 3551 – Fall 2010 Ryan M. Winget.
Filters filters. Filters A filter removes a signal’s unwanted frequency components. Figure 6.18.
Microcomputer 1 Final Phantom Speakers Patrick Marinelli Matt Hopkins.
ECE 3551 – Microcomputer Systems 1 Fall 2010 Siobhan Ireland.
ECE 3551 – Microcomputer Systems I By Md. Raqiq Islam AUDIO EFFECTS IMPLEMENTATION.
Stallings, Wireless Communications & Networks, Second Edition, © 2005 Pearson Education, Inc. All rights reserved Spread Spectrum Chapter.
Circular Buffer Audio Generation Using the Karplus-Strong String Synthesis Algorithm.
“Uber” Box Multifarious Systems 1 Pattarapong Rojanasthien Will Matthau.
0808/0809 ADC. Block Diagram ADC ADC0808/ADC Bit μP Compatible A/D Converters with 8-Channel Multiplexer The 8-bit A/D converter uses successive.
ECE 3551 Microcomputer Systems 1 Final Project Morse Code Reader Instructor: Dr. Veton Kepuska Term: Fall 2006 By: Erik Lindman & Rong Li.
Automatic Guitar Tuner Group #10 Dariusz Prokopczak & Stephan Erickson ECE 445 Sr. Design December 9, 2014.
EKT 314/4 WEEK 9 : CHAPTER 4 DATA ACQUISITION AND CONVERSION ELECTRONIC INSTRUMENTATION.
Lecture Notes / PPT UNIT III
Microcomputer systems 1 ECE 3551 Dipesh Patel.  Activating Filters using the pushbuttons.  Combination of LEDs turned on with each pushbutton pressed.
Application Case Study Christmas Lights Controller
Digital Control CSE 421.
Microcontroller Applications
Bandwidth Utilization
Bandwidth Utilization
Sound effects with Rotation control
Digital Communication
Chapter 4: Digital Transmission
Digital Acquisition of Analog Signals – A Practical Guide
Filters A filter removes a signal’s unwanted frequency components.
Blackfin Volume Control
Lab 3 Part III Instructions
Md. Mojahidul Islam Lecturer Dept. of Computer Science & Engineering
Md. Mojahidul Islam Lecturer Dept. of Computer Science & Engineering
Analog-to-digital converter
Interrupt handling Explain how interrupts are used to obtain processor time and how processing of interrupted jobs may later be resumed, (typical.
CEN352, Dr. Ghulam Muhammad King Saud University
ECE Computer Engineering Design Project
Presentation transcript:

Audio Led Bargraph Equalizer Final Project for ECE /02/09 Instructor: Dr Kepuska By; Anushan Weerasooriya & Chris Guzowski

Outline Summary: 1) Objective: – 6 Band Led Bargraph Equalizer 2) Design: - Overview 3) C Code: - Filters\Timers\Display 4) Difficulties: - Audio Addition 5) Outcome: - Functionality

6 Band Led Bargraph Equalizer Synopsis: a) Using 6 leds and 4 switches create an led bargraph equalizer using C code and the Analog Devices BF533 Evaluation board. This project contains modest functionality so that it could be used for the job that it was intended. Each switch along with each led of the Bf533 will be utilized. Intended functions will include audio gain and hold adjustments for each individual bandpass filter, varying led intensity displaying audio output levels (alterd vs. unaltered), audio switchability for channel comparison and sample/hold led display. b) The led display will recreate audio levels (across all 6 bandpass filters) by illumination intensity, the brightest being the most and the weakest being the least. c) All 6 filters will be recombined into a composite audio output of the original audio input incorporating our desired gain adjustments.

Overview Implementation Switches/Leds: a) Switch #1 selects each bandpass of filters one at a time which will be displayed by its appropriate led and corresponding illumination intensity. b) Switch #2 controls 3 levels of gain adjustments for each filter one at a time. c) Switch #3 locks in gain for each channel adjusted. d) Switch #4 selects altered (all bandpass filters) audio with full led bargraph display or the full led bargraph display by itself. FIR Filters: a) Six bandpass filters will make up the original audio input spectrum. Low frequencies will be pass by the 200hz- 750hz filter, the highest frequencies will be passed by the 7khz-10khz filter and the midband frequencies will be pass by the 5khz-7khz, the 3khz-5khz, the 1.5khz-3khz, the 750hz-1.2khz filters respectively. Diagram of Typical FIR Filter

Overview - Switching Code snippets for audio switching control: *pDMA1_IRQ_STATUS = 0x0001; // Confirm Interrupt Handling if(LED1 == 0x00 && LED4 == 0x00) // Checking LED Status { // Copy Input Data from Dma Input Buffer into Variables iChannel0LeftIn = iRxBuffer1[INTERNAL_ADC_L0]; iChannel0RightIn = iRxBuffer1[INTERNAL_ADC_R0]; Process_Data();// Call Function that Contains user Code // Copy Processed Data from Variables into Dma Output Buffer iTxBuffer1[INTERNAL_DAC_L0] = iChannel0LeftOut; iTxBuffer1[INTERNAL_DAC_R0] = iChannel0RightOut; Status1 = 0x00; // Controls Led's Illumination Time } if(LED1 == 0x01 && LED4 == 0x00) // Checking LED Status { // Copy Input Data from Dma Input Buffer into Variables iChannel0LeftIn = iRxBuffer1[INTERNAL_ADC_L0]; iChannel0RightIn = iRxBuffer1[INTERNAL_ADC_R0]; // Copy Processed Data from Variables into Dma Output Buffer Status1 = 0x01; // Controls Led's Illumination Time abandpass(); iTxBuffer1[INTERNAL_DAC_L0] = aChannel0LeftOut; iTxBuffer1[INTERNAL_DAC_R0] = aChannel0RightOut; } // One Bandpass Filter at a Time if(*pFIO_FLAG_C == 0x0100 && pf8count == 0) // Switch P8 Flag & Count at 0 { FIO_ANOM_0311_FLAG_W(0x0100,pFIO_FLAG_C);// Confirm Interrupt Handling LED1 = 0x01; // Sets LED1 Control Variable pf8count++; } if(*pFIO_FLAG_C == 0x0100 && pf8count == 1) // Switch P8 Flag & Count at 1 { FIO_ANOM_0311_FLAG_W(0x0100,pFIO_FLAG_C);// Confirm Interrupt Handling LED1 = 0x02; // Sets LED1 Control Variable pf8count++; }

FIR Filters - Code in Process_data.c file –Filter Coefficients (101) for the 100 th Order –Impulse response of a Nth order FIR filter lasts N+1 samples & dies to 0 –Filter Equation Implementation for (m=fBL - 1; m >= 0; m--) { xl[m]=xl[m-1]; // moving the array data from the end to the beginning (leftwards) xr[m]=xr[m-1]; } xl[0]=(float)(iChannel0LeftIn<<8); // Shift Left 8 bits to make 16 bit arrays since ADC gives 24 bit arrays xr[0]=(float)(iChannel0RightIn<<8); for(counter=0;counter < fBL;counter++) { yl += fB[counter] * xl[counter]; yr += fB[counter] * xr[counter]; } fChannel0LeftOut=(((int)yl)>>8)*gainbp6; // Shift Right 8 bits to create the original 24 bit array fChannel0RightOut=(((int)yr)>>8)*gainbp6; FIR Filter Algorithm

Timers - Code in ISR.c file Timer Setup: a) A two timer operation will be enabled to run the led brightness display by gauging the fastest running timer against the slowest running timer ultimately providing varying intensities with each corresponding led frequency band. Timer Configuration: *pTIMER0_CONFIG = 0x0019; *pTIMER0_PERIOD = 0x ; // Timer0 Period *pTIMER0_WIDTH = 0x ; // Timer0 Width *pTIMER1_PERIOD = 0x ; // Timer1 Period *pTIMER1_WIDTH = 0x ; // Timer0 Width *pTIMER_ENABLE = 0x0003; // Enable Timers0/1 Timer Code: timerstatus = (*pTIMER_STATUS); // Records TIMER_STATUS before it is Reset *pTIMER_STATUS = 0x0003; // Confirms Interrupt Handling if((timerstatus & 0x0001) == 0x0001) // Checks for Timer0 Status Bit { tim0++; // Once Timer0 is Detected Keep Enabled until Cycle Complete } if((timerstatus & 0x0002) == 0x0002) // Checks for Timer1 Status Bit { tim1++; // Auto Increment tim1 tim2++; // Auto Increment tim2 } if(tim0 < 1 ) // Reset tim0=1 when tim0 does not = 1 { tim1 = 0; }

Timers - Continued Timer Code // Led1 Section // if(ledctr == 1 && tim0 == 1 && tim1 == 1) // Send to amp "level" of Freq #1 when tim0=1 { if(hold== 0) { amp1 = famp1; // Samples and Holds famp1 Before it is Used } *pFlashA_PortB_Data = 0x01&Status1; // Illuminate Led #1 } if(ledctr == 1 && tim0 == 1 && tim1 > amp1) // Checks to Turnoff all Led's { *pFlashA_PortB_Data = 0x00; // De-illuminate all Led's tim0 = 0; // reset tim0=0 tim1 = 0; // reset tim1=0 } Timer1 Timer0 -32 Possible Illumination Levels- pTIMER0_PERIOD = 0x pTIMER1_PERIOD = 0x Timing Diagram Initialize.c file Changes: // Set Sport0 RX (DMA1) interrupt priority to 2 = IVG9 *pSIC_IAR0 = 0xffffffff; *pSIC_IAR1 = 0xffffff2f; // Sport0->ID2 *pSIC_IAR2 = 0xffff5f44; // FlagA->ID5/Timer0->ID4/Timer1->ID4 // assign ISRs to interrupt vectors register_handler(ik_ivg9, Sport0_RX_ISR); // Sport0 RX ISR -> IVG 9 register_handler(ik_ivg11, Timerz_ISR); // Timer0/1 ISR -> IVG 11 register_handler(ik_ivg12, FlagA_ISR); // FlagA ISR -> IVG 12 // enable Sport0 RX and FlagA interrupt *pSIC_IMASK = 0x000b0200;

Display - Code in ISR.c Process_data.c files Led Values are set here after each filter algorithm which converts audio output words into integers: // Led Value Set Here if(aChannel0LeftOut 0xf ) { famp1 = 32; } if(aChannel0LeftOut 0x0f000000) { famp1 = 24; } if(aChannel0LeftOut 0x00f00000) { famp1 = 16; } if(aChannel0LeftOut 0x000f0000) { famp1 = 8; } if(aChannel0LeftOut 0x0000f000) { famp1 = 4; } if(aChannel0LeftOut 0x00000f00) { famp1 = 0; }

Audio Addition Recombining Audio Bands: a) An unorthodox audio addition scheme was utilized to allow for complete board functionality. All bandpass audio filters are added using time division multiplexing. This seemed to be the only way to recombine six altered audio channel into one composite stream and overcome Bf533 board slowdowns or halts. if(LED4 == 0x01 && LED1 == 0x00) // Checking LED status { // Copy Processed Data from Variables into Dma Output Buffer if(tim2 == 1) { abandpass(); } if(tim2 == 2) { bbandpass(); } if(tim2 == 3) { cbandpass(); } if(tim2 == 4) { dbandpass(); } if(tim2 == 5) { ebandpass(); } if(tim2 == 6) { fbandpass(); } iTxBuffer1[INTERNAL_DAC_L0] = aChannel0LeftOut+bChannel0LeftOut+cChannel0LeftOut+dChannel0LeftOut+eChannel0LeftOut+fChannel0LeftOut; iTxBuffer1[INTERNAL_DAC_R0] = aChannel0RightOut+bChannel0RightOut+cChannel0RightOut+dChannel0RightOut+eChannel0RightOut+fChannel0RightOut;

Functionality Discussion: a) All the desired led/switch and audio pass functions of the project operated nominally; however, final added bandpass filters produced unwanted frequencies in each band producing an undesirable filtered audio output. Total functional operation was realized; however, there were unwanted sympathic (outside of bandpass filter) frequencies and Bf533 board slowdowns/halts. b) Also, because of time constraints and audio addition (switching noise) problems, other functions such as adjustable led rise/decay rates and decibel signal referencing would have been a nice touch but could not be realized. c) Although we had a few difficulties, overall we learned a lot about controlling the Bf533 board and using it to digitally manage signals.