EngeeDSP.ChannelSynthesizer
Набор фильтров для синтеза полифазного БПФ.
| Библиотека |
|
Описание
Системный объект EngeeDSP.ChannelSynthesizer объединяет несколько узкополосных сигналов в широкополосный сигнал, используя набор фильтров для синтеза на основе быстрого преобразования Фурье (БПФ). Набор фильтров использует прототип фильтра нижних частот и реализован с помощью полифазной структуры. Коэффициенты фильтра можно задать напрямую или через параметры проектирования.
Чтобы объединить нескольких узкополосных сигналов в широкополосный сигнал, выполните следующие действия:
-
Создайте объект EngeeDSP.ChannelSynthesizer и установите его свойства.
-
Вызовите объект с аргументами, как если бы это была функция.
Чтобы узнать подробнее о том, как работать с системными объектами, см. Системные объекты Engee.
Синтаксис
Создание
-
synthesizer = EngeeDSP.ChannelSynthesizer()— создает системный объект синтезатора со свойствами, заданными по умолчанию. -
synthesizer = EngeeDSP.ChannelSynthesizer(Name=Value)— создает системный объект синтезатора с заданными свойствами в виде парыName=Value, гдеName— имя свойства, аValue— соответствующее значение. Можно указать несколько пар «имя-значение», порядок пар не имеет значения. Неуказанные свойства сохраняют свои значения по умолчанию.Пример:
# создание системного объекта с затуханием в полосе задерживания 140 synthesizer = EngeeDSP.ChannelSynthesizer(StopbandAttenuation = 140)
Аргументы
Входные аргументы
#
input —
узкополосные сигналы
матрица | трехмерный массив
Details
Узкополосные сигналы, заданные как матрица или трехмерный массив. Каждый узкополосный сигнал хранится в виде столбца во входном сигнале. Количество столбцов во входном сигнале соответствует количеству частотных полос набора фильтров. Если входной сигнал трехмерный, каждая матрица соответствует отдельному каналу. Если — количество частотных полос, а input представляет собой матрицу на , то выходной сигнал synthOut имеет размеры на . Если input имеет размеры на на , то synthOut имеет размеры на .
Этот объект принимает входные данные переменного размера, то есть после блокировки объекта можно изменять размер каждого входного канала. Количество каналов изменить нельзя.
| Типы данных |
|
| Поддержка комплексных чисел |
Да |
Выходные аргументы
#
synthOut —
объединенный широкополосный сигнал
матрица | трехмерный массив
Details
Объединенный широкополосный сигнал, возвращаемый в виде матрицы или трехмерного массива. Если — количество частотных полос, а input представляет собой матрицу размером на , то выходной сигнал synthOut имеет размеры на . Если input имеет размеры на на , то synthOut имеет размеры на .
| Типы данных |
|
| Поддержка комплексных чисел |
Да |
Свойства
# LowpassCoefficients — коэффициенты прототипа фильтра нижних частот
Details
Коэффициенты прототипа фильтра нижних частот, заданные как вектор-строка. Вектор коэффициентов по умолчанию получается с помощью функции rcosdesign(0.25, 6, 8, "sqrt"). Для каждой полосы частот должен быть как минимум один коэффициент. Если длина фильтра нижних частот меньше количества полос частот, объект дополняет коэффициенты нулями.
Если задать комплексные коэффициенты, объект разработает прототип фильтра, центрированный на ненулевой частоте, также известный как полосовой фильтр. Модулированные версии прототипа полосового фильтра отображаются относительно прототипа фильтра и охватывают частотный диапазон .
Зависимости
Чтобы использовать это свойство, установите для свойства Specification значение "Coefficients".
#
NumTapsPerBand —
количество коэффициентов фильтра на частотную полосу
Real number
Details
Количество коэффициентов фильтра, используемых каждой полифазной ветвью, заданное как положительное целое число. Количество полифазных ветвей соответствует количеству частотных полос. Общее количество коэффициентов фильтра для прототипа фильтра нижних частот определяется произведением количества частотных полос и значением NumTapsPerBand. При заданном затухании в полосе задерживания увеличение количества отводов на полосу сужает ширину перехода фильтра. В результате увеличивается полезная полоса пропускания для каждой частотной полосы за счет увеличения вычислительных затрат.
Зависимости
Чтобы использовать это свойство, установите для свойства Specification значение "Number of taps per band and stopband attenuation".
#
Specification —
параметры проектирования или коэффициенты фильтра
String
Details
Параметры проектирования фильтра или коэффициенты фильтра, заданные одним из следующих способов:
-
"Number of taps per band and stopband attenuation"— параметры проектирования фильтра задаются с помощью свойств NumTapsPerBand и StopbandAttenuation. -
"Coefficients"— коэффициенты фильтра задаются непосредственно с помощью свойства LowpassCoefficients.
#
StopbandAttenuation —
затухание в полосе задерживания
Real number
Details
Затухание в полосе задерживания низкочастотного фильтра, заданное как положительное вещественное число в дБ. Это значение контролирует максимальное количество наложения спектров от одной полосы частот к другой. При увеличении затухания в полосе задерживания пульсации в полосе пропускания уменьшаются.
Зависимости
Чтобы использовать это свойство, установите для свойства Specification значение "Number of taps per band and stopband attenuation".
# InterpolationFactor — коэффициент интерполяции
Details
Коэффициент интерполяции , заданный одним из следующих способов:
-
"Number of frequency bands"— при изменении количества частотных полос коэффициент интерполяции изменяется автоматически. -
Положительное целое число, большее или равное количеству частотных полос .
Количество частотных полос равно количеству каналов во входном сигнале. Если коэффициент интерполяции равен количеству частотных полос , то отношение , и синтезатор называется синтезатором с критическим дискретизированием каналов.
Если больше , то отношение должно быть целым числом.
Дополнительно
Набор фильтров для синтеза
Details
Набор фильтров для синтеза состоит из ряда параллельных полосовых фильтров, которые объединяют несколько входных узкополосных сигналов в один широкополосный сигнал . Входные узкополосные сигналы находятся в основной полосе частот. Каждый узкополосный сигнал интерполируется до более высокой частоты дискретизации с помощью повышающего дискретизатора, а затем фильтруется низкочастотным фильтром. Комплексная экспоненциальная функция, следующая за низкочастотным фильтром, центрирует сигнал основной полосы частот вокруг .
Прототип фильтра нижних частот
Details
Для эффективной реализации набора фильтров для синтеза синтезатор использует прототип фильтра нижних частот.
Прототип фильтра нижних частот имеет импульсную характеристику , нормированную двустороннюю полосу пропускания и частоту среза . — количество частотных полос, то есть ветвей набора фильтров для синтеза. Это значение соответствует длине БПФ, используемой набором фильтров. может быть большим, порядка 2048 или более. Затухание в полосе задерживания определяет минимальный уровень помех (искажение контуров) от одной полосы частот к другой. Пульсации в полосе пропускания должны быть малыми, чтобы входной сигнал не искажался в полосе пропускания.
Прототип фильтра нижних частот моделирует первую ветвь набора фильтров. Остальные ветви моделируются фильтрами, которые являются модулированными версиями прототипа фильтра. Коэффициент модуляции определяется следующим уравнением:
Выход каждого полосового фильтра формирует определенную часть широкополосного сигнала. Выходы всех ветвей суммируются для формирования широкополосного сигнала .
Алгоритмы
Реализация с использованием полифазной структуры
Details
Набор фильтров для синтеза может быть эффективно реализован с использованием полифазной структуры. Более подробную информацию о наборе фильтров для синтеза см. в разделе Набор фильтров для синтеза.
Для получения полифазной структуры начнем с передаточной функции прототипа фильтра нижних частот:
где — длина прототипа фильтра.
Это уравнение можно переформулировать следующим образом:
где — количество полифазных компонентов, равное коэффициенту интерполяции.
Это уравнение можно записать следующим образом:
где — полифазные компоненты прототипа фильтра нижних частот .
Остальные фильтры в наборе фильтров , где , являются модулированными версиями этого прототипа фильтра .
Передаточную функцию -го модулированного полосового фильтра можно записать как . Заменив на , получим
где — длина -го фильтра.
В полифазной форме уравнение выглядит следующим образом:
Для всех
Здесь приведено многоскоростное замечательное тождество для интерполяции.
Для наглядности рассмотрим первую ветвь набора фильтров, содержащую фильтр нижних частот.
Заменим
После применения замечательного тождества для интерполяции можно заменить задержки, коэффициент интерполяции и сумматор коммутационным устройством.
Для всех
Матрица слева — это матрица обратного дискретного преобразования Фурье (ОДПФ). С помощью матрицы ОДПФ эффективная реализация набора фильтров на основе прототипа низкочастотного фильтра выглядит следующим образом.
Литература
-
Harris, Fredric J, Multirate Signal Processing for Communication Systems, Prentice Hall PTR, 2004.
-
Harris, F.J., Chris Dick, and Michael Rice. «Digital Receivers and Transmitters Using Polyphase Filter Banks for Wireless Communications.» IEEE® Transactions on Microwave Theory and Techniques. 51, no. 4 (2003).