A Recursive Filtering Workbench in Java Orlando FL

Use this interactive workbench to gain a better understanding of the behavior of digital recursive filters. Then learn how to write the code to do recursive filtering as well as to evaluate recursive filters using a workbench-style program.

Local Companies

Longview Solutions Inc
407-246-1030
135 N Magnolia Ave
Orlando, FL
Perceptive Technologies
(321) 206-5999
37 N. Orange Ave. Suite 810
Orlando, FL
Aspire Solution
407-894-5560
2909 Fairgreen St
Orlando, FL
Cam Commerce Solutions
407-774-8098
4449 Lipton CT
Orlando, FL
Riptide Software
407-384-8818
3452 Lake Lynda Dr
Orlando, FL
Tapestry Solutions
407-482-0270
3361 Rouse Rd
Orlando, FL
Acusoft
407-658-9888
11869 High Tech Ave
Orlando, FL
Progressive System Solutions Inc
407-523-7676
4019 Clarcona Ocoee RD
Orlando, FL
Group One Software
407-248-0998
7380 W Sand Lake Rd
Orlando, FL
Miller Software Systems Inc
407-354-5433
8504 Cedar Cove CT
Orlando, FL

provided by: 
Originally published at Internet.com


Java Programming Notes # 1510 * Preface * Preview * General Background Information * Practical Examples * Run the Program * Summary * What's Next? * References * Complete Program Listing -----------------------------------

Preface

This is the first installment of a multi-part lesson on digital recursive filtering.

A Recursive Filtering Workbench

The complete collection of installments presents and explains the code for an interactive Recursive Filtering Workbench (See Figure 1) that can be used to design, experiment with, and evaluate the behavior of digital recursive filters.

(The digital Recursive Filtering Workbench will be referred to hereafter simply as the workbench.)

By the end of the last installment, you should have learned how to write a Java program to create such a workbench. Hopefully, you will also have gained some understanding of what recursive filters are, how they behave, and how they fit into the larger overall technology of Digital Signal Processing (DSP).

Viewing tip

You may find it useful to open another copy of this lesson in a separate browser window. That will make it easier for you to scroll back and forth among the different listings and figures while you are reading about them.

Supplementary material

I recommend that you also study the other lessons in my extensive collection of online Java tutorials. You will find those lessons published at Gamelan.com. However, as of the date of this writing, Gamelan doesn't maintain a consolidated index of my Java tutorial lessons, and sometimes they are difficult to locate there. You will find a consolidated index at www.DickBaldwin.com.

I also recommend that you pay particular attention to the lessons listed in the References section of this document.

Preview

Figure 1 shows a full screen shot of the workbench in operation.


Figure 1

In order to accommodate this narrow publication format, the screen shot in Figure 1 was reduced to the point that the individual images are no longer legible. The purpose of providing the images in Figure 1 was to provide an overview of the workbench. That overview will be used in conjunctions with references in the paragraphs that follow. (Full-size versions of the individual images will be presented later.)

Complex poles and zeros

The workbench makes it possible for the user to design a recursive filter by specifying the locations of sixteen poles and sixteen zeros in the complex z-plane and then to evaluate the behavior of the recurrsive filter for that set of poles and zeros. The user can relocate the poles and zeros and re-evaluate the behavior of the corresponding recursive filter as many times as may be beneficial without a requirement to restart the program.

An image of the z-plane

The GUI in the top center portion of the screen in Figure 1 is an image of the complex z-plane showing the unit circle along with the locations of all the poles and zeros.

(Because of the reduction in the size of the image, the poles and zeros are only barely visible in Figure 1. A full-size version is shown in Figure 2.)

The user can interactively change the location of any pair of complex poles or zeros by selecting a specific pair of poles or zeros and clicking the new location with the mouse in the z-plane GUI. This provides a quick and easy way to position the poles and zeros in the z-plane.

Numeric text input

The GUI that is partially showing in the upper right of Figure 1 contains four text fields and a radio button for each pair of complex poles and each pair of complex zeros. (A full-size version of this GUI is shown in Figure 5.)

This GUI has several purposes. For example, the user can specify the locations of pairs of poles or zeros very accurately by entering the real and imaginary coordinate values corresponding to the locations into the text fields in this GUI. The user can also view the length and the angle (relative to the real axis) of an imaginary vector that connects each pole and each zero to the origin.

This GUI also provides some other features that are used to control the behavior of the workbench program. These features will be explained later.

The two GUIs are connected

When this GUI is used to relocate a pair of poles or zeros, the graphical image of the z-plane in Figure 2 is automatically updated to reflect the new location. Similarly, when the mouse is used with the graphical image of the z-plane to relocate a pair of poles or zeros, the numeric information in the GUI in Figure 5 is automatically updated to reflect the new location.

Two ways to specify the location of poles and zeros

Thus, these two GUIs provide two different ways that the user can specify the locations of poles and zeros. Clicking the location with the mouse is very quick and easy but not particularly accurate. Entering the numeric coordinate values into the text fields takes a little more effort, but is very accurate.

The two approaches can be used in combination to create a rough design with the mouse and then to polish the design by entering accurate pole and zero locations into the text fields.

The behavior of the recursive filter

Once the locations of the poles and zeros that define a recursive filter have been established using either or both of the two GUIs discussed above, the leftmost GUI in Figure 1 can be used to display the following information about the recursive filter. (See Figure 6 for a full-size version of this GUI.) * The impulse response in the time domain. * The amplitude response in the frequency domain. * The phase response in the frequency domain.

Two computational approaches

Two

Author: Richard G. Baldwin

Read article at Internet.com site

Featured Local Company

Longview Solutions Inc

407-246-1030
135 N Magnolia Ave
Orlando, FL

Related Local Events
PERFORMANCE RACING INDUSTRY SHOW 2009
Dates: 12/10/2009 - 12/12/2009
Location: Orange County Convention Center
Orlando, FL
View Details

American Rental Association Annual Convention and Rental Trade Show
Dates: 2/8/2010 - 2/11/2010
Location: Orange County Convention Center
Orlando, FL
View Details

Pittcon - Pittsburgh Conference and Exposition on Analytical Chemistry and Applied Spectroscopy
Dates: 3/1/2010 - 3/1/2010
Location: Orange County Convention Center
Orlando, FL
View Details

OOPSLA '09: ACM SIGPLAN Object Oriented Programming Systems and Applications Conference
Dates: 10/19/2009 - 10/23/2009
Location: Disney Coronado Springs Resort
Lake Buena Vista, FL
View Details

2009 3rd International Symposium on Empirical Software Engineering and Measurement (ESEM)
Dates: 10/15/2009 - 10/16/2009
Location: Hilton Walt Disney World Resort
Lake Buena Vista, FL
View Details