- Репозиторий: MathCore.DSP
- Ветка: feature/hackrf-fm-demo
- Цель: воспроизвести прием FM-радиостанции 90.8 МГц на HackRF One с выводом аудио на динамики
- Этап 1. Захват IQ (90 МГц, 10 МГц, LNA/VGA=24)
- Этап 2. Подавление DC-пика
- Этап 3. Гетеродин +0.8 МГц
- Этап 4. ФНЧ + децимация x25
- Этап 5. Ресемплинг x12/x5
- Этап 6. FM-демодуляция + децимация до 48 кГц
- Этап 7. Вывод в NAudio
- Этап 8. Документация примера
| Этап | Дата/время | Что проверено | Метрики | Итог |
|---|---|---|---|---|
| 1 | 2026-05-24 | Захват 2 сек IQ потока на 10 МГц | MeanI=0.2626, MeanQ=-2.4949, RMSI=5.77, RMSQ=6.28, Clip=0%, Dropped=0 | OK |
| 2 | 2026-05-24 | Подавление DC методом вычитания скользящего среднего | Pdc до=6.188626, Pdc после~0, ослабление=93.21 дБ | OK |
| 3 | 2026-05-24 | Частотный перенос на +800 кГц цифровым гетеродином | До: P(800к)=12.771, P(0)=6.636; После: P(800к)=1.948, P(0)=12.771; gain@0=+2.84дБ | OK |
| 4 | 2026-05-24 | ФНЧ (75к/25к) и децимация x25 до 400 кГц | Fs=400000, P(center)=10.756, P(170к)=0.438, C/E=13.90дБ | OK |
| 5 | 2026-05-24 | Дробно-рациональный ресемплинг x12/x5 до 960 кГц | Fs=960000, P(center)=9.912, P(300к)=0.193, C/E=17.10дБ | OK |
| 6 | 2026-05-24 | FM-демодуляция и децимация x10 до 96 кГц | Fs=96000, N=95980, RMS=34394.87 | OK |
| 7 | 2026-05-24 | Подготовка 48 кГц и воспроизведение через NAudio | Fs=48000, N=47927, звук радиостанции подтвержден | OK |
| 8 | 2026-05-24 | Подготовлен детальный md-документ примера | docs/HackRF-FM-Demo-Example.md создан и заполнен | OK |
- Этап 1: 8ae5e32
- Этап 2: dc49487
- Этап 3: d851dfe
- Этап 4: c9dad48
- Этап 5: cfcacda
- Этап 6: 7bf49fd
- Этап 7: 721dac0
- Этап 8: c2e9fba
- Подключить HackRF One и проверить доступность командой
hackrf_info.exe. - Установить .NET SDK, совместимый с
net10.0. - Выполнить
dotnet restoreв корне репозитория. - Убедиться, что в
Tests/ConsoleTestдоступны пакетыMathCore.HackRFиNAudio. - Проверить наличие native-библиотеки
hackrf.dllиз NuGet-пакета в выходном каталоге запуска. - Запустить
dotnet run --project Tests/ConsoleTest/ConsoleTest.csproj. - Сверить метрики каждого этапа с таблицей журнала проверок.
- При расхождениях проверить уровни усиления, антенну и локальные RF-условия.