Выпуск #1/2018
С. Ландышев, М. Клименко
СБИС 1879ВЯ1Я. Обработка шумоподобных сигналов
СБИС 1879ВЯ1Я. Обработка шумоподобных сигналов
Просмотры: 3016
Рассмотрена обработка шумоподобных сигналов в СБИС 1879ВЯ1Я. Проанализированы различные методы обработки. Приведены оценки производительности этих методов и рекомендации по их использованию.
УДК 621.3.049.774 | ВАК 05.27.00
DOI: 10.22184/1992-4178.2018.172.1.102.108
УДК 621.3.049.774 | ВАК 05.27.00
DOI: 10.22184/1992-4178.2018.172.1.102.108
Теги: fast convolution matched filter pseudo-noise signals быстрая свертка согласованный фильтр шумоподобные сигналы
СБИС 1879ВЯ1Я разрабатывалась ЗАО НТЦ «Модуль» как специализированная навигационная микросхема. В ее состав вошли аппаратные средства для оцифровки и предварительной обработки сигналов навигационных космических аппаратов. В процессе освоения и эксплуатации СБИС фактически определилось ее новое применение. Программируемые характеристики СБИС позволяют решать задачи не только навигационного направления, но и более общие, связанные с обработкой сигналов в целом. Речь может идти о построении программно-определяемой радиосистемы (SDR) на базе СБИС 1879ВЯ1Я. Рассмотрим один из наиболее востребованных вариантов применения специализированных схем цифровой обработки сигналов – для обработки шумоподобных сигналов (ШПС).
Шумоподобные сигналы широко применяются в системах передачи информации между абонентами, в навигации и радиолокации. ШПС являются широкополосными сигналами, для которых база, то есть произведение длительности сигнала на ширину его спектра, больше единицы [1]. Формируются такие сигналы путем модуляции высокочастотного несущего колебания специальной псевдослучайной последовательностью.[1]
Для шумоподобных сигналов характерны высокая помехозащищенность и скрытность [1], вместе с тем их обработка требует значительных вычислительных ресурсов. Для систем, работающих на высокой «чиповой» скорости, крайне затруднительна обработка только программными средствами, без использования специальных аппаратных средств.
Обработка ШПС в СБИС 1879ВЯ1Я возможна различными методами в зависимости от характеристик сигнала. Почти во всех случаях первичная задача – обнаружение сигнала – сводится к поиску синхронизирующей последовательности. Обрабатываемый сигнал может быть непрерывным или импульсным. В первом случае достаточно обработать оцифрованные отсчеты, взятые в любой момент времени, во втором – необходимо обрабатывать весь поток данных непрерывно, так как момент появления импульса не определен. Для обнаружения ШПС применяется обработка в согласованном фильтре (СФ). Здесь возможны три варианта: с использованием КИХ-фильтров блока предварительной обработки сигнала, с реализацией фильтра на ядрах процессорных систем или с реализацией быстрой свертки с применением быстрого преобразования Фурье (БПФ).
С помощью СБИС 1879ВЯ1Я можно также решать задачу слежения за сигналом, например, как в навигационном приемнике.
СТРУКТУРА СБИС 1879ВЯ1Я
СБИС 1879ВЯ1Я представляет собой унифицированный цифровой программный приемник, обеспечивающий прием аналоговых сигналов на промежуточной частоте, аппаратную цифровую обработку в блоке предварительной обработки сигналов, а также последующую окончательную обработку на ядрах NMС3 (NeuroMatix Core) [2]. Общая структурная схема представлена на рис. 1.
Основные блоки микросхемы:
• блок четырех 12-битных аналого-цифровых преобразователей (АЦП), работающих на частоте Fs до 81,92 МГц;
• процессорная система ARM 1176JZF-S, работающая на частоте до 327,68 МГц (4 · Fs);
• два процессорных ядра NMC3, работающих на частоте до 327,68 МГц (4 · Fs);
• блок предварительной обработки сигналов (БПОС).
ОБРАБОТКА В БПОС
Цифровая обработка сигналов подразумевает действия с отсчетами, безразмерными дискретными величинами, получаемыми после аналого-цифрового преобразования. После оцифровки отсчеты поступают на вход блока предварительной обработки сигнала, где осуществляются перенос спектра сигнала по частоте, подавление высоких частот, обработка в КИХ-фильтре, упаковка и запись данных в память. Общая структурная схема БПОС представлена на рис. 2.
Каждый канал БПОС состоит из цифрового гетеродина (генератор с цифровым управлением (NCO) + таблица фаз), схемы понижения темпа данных, состоящей из аккумулятора с децимацией (каскад ФНЧ + устройство децимации) и нормализатора. Ряд каналов имеет доступ к конфигурируемому кластеру КИХ-фильтров с настраиваемыми порядком фильтра (от 64 до 256) и разрядностью коэффициентов (8 или 16 бит), а также к блоку комплексного возведения в квадрат. Структурная схема канала БПОС представлена на рис. 3.
Для формирования гармонического колебания в канале БПОС применяется NCO с таблицей фаз. С аппаратной точки зрения NCO представляет собой накапливающий сумматор (интегратор) со сбросом. В каждой итерации выбираются N старших разрядов сумматора, которые поступают на вход таблицы комплексного гармонического колебания (косинуса и синуса), где в соответствии с подаваемыми разрядами выдается значение гармонического колебания. Точность генерирования итогового гармонического колебания определяется разрядностью таблицы (количеством разрядов, передаваемых из NCO), исходной разрядностью NCO.
При работе с аппаратурой возникают ограничения разрядности шины данных. Для решения этой проблемы применяется специализированное устройство – нормализатор, который выбирает восемь требуемых разрядов для передачи далее по шине памяти.
В БПОС есть программируемый механизм понижения темпа данных, работающий в двух режимах: децимации и накопления. Под децимацией понимается простейший и самый очевидный способ: выбор каждого i-го цифрового отсчета сигнала. Применение децимации эквивалентно первичной оцифровке сигнала с частотой дискретизации в i раз меньше.
При обработке широкополосных сигналов применение децимации зачастую недопустимо вследствие нарушения теоремы Котельникова и наложения зеркальных компонентов спектра сигнала. В этом случае используется так называемый механизм накопления: суммирование N последовательных отсчетов. Математически, с учетом последующего усреднения в нормализаторе, эта операция эквивалентна усредняющему фильтру, обеспечивающему фильтрацию нижних частот (с АЧХ, пропорциональной sinc (x)) и понижение частоты отсчетов (децимацию). АЧХ фильтра приведена на рис. 4, из которого видно, что использование схемы накопления позволяет подавить эквивалентным фильтром необрабатываемую полосу сигналов, тем самым уменьшив влияние внеполосных шумов системы.
В блоке предобработки реализованы программируемые аппаратные КИХ-фильтры, оперирующие «на проходе» с входными цифровыми данными. Кластер фильтров состоит из четырех КИХ-фильтров 64-го порядка с 8-битными коэффициентами (блок фильтров). Внутри кластера фильтры могут быть сконфигурированы последовательно и/или параллельно. Стоит отметить, что при параллельной коммутации можно увеличить разрядность коэффициентов фильтра до 16 бит. В табл. 1 приводятся возможные варианты построения КИХ-фильтров в одном кластере.
Поскольку фильтр комплексный и формирует четыре частичные суммы, перед его использованием требуется понизить частоту дискретизации цифровых отсчетов минимум в четыре раза. Таким образом, частота обработки отсчетов в КИХ-фильтре составляет до 20,48 МГц (Fs / 4).
Итоговой стадией предобработки сигнала является упаковка и запись данных в память. В рассматриваемых СБИС применяется двойная буферизация, то есть БПОС поочередно записывает два буфера. В терминологии БПОС такие буферы называются четным и нечетным. При таком подходе, пока идет запись четного буфера данных, программа или сопроцессоры обрабатывают нечетный и наоборот. Блок упаковки сигнала позволяет выполнять выборку разрядов следующим образом: 2 + 2 (два бита –действительная часть и два бита – мнимая), 4 + 4, 8 + 8.
Каналы БПОС с фильтрами можно применять для поиска синхроимпульса в системах с импульсной трансляцией сигнала, когда момент появления синхроимпульса неизвестен и необходимо обрабатывать весь поток входных данных. Для СФ, реализованного на аппаратуре БПОС, в качестве импульсной характеристики КИХ-фильтра берется перевернутая версия манипулирующей псевдослучайной последовательности (ПСП), в которой элементы следуют в обратном порядке.
Параметры аппаратуры БПОС накладывают существенные ограничения на характеристики обрабатываемых ШПС. Сигнал можно обработать с применением фильтров БПОС при выполнении следующих условий:
• база ШПС или длина манипулирующей ПСП – не более 128. Это требование определяется максимально возможным порядком фильтра – 256. При базе 128 на один чип ПСП будет приходиться два отсчета АЦП;
• обрабатываются малоразрядные данные или допускается понижение динамического диапазона. После обработки в согласованном фильтре в нормализаторах понижается разрядность результата до 8 бит;
• частота отсчетов на входе КИХ-фильтра не превышает 20,48 МГц.
После обработки в БПОС дальнейшие вычисления производятся на ядрах NMC3: определяются мощность сигнала, пороги, максимумы и т. д.
СОГЛАСОВАННЫЙ ФИЛЬТР НА NMC3
Реализация СФ на NMC3 снимает существенные ограничения (прежде всего по размеру базы ШПС), присущие обработке на аппаратных КИХ-фильтрах.
Ключевая особенность специализированных СБИС семейства NeuroMatrix – наличие векторно-матричного умножителя, который позволяет эффективно обрабатывать целочисленные данные произвольной разрядности (от 1 до 64 бит). За один такт работы процессора выполняется одна операция умножения вектора входных данных на матрицу, что при использовании малоразрядных данных позволяет добиться значительного повышения производительности [3]. Схематично операция умножения с накоплением в матрице M Ч N представлена на рис. 5.
Операцию взвешенного суммирования на операционном узле умножителя можно описать следующим выражением:
(1)
где: Zi – элемент выходного вектора, Xj – элемент данных, поступающих на вход X операционного узла векторного процессора, Yi – частичная сумма, накопленная на предыдущем шаге взвешенного суммирования, Wij – весовой коэффициент, расположенный в соответствующей ячейке рабочей матрицы процессора.
Используя операцию взвешенного суммирования можно реализовать алгоритм СФ, который задается выражением:
, (2)
где Hj – отсчеты искомой ПСП.
Из-за малой разрядности элементов ПСП, которая состоит из последовательности +1 и –1, целесообразно подавать элементы ПСП на вход X операционного узла, а в матрицу весовых коэффициентов записывать отсчеты обрабатываемого сигнала. На рис. 6 приведена конфигурация узла для обработки 32-битовых комплексных отсчетов (последовательность чередующихся действительной и мнимой частей) для ПСП длиной 64.
Матрица коэффициентов разбивается на два столбца и 32 строки.
Перед вычислением свертки (подразумевается, что в СФ выполняется линейная свертка) необходимо особым образом подготовить векторы с ПСП. На рис. 6 показан принцип подготовки векторов: каждый последующий вектор – это сдвинутая копия предыдущего с заполнением младших элементов в зависимости от фазы обработки. В ячейках векторов приводятся индексы элементов ПСП [0, 63]. Серые ячейки содержат ноль. В примере подготавливаются 96 векторов по 32 элемента, где каждый элемент – двухбитовое представление ±1 или 0. В общем случае количество векторов составит N + 32, где N – порядок согласованного фильтра.
В матрицу весовых коэффициентов загружаются обрабатываемые отсчеты. В приведенном алгоритме минимизируется количество загрузок матрицы, за счет чего достигается максимальная производительность.
Данные с выхода операционного устройства подаются на вход Y для накопления частичных сумм.
Производительность приведенной реализации свертки приблизительно равна N / 32 + 2 такта NMC3 на одно длинное 64-битовое слово отсчетов при оптимальном размещении данных по банкам памяти, где N – длина импульсной характеристики. В примере с 32-битовыми отсчетами, когда один отсчет занимает одно длинное слово, выполнение свертки порядка 64 займет 4–5 тактов NMC3 на один отсчет.
Следует отметить, что в обрабатываемом слове может размещаться несколько отсчетов, например четыре комплексных отсчета по восемь бит, в этом случае можно параллельно обработать четыре сигнала, и общая производительность увеличится в четыре раза. Конечно, при выборе разрядности обрабатываемых компонентов необходимо учитывать возможные переполнения при суммировании в фильтре.
БЫСТРАЯ СВЕРТКА НА NMC3
При повышении длины ПСП целесообразно использовать алгоритм быстрой свертки, основанный на БПФ [4].
Для оценки вычислительной сложности перечислим порядок основных операций: над исходной ПСП и сворачиваемым сигналом выполняется прямое БПФ, затем полученные спектры перемножаются и над произведением выполняется обратное БПФ (ОБПФ). В результате, в соответствии с теоремой о свертке, осуществляется преобразование, эквивалентное свертке.
При поиске синхронизирующей последовательности заранее известна модулирующая ПСП, поэтому одно из преобразований БПФ можно выполнить на этапе предварительных вычислений, а именно вычислить БПФ от ПСП. Тогда для выполнения быстрой свертки останется выполнить одно БПФ над обрабатываемыми отсчетами, поэлементное комплексное перемножение двух полученных спектров и одно ОБПФ.
Рассмотрим производительность обработки при оптимальном размещении данных в памяти. Для определенности возьмем комплексные отсчеты 32 бита на компонент комплексного отсчета (отсчет 32 + 32 = 64 бита). В статье [5] приведены оценка и формула приближенного расчета производительности БПФ.
На рис. 7 представлены кривые времени обработки для простой и быстрой свертки в логарифмическом масштабе. На графике видно, что, начиная с порядка согласованного фильтра 2 048 (211), алгоритм, основанный на БПФ, выигрывает по производительности у СФ, реализованного на векторно-матричном узле NMC3.
Следует отметить, что выигрыш в производительности во многом достигается за счет увеличения объема требуемой памяти. Кроме предвычисленного преобразования ПСП, в памяти нужно хранить необходимые для БПФ таблицы синусов / косинусов, которые также вычисляются на этапе инициализации.
Для быстрой свертки, основанной на БПФ, характерны жесткие требования к порядку согласованного фильтра – только степень двойки.
ВЫЧИСЛЕНИЕ
АДАПТИВНОГО ПОРОГА
Для принятия решения о наличии в сигнале искомого синхроимпульса необходимо определить критерий, который с достаточной вероятностью подтвердит наличие синхронизирующей последовательности. Наиболее распространенный метод – оценка отношения мощности сигнала на выходе согласованного фильтра к мощности входного сигнала при условии, что входной сигнал является смесью полезного сигнала и аддитивного шума с нормальным распределением и нулевым средним.
Мощность сигнала на выходе согласованного фильтра определяется выражением:
(3)
Мощность входного сигнала:
, (4)
где: T – оцениваемая мощность, R – размер окна, в котором оценивается мощность шума, X – отсчеты входного сигнала, Re и Im – действительная и мнимая части сигнала.
Условием наличия сигнала в отсчете с номером n является превышение порога: , где k – масштабирующий коэффициент, который подбирается в зависимости от требуемых вероятностей обнаружения и ложного обнаружения.
Квадраты компонентов входного сигнала из (4) можно получить на проходе в аппаратных каналах БПОС, используя аппаратные квадраторы, которые работают в кластерах с КИХ-фильтрами.
Сглаживание сигнала с заданным окном выполняется на векторно-матричном узле NMC3 с применением функции свертки с единичными коэффициентами, реализуя алгоритм скользящего среднего.
ПРОГРАММНЫЙ КОРРЕЛЯТОР
На базе СБИС 1879ВЯ1Я можно реализовать устройство слежения за постоянно излучаемыми циклическими ШПС. Слежение за сигналами используется в навигационных приемниках для постоянной оценки характеристик сигнала: смещение несущей частоты (доплеровское смещение частоты), фаза несущего колебания, задержка дальномерного кода, отношение сигнал/шум и пр.
Здесь осуществляется корреляционная обработка. В состав СБИС 1879ВЯ1Я не входят аппаратные корреляторы, вся обработка выполняется на ядрах NMC3.
Работа коррелятора определяется выражением:
, (5)
где: Y – результат корреляции, X – сигнал или вектор данных, H – эталонный сигнал или эталонный вектор.
Для проведения корреляции необходимо сформировать эталонный вектор и выполнить скалярное произведение эталонного вектора и вектора данных.
Для ШПС эталонный вектор формируется из модулирующей ПСП со значениями ±1, которая циклически сдвигается в соответствии с задержкой. Для получения требуемого эталонного вектора можно воспользоваться специальным устройством – переупаковщиком Permutation Unit (PU), который входит в состав NMC3. На рис. 8 показана выборка вектора с заданной задержкой. Вместе с выборкой можно переупаковать вектор. Например, в памяти СБИС можно хранить ПСП в виде упакованных битов, а выбор вектора с заданной позиции выполнить переупаковщиком с одновременной распаковкой в нужный формат. На рис. 8 показана схема корреляции для комплексных данных по 32 бита на компонент, длина ПСП – 64, распаковка производится в двухбитовое представление.
Производительность рассматриваемого алгоритма при оптимальном размещении данных в памяти составляет ~1 такт NMC3 на один комплексный отсчет.
Таким образом, рассмотрены различные подходы к решению задачи выделения синхроимпульса из непрерывного потока данных. В зависимости от длины модулирующей последовательности (порядка согласованного фильтра), целесообразно выбирать тот или иной метод обработки (табл. 2), возможны смешанные варианты, когда часть действий выполняется на аппаратном КИХ-фильтре, а часть – на векторно-матричном узле NMC3.
ЛИТЕРАТУРА
1. Варакин Л. Е. Системы связи с шумоподобными сигналами. – М.: Радио и связь. Редакция литературы по радиотехнике, 1985.
2. ЗАО НТЦ «Модуль». Микросхема интегральная 1879ВЯ1Я. Руководство по эксплуатации.
3. Черников В., Виксне П., Шелухин А. и др. Семейство процессоров обработки сигналов с векторно-матричной архитектурой NeuroMatrix // Электронные компоненты. 2006. № 6. С. 79–84.
4. Богнер Р., Константинидис А. Введение в цифровую фильтрацию. – М.: Мир, 1976.
5. Мушкаев С. В. Высокопроизводительные дискретные преобразования на процессорах Neuromatrix с ядром NMC3. https://www.module.ru/upload/images/14047415321404739356ot_2014_2_107-112.pdf
Шумоподобные сигналы широко применяются в системах передачи информации между абонентами, в навигации и радиолокации. ШПС являются широкополосными сигналами, для которых база, то есть произведение длительности сигнала на ширину его спектра, больше единицы [1]. Формируются такие сигналы путем модуляции высокочастотного несущего колебания специальной псевдослучайной последовательностью.[1]
Для шумоподобных сигналов характерны высокая помехозащищенность и скрытность [1], вместе с тем их обработка требует значительных вычислительных ресурсов. Для систем, работающих на высокой «чиповой» скорости, крайне затруднительна обработка только программными средствами, без использования специальных аппаратных средств.
Обработка ШПС в СБИС 1879ВЯ1Я возможна различными методами в зависимости от характеристик сигнала. Почти во всех случаях первичная задача – обнаружение сигнала – сводится к поиску синхронизирующей последовательности. Обрабатываемый сигнал может быть непрерывным или импульсным. В первом случае достаточно обработать оцифрованные отсчеты, взятые в любой момент времени, во втором – необходимо обрабатывать весь поток данных непрерывно, так как момент появления импульса не определен. Для обнаружения ШПС применяется обработка в согласованном фильтре (СФ). Здесь возможны три варианта: с использованием КИХ-фильтров блока предварительной обработки сигнала, с реализацией фильтра на ядрах процессорных систем или с реализацией быстрой свертки с применением быстрого преобразования Фурье (БПФ).
С помощью СБИС 1879ВЯ1Я можно также решать задачу слежения за сигналом, например, как в навигационном приемнике.
СТРУКТУРА СБИС 1879ВЯ1Я
СБИС 1879ВЯ1Я представляет собой унифицированный цифровой программный приемник, обеспечивающий прием аналоговых сигналов на промежуточной частоте, аппаратную цифровую обработку в блоке предварительной обработки сигналов, а также последующую окончательную обработку на ядрах NMС3 (NeuroMatix Core) [2]. Общая структурная схема представлена на рис. 1.
Основные блоки микросхемы:
• блок четырех 12-битных аналого-цифровых преобразователей (АЦП), работающих на частоте Fs до 81,92 МГц;
• процессорная система ARM 1176JZF-S, работающая на частоте до 327,68 МГц (4 · Fs);
• два процессорных ядра NMC3, работающих на частоте до 327,68 МГц (4 · Fs);
• блок предварительной обработки сигналов (БПОС).
ОБРАБОТКА В БПОС
Цифровая обработка сигналов подразумевает действия с отсчетами, безразмерными дискретными величинами, получаемыми после аналого-цифрового преобразования. После оцифровки отсчеты поступают на вход блока предварительной обработки сигнала, где осуществляются перенос спектра сигнала по частоте, подавление высоких частот, обработка в КИХ-фильтре, упаковка и запись данных в память. Общая структурная схема БПОС представлена на рис. 2.
Каждый канал БПОС состоит из цифрового гетеродина (генератор с цифровым управлением (NCO) + таблица фаз), схемы понижения темпа данных, состоящей из аккумулятора с децимацией (каскад ФНЧ + устройство децимации) и нормализатора. Ряд каналов имеет доступ к конфигурируемому кластеру КИХ-фильтров с настраиваемыми порядком фильтра (от 64 до 256) и разрядностью коэффициентов (8 или 16 бит), а также к блоку комплексного возведения в квадрат. Структурная схема канала БПОС представлена на рис. 3.
Для формирования гармонического колебания в канале БПОС применяется NCO с таблицей фаз. С аппаратной точки зрения NCO представляет собой накапливающий сумматор (интегратор) со сбросом. В каждой итерации выбираются N старших разрядов сумматора, которые поступают на вход таблицы комплексного гармонического колебания (косинуса и синуса), где в соответствии с подаваемыми разрядами выдается значение гармонического колебания. Точность генерирования итогового гармонического колебания определяется разрядностью таблицы (количеством разрядов, передаваемых из NCO), исходной разрядностью NCO.
При работе с аппаратурой возникают ограничения разрядности шины данных. Для решения этой проблемы применяется специализированное устройство – нормализатор, который выбирает восемь требуемых разрядов для передачи далее по шине памяти.
В БПОС есть программируемый механизм понижения темпа данных, работающий в двух режимах: децимации и накопления. Под децимацией понимается простейший и самый очевидный способ: выбор каждого i-го цифрового отсчета сигнала. Применение децимации эквивалентно первичной оцифровке сигнала с частотой дискретизации в i раз меньше.
При обработке широкополосных сигналов применение децимации зачастую недопустимо вследствие нарушения теоремы Котельникова и наложения зеркальных компонентов спектра сигнала. В этом случае используется так называемый механизм накопления: суммирование N последовательных отсчетов. Математически, с учетом последующего усреднения в нормализаторе, эта операция эквивалентна усредняющему фильтру, обеспечивающему фильтрацию нижних частот (с АЧХ, пропорциональной sinc (x)) и понижение частоты отсчетов (децимацию). АЧХ фильтра приведена на рис. 4, из которого видно, что использование схемы накопления позволяет подавить эквивалентным фильтром необрабатываемую полосу сигналов, тем самым уменьшив влияние внеполосных шумов системы.
В блоке предобработки реализованы программируемые аппаратные КИХ-фильтры, оперирующие «на проходе» с входными цифровыми данными. Кластер фильтров состоит из четырех КИХ-фильтров 64-го порядка с 8-битными коэффициентами (блок фильтров). Внутри кластера фильтры могут быть сконфигурированы последовательно и/или параллельно. Стоит отметить, что при параллельной коммутации можно увеличить разрядность коэффициентов фильтра до 16 бит. В табл. 1 приводятся возможные варианты построения КИХ-фильтров в одном кластере.
Поскольку фильтр комплексный и формирует четыре частичные суммы, перед его использованием требуется понизить частоту дискретизации цифровых отсчетов минимум в четыре раза. Таким образом, частота обработки отсчетов в КИХ-фильтре составляет до 20,48 МГц (Fs / 4).
Итоговой стадией предобработки сигнала является упаковка и запись данных в память. В рассматриваемых СБИС применяется двойная буферизация, то есть БПОС поочередно записывает два буфера. В терминологии БПОС такие буферы называются четным и нечетным. При таком подходе, пока идет запись четного буфера данных, программа или сопроцессоры обрабатывают нечетный и наоборот. Блок упаковки сигнала позволяет выполнять выборку разрядов следующим образом: 2 + 2 (два бита –действительная часть и два бита – мнимая), 4 + 4, 8 + 8.
Каналы БПОС с фильтрами можно применять для поиска синхроимпульса в системах с импульсной трансляцией сигнала, когда момент появления синхроимпульса неизвестен и необходимо обрабатывать весь поток входных данных. Для СФ, реализованного на аппаратуре БПОС, в качестве импульсной характеристики КИХ-фильтра берется перевернутая версия манипулирующей псевдослучайной последовательности (ПСП), в которой элементы следуют в обратном порядке.
Параметры аппаратуры БПОС накладывают существенные ограничения на характеристики обрабатываемых ШПС. Сигнал можно обработать с применением фильтров БПОС при выполнении следующих условий:
• база ШПС или длина манипулирующей ПСП – не более 128. Это требование определяется максимально возможным порядком фильтра – 256. При базе 128 на один чип ПСП будет приходиться два отсчета АЦП;
• обрабатываются малоразрядные данные или допускается понижение динамического диапазона. После обработки в согласованном фильтре в нормализаторах понижается разрядность результата до 8 бит;
• частота отсчетов на входе КИХ-фильтра не превышает 20,48 МГц.
После обработки в БПОС дальнейшие вычисления производятся на ядрах NMC3: определяются мощность сигнала, пороги, максимумы и т. д.
СОГЛАСОВАННЫЙ ФИЛЬТР НА NMC3
Реализация СФ на NMC3 снимает существенные ограничения (прежде всего по размеру базы ШПС), присущие обработке на аппаратных КИХ-фильтрах.
Ключевая особенность специализированных СБИС семейства NeuroMatrix – наличие векторно-матричного умножителя, который позволяет эффективно обрабатывать целочисленные данные произвольной разрядности (от 1 до 64 бит). За один такт работы процессора выполняется одна операция умножения вектора входных данных на матрицу, что при использовании малоразрядных данных позволяет добиться значительного повышения производительности [3]. Схематично операция умножения с накоплением в матрице M Ч N представлена на рис. 5.
Операцию взвешенного суммирования на операционном узле умножителя можно описать следующим выражением:
(1)
где: Zi – элемент выходного вектора, Xj – элемент данных, поступающих на вход X операционного узла векторного процессора, Yi – частичная сумма, накопленная на предыдущем шаге взвешенного суммирования, Wij – весовой коэффициент, расположенный в соответствующей ячейке рабочей матрицы процессора.
Используя операцию взвешенного суммирования можно реализовать алгоритм СФ, который задается выражением:
, (2)
где Hj – отсчеты искомой ПСП.
Из-за малой разрядности элементов ПСП, которая состоит из последовательности +1 и –1, целесообразно подавать элементы ПСП на вход X операционного узла, а в матрицу весовых коэффициентов записывать отсчеты обрабатываемого сигнала. На рис. 6 приведена конфигурация узла для обработки 32-битовых комплексных отсчетов (последовательность чередующихся действительной и мнимой частей) для ПСП длиной 64.
Матрица коэффициентов разбивается на два столбца и 32 строки.
Перед вычислением свертки (подразумевается, что в СФ выполняется линейная свертка) необходимо особым образом подготовить векторы с ПСП. На рис. 6 показан принцип подготовки векторов: каждый последующий вектор – это сдвинутая копия предыдущего с заполнением младших элементов в зависимости от фазы обработки. В ячейках векторов приводятся индексы элементов ПСП [0, 63]. Серые ячейки содержат ноль. В примере подготавливаются 96 векторов по 32 элемента, где каждый элемент – двухбитовое представление ±1 или 0. В общем случае количество векторов составит N + 32, где N – порядок согласованного фильтра.
В матрицу весовых коэффициентов загружаются обрабатываемые отсчеты. В приведенном алгоритме минимизируется количество загрузок матрицы, за счет чего достигается максимальная производительность.
Данные с выхода операционного устройства подаются на вход Y для накопления частичных сумм.
Производительность приведенной реализации свертки приблизительно равна N / 32 + 2 такта NMC3 на одно длинное 64-битовое слово отсчетов при оптимальном размещении данных по банкам памяти, где N – длина импульсной характеристики. В примере с 32-битовыми отсчетами, когда один отсчет занимает одно длинное слово, выполнение свертки порядка 64 займет 4–5 тактов NMC3 на один отсчет.
Следует отметить, что в обрабатываемом слове может размещаться несколько отсчетов, например четыре комплексных отсчета по восемь бит, в этом случае можно параллельно обработать четыре сигнала, и общая производительность увеличится в четыре раза. Конечно, при выборе разрядности обрабатываемых компонентов необходимо учитывать возможные переполнения при суммировании в фильтре.
БЫСТРАЯ СВЕРТКА НА NMC3
При повышении длины ПСП целесообразно использовать алгоритм быстрой свертки, основанный на БПФ [4].
Для оценки вычислительной сложности перечислим порядок основных операций: над исходной ПСП и сворачиваемым сигналом выполняется прямое БПФ, затем полученные спектры перемножаются и над произведением выполняется обратное БПФ (ОБПФ). В результате, в соответствии с теоремой о свертке, осуществляется преобразование, эквивалентное свертке.
При поиске синхронизирующей последовательности заранее известна модулирующая ПСП, поэтому одно из преобразований БПФ можно выполнить на этапе предварительных вычислений, а именно вычислить БПФ от ПСП. Тогда для выполнения быстрой свертки останется выполнить одно БПФ над обрабатываемыми отсчетами, поэлементное комплексное перемножение двух полученных спектров и одно ОБПФ.
Рассмотрим производительность обработки при оптимальном размещении данных в памяти. Для определенности возьмем комплексные отсчеты 32 бита на компонент комплексного отсчета (отсчет 32 + 32 = 64 бита). В статье [5] приведены оценка и формула приближенного расчета производительности БПФ.
На рис. 7 представлены кривые времени обработки для простой и быстрой свертки в логарифмическом масштабе. На графике видно, что, начиная с порядка согласованного фильтра 2 048 (211), алгоритм, основанный на БПФ, выигрывает по производительности у СФ, реализованного на векторно-матричном узле NMC3.
Следует отметить, что выигрыш в производительности во многом достигается за счет увеличения объема требуемой памяти. Кроме предвычисленного преобразования ПСП, в памяти нужно хранить необходимые для БПФ таблицы синусов / косинусов, которые также вычисляются на этапе инициализации.
Для быстрой свертки, основанной на БПФ, характерны жесткие требования к порядку согласованного фильтра – только степень двойки.
ВЫЧИСЛЕНИЕ
АДАПТИВНОГО ПОРОГА
Для принятия решения о наличии в сигнале искомого синхроимпульса необходимо определить критерий, который с достаточной вероятностью подтвердит наличие синхронизирующей последовательности. Наиболее распространенный метод – оценка отношения мощности сигнала на выходе согласованного фильтра к мощности входного сигнала при условии, что входной сигнал является смесью полезного сигнала и аддитивного шума с нормальным распределением и нулевым средним.
Мощность сигнала на выходе согласованного фильтра определяется выражением:
(3)
Мощность входного сигнала:
, (4)
где: T – оцениваемая мощность, R – размер окна, в котором оценивается мощность шума, X – отсчеты входного сигнала, Re и Im – действительная и мнимая части сигнала.
Условием наличия сигнала в отсчете с номером n является превышение порога: , где k – масштабирующий коэффициент, который подбирается в зависимости от требуемых вероятностей обнаружения и ложного обнаружения.
Квадраты компонентов входного сигнала из (4) можно получить на проходе в аппаратных каналах БПОС, используя аппаратные квадраторы, которые работают в кластерах с КИХ-фильтрами.
Сглаживание сигнала с заданным окном выполняется на векторно-матричном узле NMC3 с применением функции свертки с единичными коэффициентами, реализуя алгоритм скользящего среднего.
ПРОГРАММНЫЙ КОРРЕЛЯТОР
На базе СБИС 1879ВЯ1Я можно реализовать устройство слежения за постоянно излучаемыми циклическими ШПС. Слежение за сигналами используется в навигационных приемниках для постоянной оценки характеристик сигнала: смещение несущей частоты (доплеровское смещение частоты), фаза несущего колебания, задержка дальномерного кода, отношение сигнал/шум и пр.
Здесь осуществляется корреляционная обработка. В состав СБИС 1879ВЯ1Я не входят аппаратные корреляторы, вся обработка выполняется на ядрах NMC3.
Работа коррелятора определяется выражением:
, (5)
где: Y – результат корреляции, X – сигнал или вектор данных, H – эталонный сигнал или эталонный вектор.
Для проведения корреляции необходимо сформировать эталонный вектор и выполнить скалярное произведение эталонного вектора и вектора данных.
Для ШПС эталонный вектор формируется из модулирующей ПСП со значениями ±1, которая циклически сдвигается в соответствии с задержкой. Для получения требуемого эталонного вектора можно воспользоваться специальным устройством – переупаковщиком Permutation Unit (PU), который входит в состав NMC3. На рис. 8 показана выборка вектора с заданной задержкой. Вместе с выборкой можно переупаковать вектор. Например, в памяти СБИС можно хранить ПСП в виде упакованных битов, а выбор вектора с заданной позиции выполнить переупаковщиком с одновременной распаковкой в нужный формат. На рис. 8 показана схема корреляции для комплексных данных по 32 бита на компонент, длина ПСП – 64, распаковка производится в двухбитовое представление.
Производительность рассматриваемого алгоритма при оптимальном размещении данных в памяти составляет ~1 такт NMC3 на один комплексный отсчет.
Таким образом, рассмотрены различные подходы к решению задачи выделения синхроимпульса из непрерывного потока данных. В зависимости от длины модулирующей последовательности (порядка согласованного фильтра), целесообразно выбирать тот или иной метод обработки (табл. 2), возможны смешанные варианты, когда часть действий выполняется на аппаратном КИХ-фильтре, а часть – на векторно-матричном узле NMC3.
ЛИТЕРАТУРА
1. Варакин Л. Е. Системы связи с шумоподобными сигналами. – М.: Радио и связь. Редакция литературы по радиотехнике, 1985.
2. ЗАО НТЦ «Модуль». Микросхема интегральная 1879ВЯ1Я. Руководство по эксплуатации.
3. Черников В., Виксне П., Шелухин А. и др. Семейство процессоров обработки сигналов с векторно-матричной архитектурой NeuroMatrix // Электронные компоненты. 2006. № 6. С. 79–84.
4. Богнер Р., Константинидис А. Введение в цифровую фильтрацию. – М.: Мир, 1976.
5. Мушкаев С. В. Высокопроизводительные дискретные преобразования на процессорах Neuromatrix с ядром NMC3. https://www.module.ru/upload/images/14047415321404739356ot_2014_2_107-112.pdf
Отзывы читателей