EECS 452 Digital Signal Processi

Document Sample
EECS 452 Digital Signal Processi Powered By Docstoc
					              EECS 452
    Digital Signal Processing Lab

                Lecture 1: Class introduction

           • Lecture notes
           • Schedule
           • HW1, HW3a
           • (Also have prelab 1 to think about)
One must learn by doing the thing; for though you think you know it, you have no
certainty, until you try. — Sophocles
• Course overview
• What is a Digital Signal Processor?
  – And what are we using in lab?
• Lab hardware
• Start on C
• Review DSP basics
       "Tell me and I forget. Show me and I remember.
       Have me do and I understand.” –Chinese proverb*

                          *Also attributed to lots of old Greek guys, so who knows. 2
Course overview

                          What is 452?
    • Apply the concepts from systems classes (216,
      451, 455 etc.) to real problems in an embedded
         – You will be learning about a specific embedded
           environment using specific tools.
             • DSP using TI C5515 DSP microcomputer and Altera FPGA.
             • Verilog and C will be the hardware and software languages
               of choice
         – We will also focus on the generic application of the
             • So emphasis on how to apply the theory in the face of real
               world challenges.

Course overview

                        Who am I?
    • Dr. Mark Brehob
         – Lecturer (full-time teacher) in EECS
         – My background is on the embedded systems and
           architecture side
         – I’ve been picking up DSP in the last few years.

              Who else is there?
• Chao Yuan                        • These are great folks.
   – Was also GSI for the class      – Dr. Metzger is here out
     last Fall.
                                       of the kindness of his
   – Very strong interest in the
     area.                             heart.
• Dr. Kurt Metzger                   – You’re going to end up
   – Emeritus faculty member           relying on him a lot.
   – Will be heavily involved in        • Be nice!
     the class

Course overview

                  Class organization (1/2)
    • For the first six weeks the focus will be on
      teaching you how to do useful things with the
      DSK* found in lab.
         – In lab you’ll be doing six directed lab assignments
           (one a week).
               • Learn generic ideas/issues associated with implementing
                 DSP applications.
               • Learn how to work with the DSK.
               • These are fairly long and you can count on not finishing them
                 in lab.
         – In lecture we will be:
               • Teaching about the DSK
                     – Including reviewing C and teaching Verilog basics
               • Teaching about the generic ideas/issues associated with
                 implementing DSP applications in the lab.
                     – A2D, digital waveform generation, filter implementation, etc.
      * “Digital Signal Processing Kit”. Don’t ask where the P went.                   6
Course overview

                  Class organization (2/2)
    • In the last eight weeks the class will diverge a bit
         – The lab will be purely for the class project.
         – The lecture will cover a variety of material.
             • Some generic DSP stuff
                   – More on filters and sampling, DSP architecture and assembly,
             • Some project-specific stuff
                   – When I can find things that apply to a fair number of the

    • Note: we will be getting started on the projects in
      parallel with the first six weeks!

Course overview

                  Expected Background /
                     Learning Curve
    • Requirements are 216, 451, 280
         – So a background with continuous signals,
           digital signals, and programming (C and
           Matlab) is assumed.
             • Lots of Matlab and C is in your future.
    • There will a large emphasis on hardware
      design (270/370/373/470) and low-level
      software design (373).
         – We won’t assume any background in this
           material, but we will be expecting you to pick
           up a lot of it in a fairly short time.           8
Course overview

    • Breakdown:
         – Lab 20%
             • 6 labs.
         – Homework 10%
             • 5-7 homework assignments, not all weighted
         – Exams 30%
             • 15% for midterm and final.
         – Final Project 40%
    • Median will likely be a B+
Course overview

    • Groups of 4 to 5
    • 40% of the class grade
    • Target of 452 projects is to be useful.
         – Should be thinking product prototype
    • Needs to use DSP techniques
         – Vast majority will use our lab set-up.
         – Some projects have been largely theoretical with a
           DSK-based verification.
    • Grading is largely subjective
         – Based on difficulty, functionality and general value of

                        Labs (1/2)
• 6 labs in the first 6 weeks
   – Covers
      • C5515, FPGA, using both together
      • Direct digital synthesis, FIR filtering, IIR filtering, FFTs, basic
        analog circuits and more
   – Pre-labs done individually
   – In-lab/Post-lab done in groups of 2
• The labs are very time consuming
   – I’d expect you are looking at 6-10 hours per lab
     depending on your background
• The labs are new this term
   – Expect some bumps and glitches
                     Labs (2/2)
• Pre-labs are due at the beginning of lab
  – 25% of the lab grade
• In-lab/Post-lab are due at the beginning of the
  next lab.
  – In-lab
     • Has sign-off points (where the GSI signs off you’ve got that
       part working).
     • Questions which you’ll want or need to do in lab
  – Post-lab
     • Just more questions
     • Should be able to do outside of lab
Course overview

      Schedule and Important Dates
    • Some important dates:
         –   Oct. 6th 7pm+            Project group formation
         –   Oct. 27th 6:45-8:45pm    Midterm exam
         –   Dec. 8th (maybe?)        Design expo (required, afternoon)
         –   Dec. 13th 4pm+:          Project presentations
         –   Dec 20th 4-6pm:          Final
    • And some are soon:
         – Homework 1 is due Monday.
         – Lab1 prelab is also due at the start of lab next week.
    • Please be aware that the topic list for the class is
      approximate, especially as the semester goes on.
         – Things vary by project choices
         – Also each semester people seem to struggle with different
Course overview

  Some projects from the last few years
    • Vision, motion, control
         – Camera-directed robot (following pre-specfied color/path).
         – Real-time automobile lane change detector.
    • Audio, sound processing, and control
         –   Feel the music: a glove that turns music into vibration.
         –   Dance floor: floor lighting controlled by music and pressure.
         –   Beat matching: smooth transition between songs of different tempos.
         –   Guitar auto-tuner.
         –   Audio controlled stage lighting.
    • Sensing, communication and networking
         – Wireless body-worn soldier health monitoring.
         – Stroke-Pro: racing boat stroke monitoring.
    • DSP and communication fundamentals
         – Filter direct form I optimizer for car stereo systems.
         – OFDM modem.
         – Active noise cancellation headset.                                      14
What is a DSP?

     What is a Digital Signal Processor?
    • Wikipedia Lede:
           – A digital signal processor is a
             specialized microprocessor
             designed specifically for digital
             signal processing, generally in real-
             time computing.                                                         • Why process as
    • OK, but what does that mean?                                                     digital, not
           – Optimized to handle things like                                           analog?
             FFTs and other similar algorithms
             while using as little power and at a
             low of cost as possible.
           – Think about the requirements of a
             hearing aid for example…
                  • Cost, power, size, etc.

  Large parts of this section taken from Wikipedia’s article on Digital Signal Processors, including the above figure.
What is a DSP?

           DSP architectural features
    • Hardware modulo addressing
        – Allows circular buffers to be implemented without
          having to constantly test for wrapping.
    • Special arithmetic operations, such as fast
      multiply-accumulates (MACs).
        – Many DSP algorithms, such as FIR filters, matrix
          operations, and the Fast Fourier transform (FFT)
          depend heavily on multiply-accumulate performance.
    • Fixed-point (integer) arithmetic
        – Faster/smaller than floating point.
What is a DSP?

                 The Basic DSP paradigm

     Physical signal  Digital signal  Physical signal
Lab hardware

    • We’ve got the DSK
        – Programmed via C
    • We’ve also got an FPGA board
        – We’ll use Verilog
    • Some custom (to 452) boards to connect
      the two.
        – Dr. Metzger designed them.

Lab hardware

                      DSK image

               TMS320 C5515 eZDSP USB Stick Dev Tool   19
                         Costs about $100.
Lab hardware

     DSP development environment
• Code Composer Studio
  (CCS) from Texas
    – Fairly complete GUI
    – C and assembly
    – Debugger and performance
    – Runs program on hardware
    – In-circuit debug.
    – Lots of fairly good tutorials.
    – Can download and run
      evaluation version for
Lab hardware

           C55xx/C5515 documentation

               Obviously neither you nor the instructor nor the GSI are going
               to be able read and assimilate all this material in the time
               available. We will have to pick our battles, learn what is needed
               for the battle at hand and leave the rest for some other time.      21
Lab hardware

                Verilog on the FPGA
 • FPGA board                             • Verilog
     – Field Programmable Gate Array         – A way to describe hardware
     – Used to design custom                 – Looks like a programming
       hardware on the fly.                    language
     – Really is hardware design, not a         • Isn’t though.
       processor pretending.                 – We’ll spend some time
                                               teaching it.

C “introduction”

       C programming “review” (start)
     • You’ve all done C++ programming at one point.
          – Some 2 years ago, some last semester.
     • Embedded systems typically use C rather than C++
          – We want a lot of control of exactly what happens.
          – C gives us that, while C++ can have a lot of “magic”
            (constructors, destructors, overloading)
          – Assembly is ideal for control, but that’s more effort than we want
            at this point.
     • C and C++ are fairly similar, but we’re going to need to
       teach/review some stuff anyways.
          –   printf
          –   pointers
          –   casting
          –   the volatile keyword
          –   a few other things
C “introduction”

           There is a lot to learn/review
     • Today we’ll just do a little bit

C “introduction”

                               C++ to C
     • No classes, but structs exist (just without
       function members)
          – This isn’t a big deal.
     • cout doesn’t work
          – This sucks a bit more

C “introduction”

     • printf() prints characters to the
       screen.                                          #include <stdio.h>
          – printf() has a variable number of
                                                        int main() {
            arguments, the first of which is a format       printf("Hello World");
            string.                                     }
          – The format string can contain both
            ordinary characters (what you want to
            appear on the screen like 'Hello World')
            and conversion character sequences.
     • You can think of conversion
       characters as placeholders for a
       specific type formatted in a particular
          – Conversion character sequences begin
            with % and end with a conversion
            character.                                  int i;
                                                        for (i=0; i<10; i++) {
          – Printing out the integers from 0 to 9.         printf("i is: %d", i);
C “introduction”

                   Memory mapped I/O
     • We need to review pointers, but first let’s talk a
       bit about memory.
          – In EECS 280 the details of memory were largely
            skipped past.
          – But in an embedded environment we often desire to
            talk to specific memory locations as they hold special
               • For example, on our DSK byte at memory location
                 0x300000 holds the value of the dipswitches and the LEDs.
               • We’ll occasionally want to talk to those devices, so we need
                 to read (or write) that location.
               • We’ll be doing things like that a lot…

     note: 0x300000 is 300000 base 16 or 3145728 base 10.
C “introduction”

                         Type casting
     • C is one of the few languages to allow coercion,
       that is forcing one variable of one type to be
       another type. C allows this using the cast
       operator ().
               int i;
               float fp =4.27;
               i=(int) fp;
          – assigns 4 (the fractional part is thrown away) to “i”.
     • In this case, the casting would have happened

C “introduction”

                    Pointer fun!
      unsigned * ptr = (unsigned *)0x300000;
     • What the heck is that?
     • How do I use it?

DSP review

             Review of some basic DSP
    • A potpourri of signals and systems.
        – Basic definitions of a linear system, linear time-invariant system,
          causal system.
    • Transforms:
        – Fourier transform and Fourier series.
        – Discrete Fourier transform (DFT).
        – Z-transform.
    • Delta functions.
    • Lowpass signals and bandpass signals.
        – Frequency conversion.
        – Sampling and reconstruction.
        – Frequency aliasing and anti-aliasing filters
DSP review

                     Linear systems
    • Given two time functions x1(t), x2(t) and a function
      (or system) h( ) such that

                     y1(t) = h[x1(t)] and y2(t) = h[x2(t)]

       then the system is linear if and only if for all a and b

                   ay1(t) + by2(t) = h[ax1(t) + bx2(t)].

    • This leads to the principle of superposition. We can
      decompose a signal or filter into components, solve for
      the responses to the individual components and then
      construct the overall response by adding up the
      individual responses.
DSP review

      Stable, time invariant, causal systems

    • We say that a system is stable if for all bounded inputs
      the system's output is bounded.

    • We say that h( ) is time-invariant if for y(t) = h[x(t)] we
      have y(t-τ) = h[x(t-τ)].

    • We say that a system is causal if the output never
      precedes the input.

             Often, but not always, DSP systems are linear,
                 stable, time-invariant, causal systems.
DSP review

        Transforms and why we need them

Computing the response y(t) of LTI systems to exponential
inputs x(t) = Aej2πft is very easy.

• It is thus both natural and desirable in linear systems
  analysis to derive methods of expanding signals as sums
  of complex exponentials.

• We know two such methods:
   – Fourier series (FS);
   – Fourier transform (FT).

 We’ll finish up this review next time…

• And start on direct digital synthesis (DDS)

                (for you)
1. You have a (fairly short) homework due
   on Friday
2. You have a prelab due before the start of
   lab next week.


Shared By: