Когда-то, давным-давно я занимался цифровой обработкой сигналов, а именно разработкой программного цифрового демодулятора. Все демодуляторы работают по заданным параметрам. То есть будь то программа или микросхема на вход им подаются характеристики сигнала без которых они работать не смогут.
Для корректной работы демодулятора необходимы значения следующих параметров:
- частота дискретизации сигнала
- несущая частота сигнала
- тактовая частота
- вид модуляции
- ширина спектра (опционально)
Из этого следует, что перед демодуляцией сигнал проходит несколько ступеней обработки. Не буду рассказывать обо всех. Выделю четыре основных:
- оцифровка аналогового сигнала с выхода приемника
- построение группового спектра (панорамы)
- выделение стволов из группового спектра и предварительный анализ стволов (определение несущей частоты и границ ствола) с точностью достаточной для последующих алгоритмов определения параметров сигнала (экспресс анализ)
- определение параметров выделенных из группового спектра стволов с точностью необходимой для правильной работы демодулятора
В этой статье я расскажу о моей программе которая выполняет третий этап обработки — выделение стволов. Алгоритм придумал сам.
Исходными данными для выделения стволов являются отсчеты группового спектра оцифрованного сигнала полученные после прямого преобразования Фурье. На рисунке представлен пример спектра. В данном спектре находится 343 ствола. Стволов на столько много, что они просто сливаются на картинке.
На следующей картинке изображена область спектра выделенная красной рамкой.
Из спектра видно, что при выделении стволов придется столкнуться со следующими трудностями:
- Нелинейность АЧХ приемника и АЦП
- Огромный разброс ширины стволов. На представленном спектре ширина самого широкого ствола в 126!!! раз больше самого узкого.
- Разные уровни мощности сигналов.
- Большое количество стволов, а следовательно алгоритм анализа должен быть очень быстрым.
Со всеми трудностями я справился. На рисунке ниже представлен результат работы программы. Обнаружены все 343 ствола за 27 мс. на компьютере Intel® Core™2 Duo CPU E8400 3.00 GHz.
Что означает раскраска? Красным цветом обозначены границы ствола и его середина. Зеленым обозначен нижний уровень сигнала и его мощность в децибелах.
Надеюсь, что это только начало цикла статей. В следующих частях хотелось бы рассказать об разработанном мной алгоритме определения вида модуляции сигнала с кратностью до КАМ-64 и о программном демодуляторе.
Всем спасибо! Пишите, задавайте вопросы.
Есть ряд методологических вопросов о достоверности , поскольку «Алгоритм придумал сам».
1. Определение середины ствола с какой точностью выполняется.
2. Границы ствола (ширина спектра) определены на уровне шумов (зеленая линия). С точки зрения дальнейшей демодуляции, это не принципиально, но для дальнейшего определения параметров таких как символьная скорость, потребуется вид модуляции и ширина спектра.
3. Если есть желание поработать в этом направлении, то есть предмет для обсуждения.