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.
Metadata
Release files for dsp-filter-design 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| dsp_filter_design-0.1.0.tar.gz | 108.7 kB | Without provenance | Details for dsp_filter_design-0.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| dsp_filter_design-0.1.0-py3-none-any.whl | Python 3 | none | any | Details for dsp_filter_design-0.1.0-py3-none-any.whl |
Total release size: 146.7 kB
Release files / dsp_filter_design-0.1.0.tar.gz
| Download URL | dsp_filter_design-0.1.0.tar.gz |
|---|---|
| Size | 108.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
76a72ca976d160922d04b58ebb6727086e09bce9b8397975afed62494cf0acd6
|
|
BLAKE2b-256 checksum How to use checksums |
932392ae8b4ac7b187bbb0a4a5822203911f980f37005d452ce0fe758e3fc22f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is 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}
|
Release files / dsp_filter_design-0.1.0-py3-none-any.whl
| Download URL | dsp_filter_design-0.1.0-py3-none-any.whl |
|---|---|
| Size | 38.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e921a4887ccf2d1c82543e3883d7d06ec5a2cc7040ee7be2c328a87908627944
|
|
BLAKE2b-256 checksum How to use checksums |
39ae84eb1bb5b16f55cf294729ff45c14af4eb49f487a54519c1c0b2b2e7237e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is 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}
|
Security for dsp-filter-design 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.