EENG 3910: Project V Digital Signal Processing (DSP) System Design By Instructor: Oluwayomi Adamo Department of Electrical Engineering University of North Texas
Outline • Course Syllabus • Digital Signal Processing Basics • Computer Architecture Basics • Hands-on Exercise of DSP Programming using Code Composer Studio
Course Syllabus – Contact Info. • Instructor: Oluwayomi Adamo • Office: B 208 • Phone : 940-891-6874 • Email : firstname.lastname@example.org • Class Hours : Th. 1:00 PM - 3:50 PM • Classroom : B207 • Office Hours : Tues. & Thurs. 4:00 PM - 5:00 PM • Teaching Assistant : Neelima Kamineni • Office Hours : TBD
Course Syllabus - Course Objective • Understand the basics of computer architecture and digital signal processor architecture; • Develop basic understanding of real-time processing and real-time system, either soft or hard real-time; • Develop basic understanding of theories of digital signal processing, including sampling and reconstruction of signals, FIR and IIR filter design, and FIR and IIR filtering of signals; • Develop basic understanding of Fast Fourier Transforms (FFT), spectral analysis and windowing through hands-on exercises;
Course Syllabus - Course Objective • Implement and simulate signal processing algorithm in MATLAB, LABview and C; • Program and implement signal processing algorithm in C programming language on TI DSK hardware/software platform; • Understand real-time DSP specific programming techniques, including interrupt-based processing, sample by sample processing, frame-based processing, and various periodic signal generation techniques • Understand basics of audio signal sampling, processing and special effects as well as related hardware connection and configuration (Microphone, computer/DSK, speaker
Course Syllabus (cntd) • Prerequisite: Signals and Systems (EENG 2620) • Required Textbooks : Real-Time Digital Signal Processing from MATLAB to C with the TMS320C6x DSK, T. B. Welch, C. H. G. Wright, and M. G. Morrow, CRC Press, Taylor & Francis Group, LLC, 2006
Course Syllabus - Class Policies • Class and lab attendance is mandatory; • All lab assignments and assignment reports are individual work. • However, Discussion of course material is encouraged. • Assignments are due before class and late assignments will be penalized. Grading: • Hands-on Exercises and Report - 50% • Projects (Final Projects - 30) – 50%
Class Policies (cntd) • All Hands-on Exercises will be assigned one week earlier. • You are required to study the assignments and related theories in the corresponding book chapters before coming to the class. • Pre-lab assignments will be EVALUATED and GRADED in class. • If you encounter any questions on the lab assignments or related theories, you need to get help from TA or instructor before the lab session. • Towards the end of the semester, you will need to design and implement a final project (groups of 2 or 3 ). • Final Project deliverables include a final project report and presentation in the final week.
Course Syllabus - Schedule • First half of the semester • Every week we deal with one important DSP concept. • You will learn the basic theories by reading before Hands-on session. • You will learn to write real-time DSP programs and implement DSP algorithms during Hands-on sessions. • Submit weekly assignment report in the following week. • Second half of the semester • Every week you will work on a project outlined in the book. • You will load the programs and run the project following instructions in the book. • You will need to make some changes to the original project implementation following the instruction in the assignments. • Submit weekly assignment report in the following week. • Final Project (group project with 2-3 person/group) • You design. • You implement. • Submit final project report and present your project in the final week.
Tips for Success • Study the book and assignment materials before the lab session. • Do Matlab experiments before lab session! Read/study code files in the book CD before lab session. • Timely submission of assignment reports will be particularly enforced. • Your grade will suffer from late assignment submissions. • Strictly following schedule is one of the most important principles that you will need to follow as an engineer – You will be an engineer in less than 2 years! • Prepare for the lab early every week; Please consult with your TA or instructor before lab session to make sure you can finish the lab on-time in class. • Be inquisitive by asking “Why” in this course! • Make your assignment report as detailed as possible and explain clearly what you have done in the lab. • It also helps communicating with TA about specific requirements and expectations on the report.
analog signal A/Dconverter DSPalgorithms D/Aconverter analog signal General Block Diagram of a DSP System DSP • Digital Signal Processing (DSP) • Is the manipulation of digital signals in order to modify their characteristic or to extract useful information. Why digital and not analog? • Digital signal allow programmability, • Digital circuit allow for stable output than analog • Microprocessors and computers have become so powerful • only digitized signal can be processed by computers. • Digital Signal Processor (DSP) • DSP is a specialized microprocessor optimized for signal processing. • General purpose microprocessors such as Pentium series microprocessors that are used in PC are not optimized for signal processing purposes.
Real-Time DSP • Real-time DSP combines • Digital signal processing theories • You need to understand what you are doing and why it works. • Computer engineering • To do real-time DSP programming, you will need good understanding of computer organization, microprocessor architectures, digital and analog circuits, … • Software engineering • You will need to implement DSP algorithms in Matlab and on DSP platforms using C and LABview programming language. So, you need to be a very good programmer.
Real-Time Processing • Real-time processing means: • The processing of a particular sample must occur within a given time period or the system will not operate properly. • Real-time DSP is inherently an interrupt driven process. The input samples should only be processed using interrupt service routines (ISR). • Hard real-time system • The system will fail if the processing is not done in a timely manner. • Soft real-time system • The system will tolerate some failures to meet real-time targets and still continue to operate, but with some degradation in performance. • The performance demands and power constraints of real-time systems often mandate specialized hardware. • That may include the digital signal processor (DSP), programmable logic devices, application specific integrated circuits (ASIC), and etc.
Computer Architecture • Computer architecture is: • “… an abstract interface between the hardware and the lowest level software of a machine that encompasses all the information necessary to write a machine language program that will run correctly, including instructions, registers, memory size, and so on.” • Think about your computer for a moment. What are the major components of your computer? • ??? • ???
R0 R1 R2 R3 R4 R5 R6 R7 Basic Microprocessor System Registers Clock&Reset Timing&Control Memory Subsystem ALU Input/Output Subsystem External Devices CPU (Central Processing Unit) Read Appendix D for more details. You will learn Computer Architecture/Organization in EENG 3710.
Real-time DSP Programming using CCS • CCS stands for Code Composer Studio • It’s Texas Instruments’ (TI) integrated development environment (IDE) software for developing programs on a wide variety of their DSP’s. • In CCS, the code editing, code generation, and debugging tools are all integrated into one unified environment. • Read Appendix A for more details. • Follow the step-by-step instruction in Appendix A to get familiar with the software. You will do most of the programming using CCS in this semester.
DSP Simulation using MATLAB • MATLABis an integrated technical computing tool • Math and computation Algorithm development • Data acquisition Modeling, simulation, and prototyping • Data analysis, exploration, and visualization • Scientific and engineering graphics • Application development, including graphical user interface building • Go through the tutorial at MathWorks to get yourself familiar with MATLAB • http://www.mathworks.com/academia/student_center/tutorials/launchpad.html (type “matlab tutorial” in google and it will be the first result.)
Assignment 0 • Open an existing project in C:\EENG3910Project and try to run it. • Appendix A • Create a .m file which plots a SIN wave. • Tutorial 7 - Performing Calculations http://www.mathworks.com/academia/student_center/tutorials/performing_calculations.html • Tutorial 8 - Visualizing Data (Plotting) http://www.mathworks.com/academia/student_center/tutorials/visualizing_data.html • Before you leave, show your results to the instructor.
Hands-On 0 • Choose a computer and stick to it for the rest of the semester. • The directory C:\EENG3910Project is a copy of the textbook CD. You can modify files, source codes in this directory. A good practice is to make comment wherever you make changes. • C:\DSPCD is a read-only copy of the textbook CD and is used for restoring EENG3910Project directory. • Always remember to save your modified files to your flash drive, student storage, e-mail, etc.