Одним из основных элементов пользовательского интерфейса является обнаружитель сигналов навигационной космической аппаратуры системы GPS. Обнаружение требуется в каждом логическом канале, поэтому реализация обнаружителя во многом будет играть определяющую роль в определении требуемых ресурсов FPGA.
В качестве обнаружителя могут выступать, как коррелятор, так и согласованный фильтр (СФ). В обоих случаях качество работы обнаружителя будет зависеть от величины ошибки в определении момента прихода полезного сигнала, однако при использовании СФ эта процедура упрощается т.к. максимум выходного напряжения СФ, соответствующий моменту прихода, всегда с некоторой задержкой будет присутствовать на выходе.
Реализация согласованного фильтра предполагает осуществление свертки входного сигнала с инвертированной копией искомого сигнала. Свертка может выполняться как напрямую, так и методом быстрой свертки. Метод быстрой свертки заключается в том, что последовательности – аргументы свертки подвергаются сначала быстрому преобразованию Фурье, затем перемножаются, а конечный результат получается путем обратного преобразования произведения.
При этом метод быстрой линейно свертки предполагает меньшую вычислительную сложность по сравнению с прямым подходом в случае, если число значений, подлежащих свертке, достаточно велико. В этом случае уменьшается и требование к ресурсам FPGA, что немало важно.
Ниже сравнивается число умножений, требуемых для выполнения свертки с помощью прямого и быстрого методов, выбранное в качестве меры их относительной вычислительной эффективности.
Известно, что для выполнения линейной свертки двух последовательностей длины требуется произвести умножений. Выполнение той же линейной свертки, но с помощью быстрого метода потребует число умножений .
Ниже приведена таблица 3.1, представляющая число требуемых умножений в зависимости от .
Таблица 3.1 – Число действительных умножений, требуемых для выполнения свертки двух N–точечных последовательностей.
Одним из основных элементов пользовательского интерфейса является обнаружитель сигналов навигационной космической аппаратуры системы GPS. Обнаружение требуется в каждом логическом канале, поэтому реализация обнаружителя во многом будет играть определяющую роль в определении требуемых ресурсов FPGA. В качестве обнаружителя могут выступать, как коррелятор, так и согласованный фильтр (СФ). В обоих случаях качество работы обнаружителя будет зависеть от величины ошибки в определении момента прихода полезного сигнала, однако при использовании СФ эта процедура упрощается т.к. максимум выходного напряжения СФ, соответствующий моменту прихода, всегда с некоторой задержкой будет присутствовать на выходе. Реализация согласованного фильтра предполагает осуществление свертки входного сигнала с инвертированной копией искомого сигнала. Свертка может выполняться как напрямую, так и методом быстрой свертки. Метод быстрой свертки заключается в том, что последовательности – аргументы свертки подвергаются сначала быстрому преобразованию Фурье, затем перемножаются, а конечный результат получается путем обратного преобразования произведения. При этом метод быстрой линейно свертки предполагает меньшую вычислительную сложность по сравнению с прямым подходом в случае, если число значений, подлежащих свертке, достаточно велико. В этом случае уменьшается и требование к ресурсам FPGA, что немало важно. Ниже сравнивается число умножений, требуемых для выполнения свертки с помощью прямого и быстрого методов, выбранное в качестве меры их относительной вычислительной эффективности. Известно, что для выполнения линейной свертки двух последовательностей длины требуется произвести умножений. Выполнение той же линейной свертки, но с помощью быстрого метода потребует число умножений . Ниже приведена таблица 3.1, представляющая число требуемых умножений в зависимости от . Таблица 3.1 – Число действительных умножений, требуемых для выполнения свертки двух N–точечных последовательностей.
Из таблицы 3.1 видно, что начиная с N=128, выгоднее использовать быструю свертку, и с дальнейшим ростом размерности преимущество в вычислительных затратах становится все более заметным. С учетом того, что длина C\A-кода равна 1023, а на каждый элемент кода берется два отсчета, требуется свертка двух последовательностей длины 2046. Но для реализации быстрого метода длина должна быть кратна степени двойки. Дополнение нулями в данном случае исказит результат, поэтому следует взять в качестве исходной последовательности – последовательность отсчетов сигнала длиной = 4096, а опорную последовательность с дополнить нулями до этой же длительности. Работа обнаружителя начинается с накопления 4096 отсчетов входного сигнала. В результате быстрой свертки будут получены 1 отсчетов, т.е. 2051 отсчет, соответствующий линейной свертке. После завершения расчета самые старые 2051 отсчета отбрасываются и заменяются очередными отсчетами сигнала, накопленными за время вычисления. |
||||||||||||||||||||||||||||||||
Из таблицы 3.1 видно, что начиная с N=128, выгоднее использовать быструю свертку, и с дальнейшим ростом размерности преимущество в вычислительных затратах становится все более заметным. С учетом того, что длина C\A-кода равна 1023, а на каждый элемент кода берется два отсчета, требуется свертка двух последовательностей длины 2046. Но для реализации быстрого метода длина должна быть кратна степени двойки. Дополнение нулями в данном случае исказит результат, поэтому следует взять в качестве исходной последовательности – последовательность отсчетов сигнала длиной = 4096, а опорную последовательность с дополнить нулями до этой же длительности.
Работа обнаружителя начинается с накопления 4096 отсчетов входного сигнала. В результате быстрой свертки будут получены 1 отсчетов, т.е. 2051 отсчет, соответствующий линейной свертке. После завершения расчета самые старые 2051 отсчета отбрасываются и заменяются очередными отсчетами сигнала, накопленными за время вычисления.