Files
filter-view/README.md
Eric Ratliff 94b754c8b5 Update README with FilterView screenshot
- Added 'filterview-screenshot.png' to showcase the software in the README.
2024-09-14 18:11:43 -05:00

64 lines
2.8 KiB
Markdown
Raw Permalink 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.

# FilterView 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
![FilterView Screenshot](filterview-screenshot.png)
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.