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.
🚀 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
- Copy the example environment file:
cp .env.example .env
- Edit
.envwith 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.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - 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
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 spectrosense-0.2.1.tar.gz.
File metadata
- Download URL: spectrosense-0.2.1.tar.gz
- Upload date:
- Size: 9.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e553aad4b706cfa3ef6982d098591ae5a54104c9b3dae795f5bffd015a8e6893
|
|
| MD5 |
cfea611dc17ca83461eb6f4128449378
|
|
| BLAKE2b-256 |
bd4df0a790e4f3c7bde3c08ca681c52bc1457394029179dcda22f268a6c463d0
|
File details
Details for the file spectrosense-0.2.1-py3-none-any.whl.
File metadata
- Download URL: spectrosense-0.2.1-py3-none-any.whl
- Upload date:
- Size: 9.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
33860fe081a081e45ddc9355f01d410f8c4ed161adfed7d674b1a20a1e3f7c48
|
|
| MD5 |
f9290eddcb6e9ae663c715d297038dde
|
|
| BLAKE2b-256 |
255d5d4cd20b6ad5dbd76490a098e233a285b302005b473ff72f24a95346c608
|