Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
learn:courses:unit-7:start [2017/03/29 20:58] – Marthalearn:courses:unit-7:start [2022/10/04 11:38] (current) – external edit 127.0.0.1
Line 1: Line 1:
 ====== Unit 7: Audio Signal Processing ====== ====== Unit 7: Audio Signal Processing ======
 +[[{}/learn/courses/unit-6/start|Back to Unit 6]]
 +
 === Unit 7 Labs === === Unit 7 Labs ===
-  * [[https://reference.digilentinc.com/learn/courses/unit-7-lab7a/start|Lab 7a]] +  * [[/learn/courses/unit-7-lab7a/start|Lab 7a]] 
-  * [[https://reference.digilentinc.com/learn/courses/unit-7-lab7b/start|Lab 7b]]+  * [[/learn/courses/unit-7-lab7b/start|Lab 7b]]
  
  
 === Download This Document === === Download This Document ===
-  * {{ :learn:courses:unit-7:unit_7.pdf |Unit 7 PDF}}+{{ :learn:courses:unit-7:unit_7.pdf |Unit 7 PDF}}
  
  
Line 16: Line 18:
  
 ===== 2. Objectives ===== ===== 2. Objectives =====
-  * Extend the applications of digital signal processing introduced in Unit 6. +  - Extend the applications of digital signal processing introduced in Unit 6. 
-  * Use a DSP algorithm to synthesize sine waves. +  - Use a DSP algorithm to synthesize sine waves. 
-  * Use a DSP algorithm to analyze a periodic signal using Discrete Fourier Transforms.  +  - Use a DSP algorithm to analyze a periodic signal using Discrete Fourier Transforms.  
-  * How to implement DSP algorithms on the PIC32 processor using C. +  - How to implement DSP algorithms on the PIC32 processor using C. 
-  * How to use the PIC32 MIPS DSP library to increase the DSP algorithm execution speed.+  - How to use the PIC32 MIPS DSP library to increase the DSP algorithm execution speed.
  
  
Line 26: Line 28:
  
 ===== 3. Basic Knowledge ===== ===== 3. Basic Knowledge =====
-  * [[http://en.wikibooks.org/wiki/C_Programming/Compiling|Knowledge of C or C++ programming]] +  - [[http://en.wikibooks.org/wiki/C_Programming/Compiling|Knowledge of C or C++ programming]] 
-  * [[http://ww1.microchip.com/downloads/en/DeviceDoc/52027B.pdf|Working knowledge of MPLAB® X IDE]] +  - [[http://ww1.microchip.com/downloads/en/DeviceDoc/52027B.pdf|Working knowledge of MPLAB® X IDE]] 
-  * Interfacing with an LCD +  - Interfacing with an LCD 
-  * [[http://en.wikipedia.org/wiki/Finite_impulse_response|Understanding of Finite Impulse Response Digital Filters]]  +  - [[http://en.wikipedia.org/wiki/Finite_impulse_response|Understanding of Finite Impulse Response Digital Filters]]  
-  * [[https://en.wikipedia.org/wiki/Fast_Fourier_transform|Understanding of Fourier Transforms]]+  - [[https://en.wikipedia.org/wiki/Fast_Fourier_transform|Understanding of Fourier Transforms]]
  
  
Line 37: Line 39:
 ===== 4. Equipment List ===== ===== 4. Equipment List =====
 ==== 4.1. Hardware ==== ==== 4.1. Hardware ====
-  * [[http://store.digilentinc.com/basys-mx3-pic32mx-trainer-board-recommended-for-embedded-systems-courses/|Basys MX3 trainer board]] +  - [[https://digilent.com/shop/basys-mx3-pic32mx-trainer-board-for-embedded-systems-courses/|Basys MX3 trainer board]] 
-  * Workstation computer running Windows 10 or higher, MAC OS, or Linux +  - Workstation computer running Windows 10 or higher, MAC OS, or Linux 
-  * 2 [[http://store.digilentinc.com/usb-a-to-micro-b-cable/|Standard USB A to micro-B cables]]+  - 2 [[https://digilent.com/shop/usb-a-to-micro-b-cable/|Standard USB A to micro-B cables]]
  
 In addition, we suggest the following instruments: In addition, we suggest the following instruments:
-  * [[http://store.digilentinc.com/analog-discovery-2-100msps-usb-oscilloscope-logic-analyzer-and-variable-power-supply/|Analog Discovery 2]]+  - [[https://digilent.com/shop/analog-discovery-2-100ms-s-usb-oscilloscope-logic-analyzer-and-variable-power-supply/|Analog Discovery 2]]
  
 ==== 4.2. Software ==== ==== 4.2. Software ====
 The following programs must be installed on your development workstation: The following programs must be installed on your development workstation:
-  * [[http://www.microchip.com/mplab/mplab-x-ide|Microchip MPLAB X® v3.35 or higher]] +  - [[http://www.microchip.com/mplab/mplab-x-ide|Microchip MPLAB X® v3.35 or higher]] 
-  * [[http://www.microchip.com/SWLibraryWeb/product.aspx?product=PIC32%20Peripheral%20Library|PLIB Peripheral Library]] +  - [[http://www.microchip.com/SWLibraryWeb/product.aspx?product=PIC32%20Peripheral%20Library|PLIB Peripheral Library]] 
-  * [[http://www.microchip.com/xcdemo/xcpluspromo.aspx|XC32 Cross Compiler]] +  - [[http://www.microchip.com/xcdemo/xcpluspromo.aspx|XC32 Cross Compiler]] 
-  * [[http://store.digilentinc.com/waveforms-2015-download-only/|WaveForms 2015]] (if using the Analog Discovery 2) +  - [[https://digilent.com/shop/software/digilent-waveforms/|WaveForms]] (if using the Analog Discovery 2) 
-  * [[http://iowahills.com/|Iowa Hills Software for IIR and FIR Filters]] (used for illustrative purposes and is not required)+  - [[http://iowahills.com/|Iowa Hills Software for IIR and FIR Filters]] (used for illustrative purposes and is not required)
  
 ---- ----
  
 ===== 5. Project Takeaways ===== ===== 5. Project Takeaways =====
-  * How to implement digital filters in C using a PIC32 microprocessor. +  - How to implement digital filters in C using a PIC32 microprocessor. 
-  * How to create analog output using pulse-width modulation. +  - How to create analog output using pulse-width modulation. 
-  * How to sample an analog input at a specified rate. +  - How to sample an analog input at a specified rate. 
-  * How to use the PIC32 processor to make a signal generator. +  - How to use the PIC32 processor to make a signal generator. 
-  * How to use the PIC32 processor to make a real-time frequency spectrum analyzer.+  - How to use the PIC32 processor to make a real-time frequency spectrum analyzer.
  
  
Line 102: Line 104:
 The result of the substitution of Eq. 6.2 into Eq. 6.1 is also a rational polynomial, as shown in Eq. 6.3, that relates the output, $Y(z)$, to the input, $X(z)$. The polynomial coefficients $d_j$ and $c_i$ are not the same values as $b_j$ and $a_i$ used in Eq. 6.1. The result of the substitution of Eq. 6.2 into Eq. 6.1 is also a rational polynomial, as shown in Eq. 6.3, that relates the output, $Y(z)$, to the input, $X(z)$. The polynomial coefficients $d_j$ and $c_i$ are not the same values as $b_j$ and $a_i$ used in Eq. 6.1.
  
-$$H(z) = \frac{y(z)}{X(z)} = \frac{FILTERGAIN \cdot \sum_{j-0}^{M-1} d_j \cdot z^{-1}}{1 + \sum_{i=1}^{N-1} c_j \cdot z^{-i}} = \frac{FILTERGAIN \cdot \sum_{j=0}^{M-1} d_j \cdot X(z) \cdot z^{-j}} \qquad (\text{Eq. 6.3})$$+$$H(z) = \frac{y(z)}{X(z)} = \frac{FILTERGAIN \cdot \sum_{j-0}^{M-1} d_j \cdot z^{-1}}{1 + \sum_{i=1}^{N-1} c_j \cdot z^{-i}} = \frac{FILTERGAIN \cdot \sum_{j=0}^{M-1} d_j \cdot X(z) \cdot z^{-j}}{1 + \sum_{i=1}^{N-1} c_i \cdot Y(z) \cdot z^{-i}} \qquad (\text{Eq. 6.3})$$
  
 Solving Eq. 6.3 for the output, $Y(z)$, as a function of the input, $X(z)$, results in Eq. 6.4. Solving Eq. 6.3 for the output, $Y(z)$, as a function of the input, $X(z)$, results in Eq. 6.4.
Line 235: Line 237:
 </code> </code>
  
-==== Listing A.2. C Code to Implement a 16 tap FIR Digital Filter Using Fixed Point Math+==== Listing A.2. C Code to Implement a 16 tap FIR Digital Filter Using Fixed Point Math ====
 <code> <code>
 int16_t lowpass2KHzFIRCoefs[16]=  int16_t lowpass2KHzFIRCoefs[16]= 
Line 368: Line 370:
  
 ---- ----
 +
 +[[{}/learn/courses/unit-6/start|Back to Unit 6]]
 +[[{}/learn/courses/unit-7-lab7a/start|Go to Lab 7a]]
 +[[{}/learn/courses/unit-7-lab7b/start|Go to Lab 7b]]
 +[[{}/learn/courses/start|Back to Course List]]
  
 {{tag>reference learn microprocessor courses basys-mx3}} {{tag>reference learn microprocessor courses basys-mx3}}