You CAN Do Digital Filtering with an MCU!

Similar documents
A13C: Performing Digital Filtering on an MCU

ADC Resolution: Myth and Reality

Sensorless Vector Control and Implementation: Why and How

Sensorless Vector Control with RL78G14

Sensorless Vector Control with RL78G14

REAL TIME DIGITAL SIGNAL PROCESSING. Introduction

Appendix B. Design Implementation Description For The Digital Frequency Demodulator

Moving Forward Efficiently HEV/EV Traction Motor Lab

Moving Forward Efficiently HEV/EV Traction Motor Lab

FYS3240 PC-based instrumentation and microcontrollers. Signal sampling. Spring 2015 Lecture #5

EECS 452 Midterm Closed book part Winter 2013

EECS 452 Midterm Exam (solns) Fall 2012

AutoBench 1.1. software benchmark data book.

EECS 452 Midterm Exam Winter 2012

Part One. Efficient Digital Filters COPYRIGHTED MATERIAL

Power Factor Correction Why and How?

Subra Ganesan DSP 1.

FYS3240 PC-based instrumentation and microcontrollers. Signal sampling. Spring 2017 Lecture #5

Advantages of Analog Representation. Varies continuously, like the property being measured. Represents continuous values. See Figure 12.

Lecture 3 Review of Signals and Systems: Part 2. EE4900/EE6720 Digital Communications

Multirate DSP, part 1: Upsampling and downsampling

Interpolated Lowpass FIR Filters

Design and Implementation of Efficient FIR Filter Structures using Xilinx System Generator

DIGITAL FILTERING OF MULTIPLE ANALOG CHANNELS

Team proposals are due tomorrow at 6PM Homework 4 is due next thur. Proposal presentations are next mon in 1311EECS.

Lab 4 Digital Scope and Spectrum Analyzer

LOW SAMPLING RATE OPERATION FOR BURR-BROWN

Problem Point Value Your score Topic 1 28 Filter Analysis 2 24 Filter Implementation 3 24 Filter Design 4 24 Potpourri Total 100

EE233 Autumn 2016 Electrical Engineering University of Washington. EE233 HW7 Solution. Nov. 16 th. Due Date: Nov. 23 rd

EEM478-WEEK8 Finite Impulse Response (FIR) Filters

Cyber-Physical Systems ADC / DAC

ECE 6560 Multirate Signal Processing Lecture 9

Application Note 7. Digital Audio FIR Crossover. Highlights Importing Transducer Response Data FIR Window Functions FIR Approximation Methods

Digital Signal Processing. VO Embedded Systems Engineering Armin Wasicek WS 2009/10

A DSP IMPLEMENTED DIGITAL FM MULTIPLEXING SYSTEM

2) How fast can we implement these in a system

Analogue Interfacing. What is a signal? Continuous vs. Discrete Time. Continuous time signals

for amateur radio applications and beyond...

SCUBA-2. Low Pass Filtering

Design Implementation Description for the Digital Frequency Oscillator

Analog to digital and digital to analog converters

Design Of Multirate Linear Phase Decimation Filters For Oversampling Adcs

System on a Chip. Prof. Dr. Michael Kraft

Digital Filters Using the TMS320C6000

ME 461 Laboratory #3 Analog-to-Digital Conversion

AN2668 Application note

Pulsed VNA Measurements:

Hello, and welcome to this presentation of the STM32 Digital Filter for Sigma-Delta modulators interface. The features of this interface, which

ECE 6560 Multirate Signal Processing Chapter 13

Designing with STM32F3x

SIGMA-DELTA CONVERTER

One-Bit Delta Sigma D/A Conversion Part I: Theory

AN2182 Application note

Inside the Delta-Sigma Converter: Practical Theory and Application. Speaker: TI FAE: Andrew Wang

FFT Analyzer. Gianfranco Miele, Ph.D

Fundamentals of Data Converters. DAVID KRESS Director of Technical Marketing

Digital Filters IIR (& Their Corresponding Analog Filters) Week Date Lecture Title

Noise removal example. Today s topic. Digital Signal Processing. Lecture 3. Application Specific Integrated Circuits for

Introduction to Real-Time Digital Signal Processing

Improving Loop-Gain Performance In Digital Power Supplies With Latest- Generation DSCs

Optimized Digital Filtering for the MSP430

Problem Point Value Your score Topic 1 28 Discrete-Time Filter Analysis 2 24 Improving Signal Quality 3 24 Filter Bank Design 4 24 Potpourri Total 100

Implementation of Decimation Filter for Hearing Aid Application

Multirate Filtering, Resampling Filters, Polyphase Filters. or how to make efficient FIR filters

Brief Introduction to Signals & Systems. Phani Chavali

Music 270a: Fundamentals of Digital Audio and Discrete-Time Signals

Multirate DSP, part 3: ADC oversampling

EMBEDDED DOPPLER ULTRASOUND SIGNAL PROCESSING USING FIELD PROGRAMMABLE GATE ARRAYS

THIS work focus on a sector of the hardware to be used

Implementation of CIC filter for DUC/DDC

An Efficient and Flexible Structure for Decimation and Sample Rate Adaptation in Software Radio Receivers

SAMPLING AND RECONSTRUCTING SIGNALS

Channelization and Frequency Tuning using FPGA for UMTS Baseband Application

RTTY: an FSK decoder program for Linux. Jesús Arias (EB1DIX)

CMPT 318: Lecture 4 Fundamentals of Digital Audio, Discrete-Time Signals

EE445L Fall 2015 Quiz 2 Page 1 of 5

Continuous vs. Discrete signals. Sampling. Analog to Digital Conversion. CMPT 368: Lecture 4 Fundamentals of Digital Audio, Discrete-Time Signals

Using High Speed Differential Amplifiers to Drive Analog to Digital Converters

Select the Right Operational Amplifier for your Filtering Circuits

Discrete-Time Signal Processing (DTSP) v14

II Year (04 Semester) EE6403 Discrete Time Systems and Signal Processing

Digital Filters - A Basic Primer

Low Power Microphone Acquisition and Processing for Always-on Applications Based on Microcontrollers

Time Matters How Power Meters Measure Fast Signals

Rapid Design of FIR Filters in the SDR- 500 Software Defined Radio Evaluation System using the ASN Filter Designer

Electrical & Computer Engineering Technology

ASN Filter Designer Professional/Lite Getting Started Guide

Data Logger Subsystems Mark Buccini February 2012

An Overview of Linear Systems

Exploring Decimation Filters

GUJARAT TECHNOLOGICAL UNIVERSITY

Grundlagen Microcontroller Analog I/O. Günther Gridling Bettina Weiss

Summary Last Lecture

Lesson 7. Digital Signal Processors

AUTOMATIC IMPLEMENTATION OF FIR FILTERS ON FIELD PROGRAMMABLE GATE ARRAYS

ASC-50. OPERATION MANUAL September 2001

Signal Processing. Naureen Ghani. December 9, 2017

DSP-BASED FM STEREO GENERATOR FOR DIGITAL STUDIO -TO - TRANSMITTER LINK

Digital Channelized Wide Band Receiver Implemented with a Systolic Array of Multi-Rate FIR Filters

Final Exam Solutions June 14, 2006

Transcription:

You CAN Do Digital Filtering with an MCU! Kevin P King - Senior Staff Application Engineer Class ID: CC13B Renesas Electronics America Inc.

Kevin P King Senior Staff Application Engineer RX DSP Library Development Team Numerous Motor Control and Medical App notes 2010 Patent Award for Motor Control Education Electrical Engineering, University of Lowell (Edward B Van Dusen Award for Academic Achievement) Thirty years of Embedded Design Experience (x86, HC05, HC11, 8051, Philips XA, Atmel AVR, Hitachi, Mitsubishi, etc... Five years of Emulator design for MetaLink COP8, 68HC05, 68HC11, 8051 (multi-vendors), National CR16, Hitachi H8/500, etc... Multiple Quality Awards for Embedded Software & Hardware Development. Specialty is Embedded System Design - MCU firmware & hardware 2

Renesas Technology & Solution Portfolio 3

8/16-bit 32-bit Microcontroller and Microprocessor Line-up 2010 2012 1200 DMIPS, Superscalar Automotive & Industrial, 65nm 600µA/MHz, 1.5µA standby 500 DMIPS, Low Power Automotive & Industrial, 90nm 600µA/MHz, 1.5µA standby 165 DMIPS, FPU, DSC Industrial, 90nm 200µA/MHz, 1.6µA deep standby 25 DMIPS, Low Power Industrial & Automotive, 150nm 190µA/MHz, 0.3µA standby 10 DMIPS, Capacitive Touch Wide Industrial Format & LCDs Automotive, 130nm 350µA/MHz, 1µA standby 1200 DMIPS, Performance Automotive, 40nm 500µA/MHz, 35µA deep standby 165 DMIPS, FPU, DSC Industrial, 40nm 200µA/MHz, 0.3µA deep standby Embedded Security, ASSP Industrial, 90nm 1mA/MHz, 100µA standby 44 DMIPS, True Low Power Industrial & Automotive, 130nm 144µA/MHz, 0.2µA standby 4

Magnitude in db Enabling The Smart Society Challenge: More and More Sensors are required by our Smart devices and reliable filtering is required to separate the signal from the noise. 20 Inphase Filter Frequency Response Doctor, your patient is in distress 0-20 -40-60 -80-100 0.0 2.5 5.0 7.5 10.0 12.5 15.0 17.5 20.0 22.5 Frequency in khz Wireless Module Solution: This lecture will introduce you to some of the basic concepts of Digital Filtering, low-cost Filter tools and help you avoid some of the more common pitfalls when implementing filters on the Renesas processor of their choice. 5

Agenda System Block Diagram analog filter FIR vs IIR Sampling theorem Anti-aliasing Oversampling Triggering skew ADC interrupt overhead Decimation Fixed point and floating point principles Fixed point vs. floating point benchmark Summary 6

Example Filter Applications Instrument Board MCU Sensor Cabling 60 Hz Filter ADC Microphone Voice Recorder 4 khz LowPass MCU ADC 7

Filter Applications The Boxcar Filter Very common to perform a running average Sum n samples, scale the output (usually divide by n) Recalculate each time one new sample comes in Very simple FIR called boxcar All coefficients equal to 1 Example of 8 khz sampling rate, 8 tap FIR 8

Filter Types - FIR Typically the gain = 1 Does not always have Decimation Decimation can be on front or back end X [n] Z -1 X [n-1] Z -1 X [n-2] Z -1 Z -1 X [n-n] b 0 b 1 b 2 b 3 b M + + + + Y [n] nd Y [n] X[n] Input samples nd Decimation Factor Y [n] Decimated Output B[n] Coefficients (multiplies) Z -1 Delay elements (storage array) 9

Filter Types - IIR In addition to a forward path there is a feedback path Z -1 Z -1 b k 1 b k 2 X [n] b k 0 + + + + Y k [n] -a k 2 -a k 1 Z -1 Z -1 X[n] Input samples Y k [n] Output b k [n] Feed forward Coefficients (multiplies) -a k [n] Feedback Coefficients (multiplies) Z -1 Delay elements (storage array) 10

FIR versus IIR* FIR Phase-linear Simple instructions, single loop Suited for Multi-rate (decimation or interpolation allows some calculations to be omitted) Desirable Numeric properties (finite-precision can usually be implemented using lower number of bits) Possible to implement with coefficients less then 1.0 May require more memory and calculations than the IIR Some responses are just impractical to implement in FIR IIR Less memory and calculations for a given filtering characteristic Arithmetic errors compounded by feedback Harder to implement using fixed point Not as easy to do multi-rate (decimation and interpolation) Not phase-linear * http://www.dspguru.com/dsp/faqs/fir/basics and http://www.dspguru.com/dsp/faqs/iir 11

Designing the Filter Programs like ScopeFIR, ScopeIIR or WinFilter simplify the task of designing a filter 12

Identifying the Noise Programs like ScopeDSP allows inputting ADC data and running FFT 13

Identifying the Noise The FFT clearly identifies a 1k,2K,4K and 8K component 14

Sampling Theorem Nyquist-Shannon Sampling Theorem If a function x(t) contains no frequencies higher than B hertz, it is completely determined by giving its ordinates at a series of points spaced 1/(2B) seconds apart. 1 Simply stated: A signal can only be properly sampled if it contains no frequencies greater than one-half the sampling frequency Sometimes this is incorrectly stated: To not lose information you must sample at twice the highest frequency you are concerned with in a signal 15

Aliasing Problem Record voice data and store Limit voice bandwidth to 4 khz Sample at 8 khz Problem - Audio contains energy above 4 khz Anti-aliasing filter Adjust corner for 4 khz 16

Anti-aliasing filter 0 7K 7K 4 nf - + Output (db) -12 8 nf 0 1 2 4 6 8 10 Frequency (khz) - 12 db is only an attenuation of 1/4 17

dbv @ R1-P / db Anti-aliasing filter Actual Response of 2 nd Order 4 khz Filter 0-2 -2-4 -4 Output (db) -6-8 -6-8 -10-10 -12 1 2 3 4 5 6 7 8 1k 2k 3k 4k 5k 6k 7k 8k 9k 10k Frequency / Hertz Frequency (khz) 18

Frequency Response of 8 Tap 4 khz Filter -12dB line 20 db attenuation at 8 khz compared to 12 for analog filter 19

Improved 4 khz Filter By using 14 taps notice the improved attenuation at 6 khz 20

Oversampling and digital filtering Sample at 32 khz instead of 8 khz Only signals 16 khz or greater will alias Could use simple RC or no anti-aliasing filter 21

Oversampling and digital filtering Decimate results Store every 4 th sample Only calculate filter at 8 khz Sampling at 32 khz rate Signal to Sample S1 S2 S3 S4 S5 S6 S7 S8 S9 S10 S11 S12 Data Point1 = X1*S1+X2*S2..+X8*S8 Data Point2 = X1*S5+X2*S6..+X*S12 X1,X2 are filter coefficients 22

Multi-rate and Decimation Temp cannot change more than 1 degree/ hour Required sampling rate for 1 degree logging Noise with 1 second period, averages out in 4 readings Sampling rate for noise x x x x x x x x x x x x x x x x x x x x Temperature 23

ADC Considerations - Skew Problems: Interrupt Skew 32 khz requires sampling every 31.25 us Software start ADC possibility of sample skew Other interrupts in the system Long instructions required to complete Solutions: Possible - Make the start interrupt highest system priority Preferred - Use ADC system that can be triggered by timer Some devices may have to loop a timer to ADC trigger 24

ADC Considerations - Overhead Problem: Interrupt Overhead Storing ADC Data Assume ADC ISR takes 40 cycles context save + data save and pointer adjust + context restore Sampling at 32 khz BW to store data = 1.28 million cycles Solutions: Use a DMA controller 4-5 cycles or less per transfer CPU BW to store data <200 thousand cycles 25

ADC Considerations - Benchmark Example RX allows triggering ADC from GPT/MTU2/MTU3 (timer) DMAC transfers data to buffer MTU2 Channel 0 AD Trigger (160kHz) AD Complete AN7 ADC0 DMAC Channel Complete Intr (PING/PONG Rdy)* Memory PING/PONG Buffer Data to Filter Task HW assist to acquire/transfer data to buffer saves* ~3% at 200kHz rate / 5K samples ~13% at 400kHz rate / 5K samples ~26% at 500kHz rate / 5K samples * DevCon RX Performance lab 26

Calculating the Filter Design 4 khz, 8 tap, lowpass filter Sampling rate 32 khz Passband 4 khz Stopband 8 khz Stopband attenuation 12 db actual 20 db Passband ripple = 2 db - actual 0.76 Coefficients: -0.074778857796693535 0.020358522095065112 0.200149797853876850 0.366925297165379800 0.366925297165379800 0.200149797853876850 0.020358522095065112-0.074778857796693535 27

Implementing the Filter Could calculate the filter as: result=0; for (index = 0; index < taps; index++) { result += data[index] * coeff[index]; } The problem is the coefficients are all fractional values 28

Options to Calculate the Filter Use an MCU with an FPU RH850 32 Bit RISC High Performance RISC RX600 High Performance CISC SH2A like SH7269 High Performance RISC Use Floating Point Libraries Can be very slow Use Fixed Point Math A little more complicated than floating point 29

Floating Point Numbers 31 30 23 22 0 S Exponent 8 bits Significand part 23 bits (implied 1) -2 8 2 7 2 6 2 5 2 4 2 3 2 2 2 1 2 0 2-1 2-2 2-3 2-4 2-5 2-6 2-7 2-8 2-9 2-10 2-11 2-12 2-13 2-14 2-15 2-16 2-17 2-18 2-19 2-20 2-21 2-22 2-23 Radix point Floating point value = (-1) sb + (1+Fraction) x 2 (exponent bias) The exponent is expressed in biased form: e = E + bias Precision is function of fraction bits Floating supports a very large dynamic range Parameter Total bit Width Single Precision 32bits Double Precision 64bits Sign bit 1bit 1bit Exponent field 8bits 11bits Significand 23bits 52bits Precision 24bits 53bits Bias +127 +1023 Emax +127 +1023 Emin -126 +1024 30

Floating Point Hardware Single Precision Min Value = 5.88 x 10e-39, Max value = 3.4 x 10e+38 31 30 23 22 0 S Exponent 8 bits Significand part 23 bits (implied 1) -2 8 2 7 2 6 2 5 2 4 2 3 2 2 2 1 2 0 2-1 2-2 2-3 2-4 2-5 2-6 2-7 2-8 2-9 2-10 2-11 2-12 2-13 2-14 2-15 2-16 2-17 2-18 2-19 2-20 2-21 2-22 2-23 Radix point Double Precision Min Value = ~2.0 x 10e-308, Max value = ~2.0 x 10e+307 63 62 52 51 32 S Exponent 11 bits Significand part 20/52 bits (implied 1) -2 12 2 11 2 10 2 9 2 8 2 7 2 6 2 5 2 4 2 3 2 2 2 1 2 0 2-1 2-2 2-3 2-4 2-5 2-6 2-7 2-8 2-9 2-10 2-11 2-12 2-13 2-14 2-15 2-16 2-17 2-18 2-19 Radix point 31 0 Significand part 32/52 bits (implied 1) 2-20 2-21 2-22 2-23 2-24 2-25 2-26 2-27 2-28 2-29 2-30 2-31 2-32 2-33 2-34 2-35 2-36 2-37 2-38 2-39 2-40 2-41 2-42 2-43 2-44 2-45 2-46 2-47 2-48 2-49 2-50 2-51 31

Fixed Point Fraction value is shifted (multiplied) by a value to make an integer Example Represent 19. 78 using 16 bit fixed point 1 bit for the sign 19 requires 5 bits in binary 10 bits left to represent fraction Multiply the value by 1024 (shift left 10) Could allocate more bits for integer and less for fraction S 2 4 2 3 2 2 2 1 2 0 2-1 2-2 2-3 2-4 2-5 2-6 2-7 2-8 2-9 2-10 Example : Calculate a 4 tap box filter using fixed point Assume ADC samples are 0x100 (256), 0x200 (512), 0x120(288), 0x150(336) Coefficients are all 0.25 Solution Scale coefficients to be integers by multiplying by 4 (shift left 2) Multiply coefficients time ADC values 1*0x100 + 1 *0x200 + 1*0x120 + 1 *0x150 = 0x570 (1392) Restore proper scaling (shift right 2) = 0x15C (348) 32

Precision Requirements How many bits of coefficient are required? Do not want round-off error to cause an LSB error For 10 bit ADC need 10 bits coefficient Each tap could accumulate error Additional bits depends on number taps 8 taps add 3 LSB 16 taps add 4 LSB Etc 33

Pop Quiz: Assuming: 12 bit ADC, 7 tap FIR filter QUESTION: Is 16 bit Fixed Point enough resolution? 8 taps add 3 LSB, for a total of 15 bits Don t forget the sign bit! 16 bit total 34

Some Benchmark Results Using RL78/G14 (16 bit, 32 MHz MCU ) 8 Tap Filter 216 cycles (27 cycles per tap) 22 Tap Filer 594 cycles (27 cycles per tap) 8 taps at 8 khz = ~1.73 million cycles (approximately 5.4% BW @ 32 MHz) Each tap calculation requires Multiply Sum Two Pointer Increments 35

A MAC Really Helps Really need a MAC RX has RMPA (software MAC), RL78 has MACH Unit RL78 200 samples/64 Tap Filter 354,000 cycles RX 200 samples/64 Tap Filter 33,000 cycles RX average 2.6 cycles per tap* RL78 average 27.6 cycles per tap* *From DSP and DSCL library test results 36

Circular Buffer Bottleneck Most DSPs can handle circular buffers, MCUs typically do not Inefficient to put pointer check in loop Classical Implementation Circular Buffer Implementation X0 X4 X1 X2 X3 C0 C1 C2 C3 X1 X2 X3 X4 New Data C0 C1 C2 C3 37

Double Coefficient Loops Loop1 X0 X1 X2 X3 C0 C1 C2 C3 C0 C1 C2 C3 Loop2 X4 X1 X2 X3 C0 C1 C2 C3 C0 C1 C2 C3 Loop3 X4 X5 X2 X3 C0 C1 C2 C3 C0 C1 C2 C3 38

IIR Filters 39

IIR Z -1 Z -1 b k 1 b k 2 X [n] b k 0 + + + + Y k [n] -a k 2 -a k 1 Z -1 Z -1 X k [n] Input Samples, Y k [n] Output Samples, b k [n]/a k [n] Filter Coefficients, Z -1 Delay Line Since round-off error in output feeds back IIR requires greater precision 16 bit precision typically sufficient for FIR IIR requires 32 bit precision 1 Floating point simplifies math 40

Magnitude in db Why use IIR 20 Inphase Filter Frequency Response Design 5 khz bandpass Sampling rate 44 khz Center Frequency - 5 khz Passband - 1 khz Stopband attenuation 40 db Passband ripple = 2 db 0-20 -40-60 FIR filter requires 59 taps: IIR filter only requires 17 taps (13 non-zero) Forward coefficients 1,0,-4,0,6,0,-4,0,1 Feedback coefficients -0.9027953874, 5.5279871696, -16.3895992764 29.9415524963, -36.6655508659, 30.7172057969-17.2497536574. 5.9688037639-80 -100 0.0 2.5 5.0 7.5 10.0 12.5 15.0 17.5 20.0 22.5 Frequency in khz 41

Some Benchmark Results Calculating the previous filter Using RX 59 tap FIR 645 Cycles (6.45 us @ 100 MHz) 28% BW if run @ 44 khz RX 17 tap IIR 353 cycles (3.53 usec @ 100 MHz) 15% BW if run @ 44 khz Tools like the RX DSP Library and RL78 DSC Library help simplify the calculations / implementation. 42

Summary System Block Diagram analog filter FIR vs IIR Sampling theorem Anti-aliasing Oversampling Triggering skew ADC interrupt overhead Decimation Fixed point and floating point principles Fixed point vs. floating point benchmark 43

Questions? 44

Enabling The Smart Society in Review Challenge: More and More Sensors are required by our Smart devices and reliable filtering is required to separate the signal from the noise. This lecture will introduce them to some of the basic concepts of Digital Filtering, low-cost Filter tools and help you avoid some of the more common pitfalls when implementing on the Renesas processor of their choice. Do you agree that we accomplished the above statement? 45

Please Provide Your Feedback Please utilize the Guidebook application to leave feedback or Ask me for the paper feedback form for you to use 46

Appendix: Additional Information 47

Resources ScopeFir and ScopeDSP http://www.iowegian.com/ http://www.dspguru.com/ The Scientist and Engineer's Guide to Digital Signal Processing, copyright 1997-1998 by Steven W. Smith. For more information visit the book's website at: www.dspguide.com C. E. Shannon, "Communication in the presence of noise", Proc. Institute of Radio Engineers, vol. 37, no. 1, pp. 10 21, Jan. 1949. Reprint as classic paper in: Proc. IEEE, vol. 86, no. 2, (Feb. 1998) http://www.winfilter.20m.com Signal Processing tfor Communications (http://www.sp4comm.org/ ) 48

A visual look at Aliasing x(t) = cos(2π * 8400t) solid line Fs = 8000Hz 400 Hz (dots) not distinguishable from 8000Hz 49

Renesas Electronics America Inc.