How grover-seerat/sih-ps147 works
NTRO SIGINT is a browser-based RF capture analysis suite backed by a FastAPI signal-processing engine. The principal workflow is capture upload, format-aware reading, signal detection, DSP measurement and ML/DSP modulation classification, followed by demodulation and presentation of analysis results. The UI also offers spectral, parameter, bitstream and reporting views; FEC decoding and preamble correlation are explicitly unavailable. Edges reflect cited source references or README documentation; some UI data handoffs and unsampled subsystem details are not shown.
Main entry points: App.jsx Application shell · analyzer.py Analysis orchestrator · main.py HTTP API · universal_reader.py Universal reader
Components 23
Analysis interface
- Application shell
frontend/src/App.jsx - Capture ingestion
frontend/src/components/FileIngestion/FileIngestionModule.jsx - Spectral view
frontend/src/components/SpectralPanel/SpectralModule.jsx - Parameter view
frontend/src/components/ParameterDashboard/ParameterModule.jsx - Demodulation view
frontend/src/components/DemodulationPanel/DemodulationModule.jsx - FEC status
frontend/src/components/FECDeinterleaving/FECModule.jsx - Bitstream view
frontend/src/components/BitstreamPanel/BitstreamModule.jsx - Report export
frontend/src/components/ExportReporting/ReportingModule.jsx - API client
frontend/src/api.js
API and ingestion
- HTTP API
backend/api/main.py - Universal reader
backend/src/io/universal_reader.py - IQ reader
backend/src/io/iq_reader.py - WAV reader
backend/src/io/wav_reader.py
Signal analysis
- Analysis orchestrator
backend/src/pipeline/analyzer.py - Signal detector
backend/src/pipeline/detector.py - DSP features
backend/src/dsp/features.py - Power spectrum
backend/src/dsp/psd.py - Modulation classifier
backend/src/ml/predict.py - Evidence fusion
backend/src/pipeline/fusion.py
Modulation and data
- Demodulation methods
backend/src/demod - Signal generators
backend/src/dataset/signal_generators.py - FEC unavailable
Other components
- Analyst
Connections 24
- Analyst → Capture ingestion: uploads capture
- Application shell → Capture ingestion: renders
frontend/src/App.jsx - Application shell → Spectral view: renders
frontend/src/App.jsx - Application shell → Parameter view: renders
frontend/src/App.jsx - Application shell → Demodulation view: renders
frontend/src/App.jsx - Application shell → FEC status: renders
frontend/src/App.jsx - Application shell → Bitstream view: renders
frontend/src/App.jsx - Application shell → Report export: renders
frontend/src/App.jsx - Capture ingestion → API client: calls
frontend/src/components/FileIngestion/FileIngestionModule.jsx - API client → HTTP API: sends upload and analysis
- HTTP API → Universal reader: loads capture
backend/api/main.py - HTTP API → Analysis orchestrator: runs analysis
backend/api/main.py - HTTP API → Power spectrum: computes spectrum
backend/api/main.py - Universal reader → IQ reader: reads IQ
backend/src/io/universal_reader.py - Universal reader → WAV reader: reads WAV
backend/src/io/universal_reader.py - Analysis orchestrator → Universal reader: loads samples
backend/src/pipeline/analyzer.py - Analysis orchestrator → Signal detector: detects signals
backend/src/pipeline/analyzer.py - Analysis orchestrator → DSP features: extracts measurements
backend/src/pipeline/analyzer.py - Analysis orchestrator → Modulation classifier: classifies modulation
backend/src/pipeline/analyzer.py - Analysis orchestrator → Evidence fusion: fuses evidence
backend/src/pipeline/analyzer.py - Analysis orchestrator → Demodulation methods: dispatches by modulation
backend/src/pipeline/analyzer.py - DSP features → Power spectrum: computes spectrum
backend/src/dsp/features.py - Analyst → Signal generators: can generate training signals
- FEC status → FEC unavailable: reports unavailable