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 : oluwayomi.adamo@unt.edu 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. 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. analog signal A/D converter DSP algorithms D/A converter General Block Diagram of a DSP System analog signal 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? ??? ??? Basic Microprocessor System Registers Clock & Reset Timing & Control ALU R0 R1 R2 R3 R4 R5 R6 R7 Memory Subsystem Input/Output Subsystem CPU (Central Processing Unit) Read Appendix D for more details. You will learn Computer Architecture/Organization in EENG 3710. External Devices 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 MATLAB is 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/la unchpad.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 1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1 1 2 Before you leave, show your results to the instructor. 3 4 5 6 7 8 9 10 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.