Files
filter-view/README.md
Eric Ratliff d42126051c Rename project from Speed Graph to FilterView
- Updated README and build_and_run.md to reflect the new project name: FilterView
- Renamed window title in App.java from "Speed Graph" to "Filter View"
- Completed project renaming for consistency across documentation and code
2024-09-14 14:59:21 -05:00

61 lines
2.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Filter-View with Adjustable Raised Cosine Filter
This JavaFX application demonstrates the concept of a raised cosine filter applied to signal data, visualized in a dynamic graph. The user can control two key parameters:
## Key Features
### 1. Speed (Vertical Slider)
- Controlled via a vertical slider.
- This parameter determines the value of the signal (represented as speed) at each time step.
- The slider's range is from -100 to 100.
### 2. Beta (Roll-off Factor - Horizontal Slider)
- Controlled via a horizontal slider.
- Adjusts the roll-off factor (β) of the raised cosine filter.
- A higher beta value produces smoother transitions in the signal.
- The range is from 0 (sharp transitions) to 1 (smooth transitions).
## Graph Display
The graph displays two series:
- **Original Speed**: Represents the unfiltered signal, directly derived from the speed slider.
- **Filtered Speed (Raised Cosine)**: Represents the signal after it has been processed by a raised cosine filter, smoothing transitions based on the roll-off factor (beta).
### Dynamic Graph
- The graph updates in real-time, continuously adding new points.
- It provides a sliding window effect, always showing the latest data over a fixed time window.
### Pre-populated Graph
- The graph is filled with zeros at startup, ensuring smoother transitions immediately.
### Adjustable Raised Cosine Filter
- The filtered speed is processed using a raised cosine filter.
- The filter is adjustable via the beta slider to simulate smooth signal transitions.
### Signal Smoothing with FIR Filtering
- The raised cosine filter is implemented as a finite impulse response (FIR) filter.
- The coefficients (taps) of the filter are dynamically generated and applied to the input signal for smoothing.
### Live Beta Value Display
- The current beta value is displayed dynamically as the slider is adjusted.
- This helps the user visualize the filters effect in real-time.
## Technologies Used
- **JavaFX**: For the graphical user interface, including sliders and real-time graph.
- **JFreeChart**: For rendering the dynamic line chart visualizing signal data.
## Purpose
This application simulates how a raised cosine filter can smooth transitions in a signal, with user-controllable parameters. It's particularly relevant for digital communication systems, where pulse shaping is critical for minimizing bandwidth and reducing inter-symbol interference (ISI).
---
## Build and Run Instructions
For detailed instructions on how to build and run this project on **Arch Linux**, **Ubuntu**, and **Windows**, refer to the [build_and_run.md](./build_and_run.md) file.
---
### What's Changed
- Added a reference to the `build_and_run.md` file for easy access.
- Cleaned up descriptions to improve readability and consistency.