Information about this Applet


Abstract

Function:

Features:

Specifications:

Appearance:



Description on Each Control


As the diagram shown above, the interface consists of 4 divisions:

Let's see the detail information on each of the panels.

Screen Panel: this panel serves as the graphical display. Whenever the user asserts an action, the screen will present the result in a two dimension plot. The x-axis is in radians, and the y-axis is the amplitude of the function. When the applet starts, the screen displays a straight line that represents a constant of zero. The top portion of the screen is labeled with the maximum and minimum values of the function. The bottom portion of the screen is labeled with the x-axis in radians which ranges from 0 to 2p. Each plot is centered on the screen.

Function Panel: this panel consists of the fields that characterize a trigonometric function such as a sine function or a cosine function. The first field is the sign field that determines the polarity. The second field is the amplitude field that determines the amplitude. The third field is the frequency field that determines the frequency of the function. The fourth field is the waveform field that determines the type of function. The fifth field of the panel is the power field that determine the coefficient of power to that function. The next row has five buttons. Each button serves as an action to the function appearing on the screen. The "+" button does addition, The "-" button does subtraction, the "*" button does multiplication, the "/" button does division, and the button "CLEAR" resets the function in the buffer to a constant of zero. The logic flow of this is illustrated as the following diagram.

[ single memory machine ]

Filter Panel: this panel consists of the fields that specifies the characteristics of a pulse filter. The first field is the amplitude field that determines the amplitude of the filter. The second field is the bandwidth field that determines the width of the filter. The third field is the frequency field that determines the position of a filter in the frequency domain. The last field is the type field that determines the types of filter.

Note: when the LowPass is selected in the type field in this panel, the frequency field is disabled. The frequency field is enabled only when the BandPass is selected in the type field. The reason is that the lowpass filter always centers at zero hertz in the frequency, and the bandpass filter always centers at higher frequency.

Button Panel: this panel consists of buttons that are useful in practising AM communication system and Fourier Series. Starting from the first row, the first three buttons are labeled M, C, and X; they represent the message, the carrier, and the transmitted signal in the AM communication system respectively. The next three buttons are "Save as M", "Save as C" and "Save as X". They are used to store the message, the carrier, and the transmitted signal for later use. I will explain how to use them later. The next set of buttons are "Filter", "Encode", and "Decode". They are used to filter, send, and recover the signal respectively. The next set of buttons are Listen and Stop Listen. They are used to hear and stop hearing the sound of the function. Once the Listen button is pressed the sound of the function on the screen will be played constantly until Stop Listen is pressed. The last button is "Quit". When the button is pressed, the web browser will go to our EE department home page.

Performance


Java is usually an inefficient language since its speed is slow compared to your local applications. In my opinion, it is not fast enough for serious multimedia applications such as video conferencing. Since the Java interpreter handles graphics slowly, the performance can be improved with better hardware. For example, the applet can run near instantly on a Pentium 120. However, the applet running on a Sparc 20 would take double the time to plot a waveform as if it was on the Pentium. The video graphic card is a major key on affecting the performance as well as the computational power of the microprocessor.

Possible Bugs


These are the bugs found on the applet:


Classes


Packages


Source Codes

This is the list of files containing the source codes for this applet:


Algorithm