Документация Engee

FIR Rate Conversion

Полифазный преобразователь частоты дискретизации на базе КИХ-фильтра.

fir rate conversion

Описание

Блок FIR Rate Conversion выполняет эффективное полифазное преобразование частоты дискретизации с использованием рационального коэффициента вдоль первого измерения. Блок рассматривает каждый столбец входного сигнала как отдельный канал и передискретизирует данные в них независимо друг от друга.

Концептуально преобразователь частоты объединяет КИХ-интерполятор и КИХ-дециматор. Представленная далее схема содержит элемент повышения частоты, который объединяет в себе реконструкционный и сглаживающий фильтры, а также элемент понижения частоты.

Преобразователь частоты выполняет следующие действия:

  • Повышает частоту дискретизации входных данных до более высокой, путем добавления нулей между входными выборками.

  • Пропускает дискретизированные данные через КИХ-фильтр.

  • Снижает частоту дискретизации отфильтрованных данных до более низкой, отбрасывая последовательных выборок, следующих за каждой выборкой, которую сохраняет блок.

fir rate conversion 1 ru

Обратите внимание, что реальный алгоритм блока выполняется с использованием полифазного разложения, что более эффективно по сравнению с концепцией, представленной выше. Более подробная информация приведена в разделе Алгоритмы.

Порты

Вход

In — входной сигнал
скаляр | вектор | матрица

Входной сигнал может быть задан в виде скаляра, вектора или матрицы размером на . В последнем случае столбцы входного сигнала представляют независимых каналов.

Более подробную информацию см. в разделе Обработка на основе кадров.

Типы данных: Float32, Float64, Int8, Int16, Int32, Int64, UInt8, UInt16, UInt32, UInt64

Поддержка комплексных чисел: Да

Выход

Out — преобразованный сигнал
скаляр | вектор | матрица

Выходные данные после преобразования частоты могут быть представлены в виде скаляра, вектора или матрицы.

Поведение блока зависит от значения параметра Rate options:

  • Enforce single-rate processing — блок сохраняет частоту дискретизации входного сигнала, но преобразует размерность таким образом, что размер канала в выходном сигнале отличается в раз относительно входного. Выход имеет верхнюю границу размера на для входа размером на .

  • Allow multirate processing — блок децимирует сигнал таким образом, чтобы частота дискретизации выходного сигнала была в раз больше частоты дискретизации входного. Размер выходного кадра такой же, как и размер входного кадра, но при этом частота дискретизации .

Все блоки, подключенные к выходу, работают на частоте дискретизации , а все блоки, подключенные к входу, работают на частоте дискретизации .

Типы данных: Float32, Float64, Int8, Int16, Int32, Int64, UInt8, UInt16, UInt32, UInt64

Поддержка комплексных чисел: Да

Параметры

Coefficient source — способ задания коэффициентов фильтра
Dialog parameters (по умолчанию)

Если параметр имеет значение Dialog parameters, то коэффициенты фильтра задаются в окне настроек параметров.

Interpolation factor — коэффициент интерполяции
3 (по умолчанию) | положительный скаляр

Укажите целочисленный коэффициент . Блок увеличивает частоту дискретизации входной последовательности в соответствии с этим коэффициентом перед фильтрацией.

Зависимости

Чтобы использовать этот параметр, установите для параметра Coefficient source значение Dialog parameters.

Типы данных: Int8, Int16, Int32, Int64

FIR filter coefficients — коэффициенты низкочастотного КИХ-фильтра
[0 -0.000129061486199961 -0.000228040316280948 0 0.000554613738572437 0.000802607430267054 0 -0.00152912350278902 -0.00203638780675590 0 0.00342230705979440 0.00433928347039265 0 -0.00673109372352446 -0.00825637814441869 0 0.0121125402586868 0.0145130044012328 0 -0.0204721583515830 -0.0241392529239787 0 0.0332125142618354 0.0388230898504630 0 -0.0529640018790903 -0.0619837024555044 0 0.0860610417481775 0.102712774109103 0 -0.154048515452570 -0.197567026018057 0 0.408837525145054 0.824655115145336 1 0.824655115145336 0.408837525145054 0 -0.197567026018057 -0.154048515452570 0 0.102712774109103 0.0860610417481775 0 -0.0619837024555044 -0.0529640018790903 0 0.0388230898504630 0.0332125142618354 0 -0.0241392529239787 -0.0204721583515830 0 0.0145130044012328 0.0121125402586868 0 -0.00825637814441869 -0.00673109372352446 0 0.00433928347039265 0.00342230705979440 0 -0.00203638780675590 -0.00152912350278902 0 0.000802607430267054 0.000554613738572437 0 -0.000228040316280948 -0.000129061486199961] (по умолчанию) | вектор

Укажите коэффициенты КИХ-фильтра по убыванию от .

Зависимости

Чтобы использовать этот параметр, установите для параметра Coefficient source значение Dialog parameters.

Типы данных: Int8, Int16, Int32, Int64

Поддержка комплексных чисел: Да

Decimation factor — коэффициент децимации
2 (по умолчанию) | положительный скаляр

Укажите целочисленный коэффициент . Блок уменьшает частоту дискретизации входной последовательности в соответствии с этим коэффициентом после фильтрации.

Зависимости

Чтобы использовать этот параметр, установите для параметра Coefficient source значение Dialog parameters.

Типы данных: Float32, Float64, Int8, Int16, Int32, Int64, UInt8, UInt16, UInt32, UInt64

Rate options — обеспечить односкоростную или разрешить многоскоростную обработку
Enforce single-rate processing (по умолчанию) | Allow multirate processing

Укажите, какую обработку использовать. Варианты для выбора:

  • Enforce single-rate processing — размер выходного кадра равен размеру входного кадра , умноженному на , где – коэффициент интерполяции, а — коэффициент децимации.

.

Частота дискретизации выходного сигнала равна частоте дискретизации входного сигнала:

.

  • Allow multirate processing — размер выходного кадра равен размеру входного кадра:

.

Частота дискретизации выходного сигнала равна частоте дискретизации входного сигнала, умноженной на :

.

Все блоки, подключенные к выходу, работают на частоте дискретизации , а все блоки, подключенные к входу, работают на частоте дискретизации .

Allow arbitrary frame length for fixed-size input signals — разрешить произвольную длину кадра для входных сигналов фиксированного размера
выключено (по умолчанию) | включено

Укажите, могут ли входные сигналы фиксированного размера (размер которых не меняется во время симуляции) быть преобразованы к входному сигналу с произвольной длиной кадра, в этом случае длина входного кадра не обязательно должна быть кратна коэффициенту децимации.

Для входных сигналов фиксированного размера:

  • Установите флажок Allow arbitrary frame length for fixed-size input signals, если длина входного кадра сигнала не обязательно должна быть кратна коэффициенту децимации. В том случае, если первая размерность входного сигнала не кратна коэффициенту децимации, то на выходе обычно получается сигнал переменного размера. Следовательно, для поддержки входных сигналов произвольного размера блок должен также поддерживать операции с сигналами переменного размера, что достигается путем установки флажка Allow arbitrary frame length for fixed-size input signals.

  • Снимите флажок Allow arbitrary frame length for fixed-size input signals, если длина входного кадра должна быть кратна коэффициенту децимации.

Зависимости

Чтобы использовать этот параметр, установите для параметра Rate options значение Enforce single-rate processing.

Подробнее

Задание коэффициентов КИХ-фильтра

В параметре FIR filter coefficients необходимо задать коэффициенты числителя КИХ-фильтра в виде вектора.

Передаточная функция КИХ-фильтра задается как:

Вектор коэффициентов должен иметь длину, превышающую коэффициент интерполяции ( ). КИХ-фильтр должен быть фильтром нижних частот с нормированной частотой среза не более . Блок внутренне инициализирует все состояния фильтра нулем.

Задание частоты выборки

Этот раздел применим только к режиму односкоростной обработки, когда для параметра Rate options установлено значение Enforce single-rate processing.

Частота дискретизации блока FIR Rate Conversion задается с помощью параметров Decimation factor и Interpolation factor. Для входной матрицы на параметры Decimation factor и Interpolation factor должны удовлетворять следующим требованиям:

  • и должны быть взаимно простыми числами. То есть, отношение не может быть сведено к отношению меньших целых чисел.

  • , где и — целые размеры кадров на входе и выходе соответственно. Можно удовлетворить второе требование, установив Decimation factor равным размеру кадра на входе . В этом случае размер кадра на выходе будет равен Interpolation factor .

Изменяя размер кадра таким образом, блок способен поддерживать период кадра постоянным ( ) и достичь желаемого преобразования периода выборки, такого, что

где – период выборки на выходе.

На рисунке ниже показано, как блок FIR Rate Conversion преобразует входной сигнал размерностью 4 на 1 с периодом выборки 3/4 в выходной сигнал размерностью 3 на 1 с периодом выборки 1. Период кадра ( ), равный 3, остается постоянным. Значения параметров для этого примера:

  • Interpolation factor имеет значение 3;

  • Decimation factor имеет значение 4;

  • Rate options имеет значение Enforce single-rate processing.

fir rate conversion 2 ru

Обработка на основе кадров

Блок FIR Rate Conversion выполняет повторную выборку каждого столбца входного сигнала по времени. В этом режиме блок может выполнять как односкоростную, так и многоскоростную обработку. Можно использовать параметр Rate options, чтобы указать, как блок будет пересчитывать входные данные:

  • Если для параметра Rate options установлено значение Enforce single-rate processing, то входные и выходные данные блока имеют одинаковую частоту дискретизации. Чтобы передискретизировать выход при сохранении частоты дискретизации входа, блок преобразует данные в каждом столбце входа так, чтобы длина кадра выхода имела верхнюю границу размера , где — коэффициент интерполяции, указанный в параметре Interpolation factor, — длина кадра входа, а — коэффициент децимации, указанный в параметре Decimation factor.

В этом режиме, если на вход поступает сигнал фиксированного размера (длина кадра не меняется во время симуляции) и установлен флажок Allow arbitrary frame length for fixed-size input signals, то длина входного кадра может быть произвольной и не обязательно должна быть кратна коэффициенту децимации. Если флажок Allow arbitrary frame length for fixed-size input signals не установлен, то длина входного кадра должна быть кратна коэффициенту децимации.

  • Если для параметра Rate options установлено значение Allow multirate processing, то входные и выходные данные имеют одинаковый размер, но частота дискретизации выходного сигнала в раз больше, чем входного. В этом режиме блок обрабатывает входную матрицу на как независимых каналов. Блок децимирует каждый столбец входного сигнала по времени, сохраняя размер кадра постоянным и делая период выходного кадра ( ) в раз больше периода входного кадра ( ).

Алгоритмы

Преобразование частоты с КИХ-фильтром можно эффективно выполнить, опираясь на полифазное представление.

Чтобы перейти к полифазному представлению, начнем с определения передаточной функции КИХ-фильтра, который представляет собой комбинацию реконструкционного и сглаживающего фильтра:

где — это длина КИХ-фильтра.

Можно перестроить это уравнение следующим образом:

где — это количество полифазных компонентов, это значение равно коэффициенту интерполяции, который задается в окне настроек параметров.

Можно записать это уравнение в виде:

где , , …​, — это полифазные компоненты КИХ-фильтра .

Концептуально, преобразователь частоты с КИХ-фильтром содержит элемент повышения частоты дискретизации, за которым следует комбинированный КИХ-фильтр , за которым следует элемент понижения частоты дискретизации.

fir rate conversion 1 ru

Заменим его полифазным представлением.

fir rate conversion 3

Здесь представлено тождество для многомерной интерполяции.

fir rate conversion 4 ru

Применение тождества для интерполяции перемещает операцию добавления нулевых выборок (операцию повышения частоты) после операции фильтрации. Этот ход позволяет фильтровать сигнал с меньшей скоростью.

fir rate conversion 5

Можно заменить элемент повышения частоты дискретизации, блок задержки и сумматор коммутационным переключателем. Чтобы учесть последующий элемент понижения частоты дискретизации, переключатель перемещается с шагом . Переключатель получает первую выборку из ветви 0 и перемещается против часовой стрелки, каждый раз пропуская ветвь.

В качестве примера рассмотрим преобразователь скорости с , установленным на 5, и , установленным на 3. Полифазные компоненты: , , , , и . Коммутатор запускается на первой ветви 0, пропускает ветви 1 и 2, получает следующий образец из ветви 3, затем пропускает ветви 4 и 0, получает следующий образец из ветви 2 и так далее. Последовательность ветвей, из которых коммутатор получает выборку данных, составляет [0, 3, 1, 4, 2, 0, 3, 1, …​.].

Таким образом, в процессе преобразования частоты сначала к входным данным применяется коэффициент интерполяции , а затем используется коммутатор для вычленения только 1 из М выборок данных, что эффективно учитывает коэффициент децимации . Итоговая частота дискретизации на выходе преобразователя равна .

fir rate conversion 6 ru

Ссылки

[1] Orfanidis, Sophocles J. Introduction to Signal Processing. Upper Saddle River, NJ: Prentice-Hall, 1996.

Дополнительные возможности

Генерация Си кода: Да