Skip to main content

AI-powered RF signal analysis and classification

Project description

SpectroSense 📡

SpectroSense is an AI-powered RF signal analysis and classification tool that combines advanced signal processing with large language models to automatically identify and classify radio frequency signals from spectrograms.

SpectroSense Logo

🚀 Features

  • Automated Signal Classification: Leverages Claude AI to identify RF signals in spectrograms
  • Batch Processing: Process multiple recordings efficiently
  • Detailed Analysis Reports: Generate comprehensive JSON reports of identified signals
  • Visualization Tools: Generate high-quality spectrograms
  • Extensible Architecture: Easy to add new signal types and analysis methods

🛠️ Installation

pip install spectrosense

For development installation:

git clone https://github.com/yourusername/spectrosense.git
cd spectrosense
pip install -e ".[dev]"

🔧 Configuration

  1. Copy the example environment file:
cp .env.example .env
  1. Edit .env with your settings:
ANTHROPIC_API_KEY=your_api_key_here

📖 Quick Start

from spectrosense import SignalProcessor, SpectrogramVisualizer, AIAnalyzer

# Initialize components
processor = SignalProcessor()
visualizer = SpectrogramVisualizer()
analyzer = AIAnalyzer(api_key="your-api-key")

# Process a recording
data = processor.load_signal("recording.wav")
segments, timestamps = processor.generate_spectrogram(data)

# Generate and analyze spectrograms
for segment, timestamp in zip(segments, timestamps):
    image_path = visualizer.save_spectrogram(segment, timestamp)
    analysis = analyzer.analyze_image(image_path)
    print(analysis)

📊 Example Output

{
    "signal_types": ["wifi_halow"],
    "confidence": "high",
    "features": [
        "2MHz channel bandwidth",
        "Regular packet structure",
        "Center frequency: 919MHz"
    ],
    "notes": "IEEE 802.11ah signal with MCS0 modulation"
}

🤝 Contributing

We welcome contributions! Please see our Contributing Guidelines for details.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

📝 License

This project is licensed under the MIT License - see the LICENSE file for details.

🎯 Roadmap

  • Real-time signal processing
  • Web interface for analysis
  • Support for more signal types
  • GPU acceleration
  • Batch processing optimization
  • Integration with more LLMs
  • Custom model training

📚 Documentation

(In Progress) Full documentation is available at spectrosense.readthedocs.io

🔍 Example Use Cases

  • Amateur Radio Signal Analysis
  • RF Environment Monitoring
  • Protocol Identification
  • Spectrum Management
  • Research and Education

⚡ Performance

  • Processes 1 hour of recordings in ~5 minutes
  • Supports files up to 2GB
  • 90%+ classification accuracy for common signals

🛟 Support

  • 📫 For bugs and features, open an issue
  • 💬 For questions, use Discussions

🙏 Acknowledgments

  • Anthropic for Claude AI
  • SciPy community
  • Contributors and testers

Made with ❤️ by the SpectroSense Team

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

spectrosense-0.1.0.tar.gz (8.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

spectrosense-0.1.0-py3-none-any.whl (7.8 kB view details)

Uploaded Python 3

File details

Details for the file spectrosense-0.1.0.tar.gz.

File metadata

  • Download URL: spectrosense-0.1.0.tar.gz
  • Upload date:
  • Size: 8.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.12

File hashes

Hashes for spectrosense-0.1.0.tar.gz
Algorithm Hash digest
SHA256 f828bef0ec5cfbb8e06355bd95918c3b26b04393b627ed4782815f545da62788
MD5 1ae383c406ce74c7703c01df09dbf267
BLAKE2b-256 8ff13c773d26e7e85896c90fc491f6bf7fed0756963657887741b4b39a1caa7d

See more details on using hashes here.

File details

Details for the file spectrosense-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: spectrosense-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 7.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.12

File hashes

Hashes for spectrosense-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 cf4f0a7051feafe6c67fb60b7b2af50eb986bfb5b0065229f0c8902958eb7c34
MD5 84f9fcd91511e9d5d8a3f7c80d87c2bd
BLAKE2b-256 f7a71331e8536b2c871b103a94f6f74a5eb742e6a7c2def5225877a799a531d1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page