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

Truelogic Software Solutions
(305) 407-9432
8345 NW 66th St.
Miami, FL
IBLESOFT INC
305.908.7957 EXT 100
7801 NW 37th Street
Doral, FL
Acl Computers Inc
(305) 826-5000
1711 W 38th Pl
Hialeah, FL
Game Rak Inc
(786) 517-1882
1790 W 49th St
Hialeah, FL
Software Development Solutions
305-274-2147
9745 SW 72nd St
Miami, FL
Home Care Software Solutions Inc
786-433-4700
9500 S Dadeland Blvd
Miami, FL
Alta Star Software Inc
305-279-8898
7700 N Kendall DR
Miami, FL
BlueClaw Group LLC
(305) 433-2006
1508 bay rd
miami beach, FL
TrueSoft
408-647-1434
911 Meridian Ave, Suite 201
Miami Beach, FL
Creative Technical Systems
(305) 512-2872
8181 NW 154th St
Hialeah, 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

Truelogic Software Solutions

3054079432
8345 NW 66th St.
Miami, FL
www.truelogicsoftware.com

Related Local Events
SCORE Business Counseling
Dates: 12/9/2009 - 12/9/2009
Location: The Chamber Office
Coral Springs, FL
View Details

Wake Up Coral Springs Breakfast!!
Dates: 12/15/2009 - 12/15/2009
Location: Marriott Heron Bay
Coral Springs, FL
View Details

Wednesday Evening Referral Group
Dates: 12/16/2009 - 12/16/2009
Location: WineStyles
Coral Springs, FL
View Details

Afternoon Chamber Referral Group Meeting
Dates: 1/21/2010 - 1/21/2010
Location: The Coral Springs Chamber Office
Coral Springs, FL
View Details

Wednesday Evening Referral Group
Dates: 2/3/2010 - 2/5/2010
Location: WineStyles
Coral Springs, FL
View Details