Приведём пример использования программы PhViewer 2.0 для анализа реального файла.
Запись сигнала была взята с сайта Радиосканер. Поскольку исходный файл имеет формат ACM Waveform, то есть относится к файлам со сжатием, перед анализом он был преобразован к WAVE PCM. Для подобного преобразования подходит практически любой аудиоредактор, в данном случае был использован CoolEdit.
Быстрый анализ сигнала
В исходном файле данные представлены в реальной форме (mono). При открытии файла данные автоматически преобразуются к комплексной форме, что позволяет упростить расчёты и повысить наглядность.
После открытия файла видим следующее:
Поскольку исследуемый файл изначально записан как реальный, центральная частота сигнала должна находится в районе 1700-1800 Гц. Это мы и видим в открытом файле. Всё говорит об этом: накопленный и пиковый спектр, дифференциальное фазовое созвездие, сонограмма и гистограмма фазовых переходов.
По виду спектра сигнала делаем предположение о типе сигнала. Подобный спектр характерен для фазовых сигналов типа PSK, QAM, DQPSK. Измереная по сонограмме полоса сигнала находится в районе 2700 Гц.
На следующем этапе определяем скорость сигнала. Здесь всё банально и просто. Смотрим, что показывают модули Am Speed и Fr Speed. В первом практически ничего не видно, зато во втором наблюдаем следующую картину:

На графике явно виден пик в районе 2400. Данная скорость характерна для многих PSK сигналов. А с учётом того, что в модуле Am Speed практически ничего нет, можно сделать предположение об фактическом отсутствии амплитудной модуляции, и как следствие данный сигнал никакого отношения к QAM"овским не имеет.
Зная уже значение скорости, мы можем выставить коэффициент децимации:

Значение Offset устанавливается с учётом глазковой диаграммы.
Установив парамметры децимации, получаем следующее:

На дифференциальном фазовом созвездии, пусть и не чётко, но видно 8 позиций.
На гистограмме переходов так же видим 9 пиков, что характерно для PSK8.
Оба эти парамметра не зависят от реального положения сигнала и не требуют точной подстройки частоты. Таким образом путём нехитрых манипуляций, мы можем сказать с большой долей уверенности, что сигнал относится к группе PSK8, имеет скорость 2400 и ширину спектра порядка 2700 Гц.
Уточнение параметров сигнала
Попробуем пойти дальше и уточнить параметры сигнала. Включив MouseMeter (ctrl+M), и щёлкнум мышкой с зажатой клавишей CTRL в центр спектра, начинаем подстройку частоты сигнала.

Диференциальное созвездие и гистограмма переходов при этом изменятся и будут выглядеть так:
![]() Гистограмма переходов
|
![]() Дифференциальное созвездие
|
Обратите внимание, что пик гистограммы теперь находится в районе нуля, а дифференциальное созвездие указывает на ноль градусов.
Воспользуемся методом возведения сигнала в степень. При возведении сигнала в квадрат, на спектре появляется палка.

Сдвигаем сигнал, ориентируюясь на эту палку:

Следующим этапом смотрим на модули отображения детекторов:

Амплитудный детектор

Частотный детектор

Фазовый детектор
Вид детекторов ещё раз подтверждает наличие фазовой модуляции. На фазовом созвездии видны наклонные линии, по которым мы можем точно подстроить частоту сигнала. Проделаем эту операцию.

Обратите внимание, что чем меньше значение Step, тем выше точность подстройки, но при этом уменьшается скорость подстройки. Используйте кнопки Page Down и Page Up для увеличения размерности шага изменения параметра Shift в 10 раз, и стрелочки вниз и вверх для изменения с заданным шагом Step.
В итоге на фазовом детекторе будет следующая картина:

Это значит, что мы нашли центральную частоту сигнала: 1799,86 Гц. Теперь и на созвездиях чётко видно восемь фаз.

Поскольку на фазовом детекторе чётко видны какие то блоки, имеет смысл обратить на них внимание и посмотреть подробнее.

Воспользуемся возможностями шумоподавления, предоставляемыми модулем Squelch. В данном примере это не обязательно, но в ряде случаем данный модуль существенно упрощает жизнь. Для сравнения ниже представлены скриншоты фрагмента фазового детектора с шумоподавлением и без.

Фазовый детектор. Шумоподавитель выключен.

Фазовый детектор. Шумоподавитель включён.
Разница очевидна. Кроме того, использование модуля SQUELCH даёт ещё ряд интересных возможностей.
Но вернёмся к рассматриваемому сигналу и измерим размер блока.

Размер блока получился равным ~106 мс. При желании точность можно увеличить, измерив несколько блоков и поделив общее время на количество. В любом случае, мы имеем дело с сигналом, данные в котором передаются блоками по ~106 мс. Подобная структура характерна для сигналов стандарта Stanag-4285 (PSK8, 2400bd, размер блока 106,6 ms). Остаётся только как-то убедиться, что это действительно Stanag.
Из стандарта на Stanag-4285 мы знаем, что каждый блок имеет характерную преамбулу, повторяещуюся в каждом блоке. Для дальнейшей проверки нам понадобится сохранить значения детектора. Для этого в меню фазового детектора выбираем пункт сохранить и сохраняем данные как "Data for demodulator (*.dfd)".

Работа с демодулятором.
Для дальнейшей работы нам понадобится универсальный демодулятор, идущий вместе с PhViewer 2.0 начиная с версии от 01.09.2011г. Данная программа на момент написания статьи находится в альфа версии, но для нашего случая её возможностей вполне хватит.
Запускаем DemViewer и открываем сохранённые на прошлом этапе данные для демодуляции.
Видим продецимированный фазовый детектор с разрешением одна точка на посылку. Жмём на кнопку со стрелочками в верхнем правом углу и выставляем количество позиций 8.
Автоматически диапозон значений будет разбит на 8 частей, и будет предложен вариант соответствующих им символьных значений. При желании значения по умолчанию можно изменить, прсто отредактировав таблицу. Но в большинстве случаев этого не требуется.

Подбираем значение параметра Shift так, чтобы красные линии совпадали с центрами групп и жмём кнопку с треугольничком, направленным вниз.
Итак, мы получили битовый поток. Выставляем параметр Length = 256 символов (длина блока Stanag). И видим структуру сигнала. Более наглядно то же самое показывает фотограмма.
Из картинки следует, что конец данных повреждён, что произошло из-за нечёткой установки скорости сигнала / проблем при записи.
Попробуем найти стандартную для Stanag'а последовательность. Вводим преамбулу сигнала в строку поиска. Поскольку для PSK сигналов значение начальной фазы нам не известно, искомая преамбула простым поиском не обнаруживается. Но в арсенале DemViewer'а есть ещё три вида поиска (кнопки рядом со строкой поиска): дифференциальный, нечёткий и их комбинация. Воспользуемся последним, задав количество допустимых ошибок = 2.
Как видим, данные действительно содержат нужную нам комбинацию, на основе чего можно сделать вывод, что данный сигнал действительно Stanag-4285.
Заключение
В данной статье показывается один из алгоритмов работы с программой PhViewer 2.0 на примере реальной записи сигнала Stanag-4285. Данный алгоритм не является единственным возможным, просто один из...
На практике часть действий можно опустить. Некоторые действия наоборот выполнить (фильтрацию, коррекцию многолучёвости). Но в целом, описанный подход может быть с успехом применён для анализа различных сигналов цифровой передачи данных.