A Recursive Filtering Workbench in Java Tampa 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

Brilliant Hotel Software
813-864-6511
1101 Channelside DR
Tampa, FL
Acuity Solutions
813-288-9766
5445 W Cypress St
Tampa, FL
Cognitive Solution Inc
813-286-4000
4830 One Urban Ctr
Tampa, FL
IT 2 Me Software
813-885-7337
4710 Eisenhower Blvd
Tampa, FL
Silanta Solutions Corporation
813-881-1425
7028 W Waters Ave
Tampa, FL
Process Focus Software Inc
813-902-1301
4923 Bayshore Blvd
Tampa, FL
Ademero, Inc.
(863) 937-0272
4644 W Gandy Blvd., Suite 4450
Tampa, FL
Office Management Solutions Inc
813-963-5582
5802 Taywood DR
Tampa, FL
Cdt Business Solutions Inc
813-630-0046
9950 Princess Palm Ave
Tampa, FL
Tampateks
813-417-5349
15100 Hutchinson Rd Ste 107
Tampa, 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

Brilliant Hotel Software

813-864-6511
1101 Channelside DR
Tampa, FL

Related Local Event
Taste of Clearwater
Dates: 9/17/2009 - 9/17/2009
Location: Harborview Center
Clearwater, FL
View Details