EECS 373 Design of Microprocessor-Based Systems Farhan Hormasji Matthew Diffenderfer
-
Upload
emerald-bryant -
Category
Documents
-
view
25 -
download
0
description
Transcript of EECS 373 Design of Microprocessor-Based Systems Farhan Hormasji Matthew Diffenderfer
1
EECS 373Design of Microprocessor-Based Systems
Farhan HormasjiMatthew DiffenderferUniversity of Michigan
Efficient AlgorithmsNovember 27, 2012
2
Outline
• Overview
• DFT algorithms– FFT– Cooley–Tukey FFT– Bluestein's FFT– Goertzel
• Edge Detection Algorithms– Canny– Sobel– Prewitt– Roberts Cross
• Questions
Algorithms
What to look for:• Usefulness• Methodology• Implementation
Tradeoffs:• Cost• Code Size• Runtime• Availability
3
4
Outline
• Overview
• DFT algorithms– FFT– Cooley–Tukey FFT– Bluestein's FFT– Goertzel
• Edge Detection Algorithms– Canny– Sobel– Prewitt– Roberts Cross
• Questions
Discrete Fourier Transform (DFT): Overview
• What?– Converts a sampled function from time domain to frequency domain
• Use?– DFTs reveal periodicities in input data as well as the relative strengths of any periodic components
5
Discrete Fourier Transform (DFT): Mathematical Interpretation
6
Discrete Fourier Transform (DFT): Applications
• Spectral Analysis– Most signals are sinusoidal– DFT tells you frequency, phase, and amplitude components
• Frequency Response of Systems– All input and output signals can be represented as cosine waves
– By observing change in magnitude and phase, any linear system can be described
• Convolution in the Frequency Domain– Convolution in time domain is multiplication in frequency domain
– Speed of computation greatly reduced
7
Fast Fourier Transform (FFT): Overview
• What?– An efficient algorithm to compute the DFT and its inverse
• Why use it?– O(Nlog2N)
• Tradeoff– Input data must be a power of 2– If it’s not, data is either truncated or padded with zeros
• Many different types
8
FFT: Cooley-Tukey algorithm
• Most common FFT algorithm– Divide and conquer algorithm
• Methodology– Breaks up DFT of N samples into N=N1N2
• Benefit– Can be combined with any other DFT algorithm
– What Matlab fft function does for optimization
9
FFT: Cooley-Tukey algorithmMethodology
10
Fast Fourier Transform (FFT): Bluestein
• Also called chirp z-transform algorithm
• Methodology– Expresses DFT as a convolution
• Benefit– Computes DFT of arbitrary sizes– Can be used to compute more general transforms
• Tradeoff– Only O(Nlog2N) complexity for prime-sized DFTs
11
Fast Fourier Transform (FFT): BluesteinMethodology
12
Goertzel Algorithm
13
Goertzel Algorithm
• Tradeoff– O(NM)– N is number of DFT terms, M is the set of DFT terms to calculate
• Benefit– Simple structure of algorithm makes it well suited to small processors
– More efficient than FFT for small number of frequencies ( if M < log2N)
• Applications– Used to recognize DTMF tones produced by buttons on telephone keypad
– Call progress (dial tone, busy)14
Runtime Performance Comparison
15
Runtime Performance Comparison:Matlab
16
17
Outline
• Overview
• DFT algorithms– FFT– Cooley–Tukey FFT– Bluestein's FFT– Goertzel
• Edge Detection Algorithms– Canny– Sobel– Prewitt– Roberts Cross
• Questions
Edge DetectionOverview
• Use– Tool used in image processing– Goal is to identify points in a digital image where image brightness changes sharply or has discontinuities
– Reduce amount of data in image so that further image processing may occur
– Reduce images to shapes
• Applications– Most image processing
18
Edge Detection: Canny
• Use– Optimal edge detection
• the algorithm should mark as many real edges in the image as possible
• edges marked should be as close as possible to the edge in the real image
• a given edge in the image should only be marked once
• image noise should not create false edges
• Benefits– Adaptable to most images– Generally has short runtime, well-suited for real time implementations in FPGAs
• Constraints– Size of Gaussian filter– Calibration of thresholds
19
Edge Detection: CannyMethodology
• Convolves image with Gaussian filter– To eliminate noise
• Uses other types of edge detection to determine intensity gradient vertically, horizontally, and diagonally– 4 filters
• Goes through matrix to determine if gradient magnitude is a local maximum based on gradient direction– Determine high and low threshold
• Go through image and mark pixel as edge or non-edge based on thresholds
20
Edge Detection: Sobel
• Use– Discrete differentiation operator– Computes the gradient of the image intensity
• Benefits– Few number of computations– Can be implemented simply in both hardware and software
• Tradeoffs– Poor gradient approximation for high frequency variations in image
21
Edge Detection: SobelMethodology
• 2 kernels convolved with original image to calculate gradient in vertical and horizontal direction
– Where A is the original image
• Compare gradient value to threshold similar to Canny algorithm
22
Edge Detection: Prewitt
• Same as Sobel algorithm but with two key differences
• The two kernels used have slightly different values
• Magnitude and Direction of gradient in Sobel:
• Magnitude and Direction of gradient in Prewitt:
23
Edge Detection: Roberts Cross
• Use– One of the first edge detectors– Intensity of edges should correspond as close as possible to what a human would perceive
• Benefits– Only finds gradient in diagonal direction due to simple kernels, so algorithm has high simplicity
• Tradeoffs– Speed of modern computers make this simplicity negligable
– Edge detection suffers from sensitivity to noise
24
Edge Detection: Roberts CrossMethodology
• 2 kernels convolved with original image to calculate gradient in diagonal direction
• Magnitude and direction of gradient found similar to Sobal
• Compare gradient value to threshold similar to Canny algorithm
25
Block M
26
Canny
27
Sobel
28
Prewitt
29
Roberts Cross
30
Edge Pixels Detected: Block M
31
Prabal
32
Canny
33
Sobel
34
Prewitt
35
Roberts Cross
36
Edge Pixels Detected: Prabal
37
Blur
38
Canny
39
Sobel
40
Prewitt
41
Roberts Cross
42
Edge Pixels Detected: Blur
43
Gray
44
Canny
45
Sobel
46
Prewitt
47
Roberts Cross
48
Edge Pixels Detected: Grayscale
49
Final Comparison
50
51
Questions?
Comments?
Discussion?
52
References
• Everything– Wikipedia– Mathworks
• DFT/FFT– The Scientist and Engineer's Guide to Digital Signal Processing By
Steven W. Smith, Ph.D.– http://www.robots.ox.ac.uk/~sjrob/Teaching/SP/l7.pdf– http://homepages.inf.ed.ac.uk/rbf/CVonline/LOCAL_COPIES/OWENS/
LECT4/node3.html
• Goertzel– http://www.numerix-dsp.com/goertzel.html
• Edge Detection– http://dasl.mem.drexel.edu/alumni/bGreen/www.pages.drexel.edu/
_weg22/can_tut.html– http://www.cse.unr.edu/~bebis/CS791E/Notes/EdgeDetection.pdf
• Edge Detection Images– Prabal: web.eecs.umich.edu/~prabal/– Block M: www.umich.edu– Grayscale: www.colorsimulator.com– Blur: www.dreamstime.com (Royalty Free Stock Photos)