
- Added a reference to build_and_run.md in the README for easier access to build and run instructions. - Cleaned up descriptions in README for better readability and consistency.
61 lines
2.7 KiB
Markdown
61 lines
2.7 KiB
Markdown
# Speed Graph 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 filter’s 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.
|