An interactive Digital Signal Processing explorer for filter design and analysis.
Project description
Digital Signal Processing Explorer
An interactive tool for exploring Analog and Digital filters, poles, zeros, and stability.
For Students
Click here to launch the app. No account or setup required.
For Developers
If you want to host your own copy or modify the code:
Key Features
🎛️ Interactive Design
- Drag-and-Drop: Move Poles and Zeros on the complex plane and watch the Bode and Impulse plots update instantly.
- Real-Time Feedback: Immediate visualization of Magnitude, Phase, and Time-Domain response.
📈 Advanced Analysis
- Stability Visualization: Toggle between Causal (standard) and Anti-Causal (stable reconstruction from unstable poles) modes.
- Two-Sided Impulse Response:
- Digital: Moving poles outside $|z|=1$ generates left-sided sequences ($n < 0$).
- Analog: Moving poles to the Right Half Plane generates negative-time decay ($t < 0$).
- Bode Plot: Logarithmic frequency application for Analog, Linear for Digital (normalized frequency).
🎨 Professional Branding
- LSC Branding: Features a professional scientific color scheme (LSC Blue) and branding.
- Publication Ready: Clean, compact layout suitable for demonstrations and teaching.
Local Development
This project uses uv for fast, reliable package management.
Prerequisites
- Python 3.9+
uvinstalled (curl -LsSf https://astral.sh/uv/install.sh | sh)
Running the App
-
Clone the repository:
git clone https://github.com/JWKennington/app-dsp-filter-design.git cd app-dsp-filter-design
-
Sync dependencies:
uv sync -
Run the application:
uv run dsp-fd
Open http://127.0.0.1:8050 in your browser.
Deployment
Docker
A Dockerfile is included for containerized deployment.
docker build -t dsp-fd .
docker run -p 8050:8050 dsp-fd
Render
This repository is configured for immediate deployment on Render.
- Click the Deploy to Render button above.
- Connect your GitHub account.
- Render will automatically build using the
Dockerfileand deploy the service.
License
MIT License. See LICENSE for details.
© 2026 James Kennington.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file dsp_filter_design-0.1.0.tar.gz.
File metadata
- Download URL: dsp_filter_design-0.1.0.tar.gz
- Upload date:
- Size: 108.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.28 {"installer":{"name":"uv","version":"0.9.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
76a72ca976d160922d04b58ebb6727086e09bce9b8397975afed62494cf0acd6
|
|
| MD5 |
d7d6b684f9d46434f774f3d6c71f05d3
|
|
| BLAKE2b-256 |
932392ae8b4ac7b187bbb0a4a5822203911f980f37005d452ce0fe758e3fc22f
|
File details
Details for the file dsp_filter_design-0.1.0-py3-none-any.whl.
File metadata
- Download URL: dsp_filter_design-0.1.0-py3-none-any.whl
- Upload date:
- Size: 38.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.28 {"installer":{"name":"uv","version":"0.9.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e921a4887ccf2d1c82543e3883d7d06ec5a2cc7040ee7be2c328a87908627944
|
|
| MD5 |
d8b002f7deaff4396ea543394d5ccd1d
|
|
| BLAKE2b-256 |
39ae84eb1bb5b16f55cf294729ff45c14af4eb49f487a54519c1c0b2b2e7237e
|