The Parks-McClellan Algorithm

1 / 26

The Parks-McClellan Algorithm - PowerPoint PPT Presentation

The Parks-McClellan Algorithm. ECE 345 Final Presentation Group 14 Justin Haldar Arun Ramani April 30 th , 2004. The Parks-McClellan algorithm.

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.

PowerPoint Slideshow about 'The Parks-McClellan Algorithm' - dasan

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

The Parks-McClellan Algorithm

ECE 345 Final Presentation

Group 14

Justin Haldar

Arun Ramani

April 30th, 2004

Justin Haldar and Arun Ramani

The Parks-McClellan algorithm
• The Parks-McClellan algorithm is used to design linear-phase Finite Impulse Response (FIR) digital filters that are optimal with respect to the Chebyshev Norm (minimize the maximum error).

Justin Haldar and Arun Ramani

Motivation
• Low-pass filters are useful for many different applications in Electrical Engineering
• It is useful to be able to quickly create a customized low-pass filter that can be used in a laboratory setting

Justin Haldar and Arun Ramani

The Project
• This project allows a user to design an optimal finite impulse response (FIR) lowpass filter without having to have detailed signal processing knowledge. The user will be asked to input the passband and stopband frequencies, the desired filter length, and a desired weighting factor between the stopband and passband ripples. The Digital Signal Processor (DSP) board will then calculate the optimal filter satisfying these specifications, and will begin to filter its input based according to the optimal design.

Justin Haldar and Arun Ramani

The Project (continued)
• In addition, we designed an analog low-pass filter to be used as a pre-filter on the ADC on the DSP.

Justin Haldar and Arun Ramani

User Inputs
• Designed for band edges between 0 and 4 KHz
• Designed for odd-length filters of order 5 to 127
• User should specify the desired Passband/Stopband ripple ratio

Justin Haldar and Arun Ramani

Filter Characteristics

Justin Haldar and Arun Ramani

DSP Specifications
• Ripple ratio of designed digital filter within 5% of desired ripple ratio
• Designed digital filter coefficients to be within 50% of the same digital filter designed with a MATLAB library function

Justin Haldar and Arun Ramani

Software Block Diagram

Justin Haldar and Arun Ramani

Analog Low-pass Filter

Justin Haldar and Arun Ramani

Analog Low-pass Filter Specifications
• Passband of 4KHz
• Maximum of 1 dB ripple
• Stopband of 7KHz
• Maximum of –20dB
• 4th-order Chebyshev Design

Justin Haldar and Arun Ramani

Accomplishments
• Designed MATLAB implementation of the Parks-McClellan Algorithm
• Designed DSP implementation of the Parks-McClellan Algorithm
• Designed Analog Low-pass filter
• Integrated DSP and Analog filter together

Justin Haldar and Arun Ramani

Project Build
• First designed MATLAB implementation
• Iterated through various combinations of passband, stopband, ripple ratio, and filter length for more than 15,000 total tests
• Our MATLAB code matched MATLAB’s library function except when MATLAB designed a filter incorrectly
• We did not always converge in the same places MATLAB does because MATLAB uses a modified version of the algorithm
• We also began to notice numerical effects in the interpolation process

Justin Haldar and Arun Ramani

Project Build (II)
• Ported our MATLAB code to the DSP
• DSP has 16 bit precision, while MATLAB has 32 bit precision, causing more extreme numerical effects
• DSP also has helpful error messages when numerical effects cause the algorithm to fail to converge
• Filter length suggestions
• Transition band length suggestions

Justin Haldar and Arun Ramani

DSP Testing
• 140 different tests on the coefficients generated by the DSP
• 120 standard cases (moderate transition band lengths and moderate ripple ratios)
• 20 extreme cases (very high or very low ripple ratios or very narrow transition bands)

Justin Haldar and Arun Ramani

DSP Testing (II)
• In the standard cases where the algorithm converged correctly, there was a maximum of 3.79% ripple error and a maximum of 0.0027% error in the coefficients versus the MATLAB coefficients

Justin Haldar and Arun Ramani

DSP Testing (III)
• In the 20 extreme cases, 17 passed correctly. Of these, the maximum ripple ratio error was 2.32% and the maximum coefficient error was 0.6436%

Justin Haldar and Arun Ramani

DSP Testing (IV)
• The 3 cases that didn’t pass
• 0Hz passband and 1Hz stopband was designed as an all-stop filter because of numerical precision effects in interpolation
• The other 2 failures occurred in the extreme ripple ratio cases (106 and 10-6 passband/stopband ripple). This is because the problem is hard to represent numerically when one of the ripples is so small

Justin Haldar and Arun Ramani

Analog Filter Testing
• Before building the circuit, we simulated designs in ADS. The design we ended up with had an 85% yield given component variation

Justin Haldar and Arun Ramani

Analog Filter Testing

Justin Haldar and Arun Ramani

Analog Filter Testing
• Conducted 15 tests of built filter
• Did a frequency sweep as the input of the filter using several different input amplitudes

Justin Haldar and Arun Ramani

Analog Filter Testing (II)

Justin Haldar and Arun Ramani

Overall System Testing
• 16 Tests on output of overall system
• Most of the cases we tried gave good results in terms of what the output signal looked like (it filtered what it was supposed to filter)
• Ripple ratio error ranged from 59.64% to 3.95%
• Issues arise from oscilloscope noise, DSP hardware filter, effects of ripple in Analog Filter
• Noise effects skew ripple ratio greatly because the ripple is never larger than 1, and can be much smaller (i.e. 10-7), and the noise was on the order of 0.06 Volts. Thus, small perturbations in each ripple can cause large perturbations in the error

Justin Haldar and Arun Ramani

Performance Results
• Overall system works as we intended it to
• DSP has a built-in hardware filter that only passes frequencies of 500 Hz to 3.25 KHz with equiripple characteristics, while the DSP can design filters with frequencies between 0 Hz and 4 KHz
• The DAC on the DSP inserts a 900 mV DC offset to the output signal

Justin Haldar and Arun Ramani

Recommendations
• Use a different DSP
• Higher numerical precision
• No hardware filter
• No DC offset in output
• Use less-noisy wires and oscilloscopes when extreme precision is required

Justin Haldar and Arun Ramani

The End is Near