# Signal Cleanup

> Clean up complex IQ signals using native GNU Radio blocks (filter.dc_blocker_cc, filter.fir_filter_ccc, analog.agc2_cc) and Gram-Schmidt I/Q imbalance compensation.

- Skill: `nitrojacob/signal-cleanup` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add nitrojacob/signal-cleanup`
- Raw SKILL.md: https://api.skillmd.com/api/skills/nitrojacob/signal-cleanup/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: nitrojacob (https://skillmd.com/u/nitrojacob)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/nitrojacob/signal-cleanup

---


# Signal Cleanup Skill 🧼

Use this skill when a signal has DC bias offset, amplitude/phase I/Q imbalance, out-of-band noise, or unnormalized gain.

## Instructions

1. **Execute Signal Cleanup Tool**:
   ```bash
   PYTHONPATH=/usr/lib/python3/dist-packages:./ .agents/skills/signal-cleanup/scripts/cleanup_signal.py --input <input_sigmf_file> --output <output_cleaned_file> --cutoff <bandwidth_cutoff_hz>
   ```

2. **DSP Pipeline Applied (Native GNU Radio Blocks)**:
   - Gram-Schmidt Orthogonalization: Corrects I/Q amplitude imbalance ($\alpha$) and phase skew ($\phi$).
   - `filter.dc_blocker_cc`: Suppresses DC bias spikes.
   - `filter.fir_filter_ccc`: Band-limits signal to occupied bandwidth, rejecting out-of-band noise.
   - `analog.agc2_cc`: Stabilizes average signal energy to unit power ($1.0$).

3. **Verify SNR Gain**:
   Check the output report to confirm SNR gain and stabilization before passing to modulation recognition.

