Интерполяция сигнала с помощью каскадного интеграторно-гребенчатого фильтра
Панель системных инструментов DSP/Фильтрация/Многоскоростные фильтры
Системная панель инструментов DSP Поддержка HDL/Фильтрация
Блок интерполяции CIC выполняет увеличение частоты дискретизации (интерполяцию) входного сигнала на целочисленный коэффициент. каскадные интеграторно-гребенчатые (CIC) фильтры представляют собой класс линейных фазовых КИХ фильтров, которые состоят из гребенчатой части и интеграторной части.
Блок интерполяции CIC требует лицензии Fixed-Point Designer™.
Port_1 - Входной сигналВвод данных, заданный как вектор или матрица. Если входной сигнал является фиксированной точкой, он должен быть целым числом со знаком или фиксированной точкой со знаком с наклоном мощности два и нулевым смещением.
Типы данных: int8 | int16 | int32 | int64 | fixed point
Поддержка комплексного номера: Да
Port_1 - Интерполированный выход CICРезультат интерполяции CIC, возвращаемый в виде вектора или матрицы. Тип данных вывода определяется настройками в диалоговом окне блока. Сложность выходных данных совпадает со сложностью входных данных. Число выходных строк равно R✕Num, где R - коэффициент интерполяции, а Num - число входных строк.
Типы данных: int8 | int16 | int32 | int64 | fixed point
Поддержка комплексного номера: Да
Coefficient source - Источник информации о фильтреDialog parameters (по умолчанию) | Filter objectИсточник информации фильтра, указанный как один из следующих:
Dialog parameters - Введите информацию о фильтре, например, коэффициент интерполяции (R), дифференциальную задержку (M) и число секций (N), в диалоговом окне блока.
Filter object - Укажите фильтр с помощью dsp.CICInterpolator object™ системы.
Interpolation factor (R) - Коэффициент интерполяции2 (по умолчанию) | целое числоКоэффициент интерполяции фильтра, заданный как целое число больше 1.
Этот параметр появляется, если для параметра Источник коэффициента задано значение Dialog parameters.
Differential Delay (M) - Дифференциальная задержка1 (по умолчанию) | положительное целое числоУкажите дифференциальную задержку гребенчатой части фильтра, M, как положительное целое число. Дополнительные сведения см. в разделе Фильтр интерполяции CIC.
Этот параметр появляется, если для параметра Источник коэффициента задано значение Dialog parameters.
Number of sections (N) - Количество секций фильтра2 (по умолчанию) | положительное целое числоУкажите количество секций фильтра. Указанное число определяет количество сечений в гребенчатой части фильтра или в интеграторной части фильтра. Это значение не представляет общее количество секций в комбинированных частях гребенки и интегратора.
Этот параметр появляется, если для параметра Источник коэффициента задано значение Dialog parameters.
Data type specification mode - Укажите длину слова и длину дроби секций фильтра и выходных данныхFull precision (по умолчанию) | Minimum section word lengths | Specify word lengths | Binary point scalingВыберите способ указания длины слова с фиксированной точкой и длины дроби секций фильтра и/или вывода:
Full precision - Длины слов и дробей секций и выходов фильтра выбираются автоматически. Длина слова выходного и последнего раздела (WL) устанавливается равной:
NR)) + I
где,
I -- Длина входного слова
M -- Дифференциальная задержка
N -- Количество секций
R -- коэффициент интерполяции
Другие длины слова раздела задаются так, чтобы соответствовать росту битов, как описано в работе Хогенауэра [1]. Для всех длин дробей задана входная длина дроби.
Minimum section word lengths - укажите длину слова на выходе фильтра в параметре Длина выходного слова. Длины слов секций фильтра устанавливаются так же, как в Full precision режим.
Длины долей сечения задаются в соответствии с длиной входной фракции. Длина выходной дроби устанавливается равной длине входной дроби минус разность между длиной последнего слова секции и длиной выходного слова.
Specify word lengths - Укажите длины слов в секциях фильтра и выходные значения в параметрах Длина слова сечения и Длина выходного слова. Длины дроби секций фильтра задаются так, чтобы разброс между длиной слова и длиной дроби был таким же, как в режиме полной точности. Длина выходной дроби устанавливается равной длине входной дроби минус разность между длиной последнего слова секции и длиной выходного слова.
Binary point scaling - Укажите длины слов и дробей секций фильтра и выходные данные в параметрах Длины слов сечений, Длины дробей сечений, Длина слова вывода и Длина дробей вывода.
Этот параметр появляется, если для параметра Источник коэффициента задано значение Dialog parameters.
Section word lengths - Длина слов секций фильтра16 16 16 16] (по умолчанию) | скаляр | вектор строкиДлины слов секций фильтра, заданные как скаляр или вектор длиной, равной 2N, где N - количество секций фильтра. Длина слова сечения должна находиться в диапазоне [2, 128].
Этот параметр появляется, если для параметра Источник коэффициента задано значение Dialog parameters и режим спецификации типа данных для Specify word lengths или Binary point scaling.
Section fraction lengths - Фракционная длина секций фильтра0 (по умолчанию) | целое числоДлины дробей сечений фильтра, заданные как целое число.
Этот параметр появляется, если для параметра Источник коэффициента задано значение Dialog parameters и режим спецификации типа данных для Binary point scaling.
Output word length - Длина слова выхода фильтра32 (по умолчанию) | целое числоДлина слова на выходе фильтра, заданная как целое число в диапазоне [2, 128].
Этот параметр появляется, если для параметра Источник коэффициента задано значение Dialog parameters и режим спецификации типа данных для любой опции, кроме Full precision.
Output fraction length - Длина фракции на выходе фильтра0 (по умолчанию) | целое числоДлина дроби выходного сигнала фильтра, заданная как целое число.
Этот параметр появляется, если для параметра Источник коэффициента задано значение Dialog parameters и режим спецификации типа данных для Binary point scaling.
Input processing - Метод ввода обработкиColumns as channels (frame based) (по умолчанию) | Elements as channels (sample based)Укажите, как блок должен обрабатывать входные данные. Можно задать для этого параметра одну из следующих опций:
Columns as channels (frame based) - Блок обрабатывает каждый столбец входа как отдельный канал. В этом режиме блок всегда выполняет односкоростную обработку.
Elements as channels (sample based) - Блок обрабатывает каждый элемент входа как отдельный канал. В этом режиме вход в блок должен быть скаляром или вектором. Можно использовать параметр Rate options, чтобы указать, выполняет ли блок односкоростную или многоскоростную обработку.
Rate options - Правило обработки ставокEnforce single-rate processing (по умолчанию) | Allow multirate processingУкажите правило обработки скорости для блока. Можно выбрать один из следующих вариантов:
Enforce single-rate processing - Блок поддерживает частоту дискретизации входного сигнала.
Allow multirate processing - Блок выдает выходной сигнал с частотой дискретизации, которая в R раз быстрее, чем входная частота дискретизации. Чтобы выбрать эту опцию, необходимо задать для параметра обработки ввода значение Elements as channels (sample based).
Filter object - Объект многоскоростного фильтраdsp.CICInterpolator System objectУкажите имя объекта многоскоростного фильтра, который должен быть реализован блоком. Необходимо указать фильтр как dsp.CICInterpolator Системный объект.
Системный объект можно определить в диалоговом окне блока или в переменной рабочего пространства MATLAB ®.
Сведения о создании системных объектов см. в разделе Определение основных системных объектов.
Этот параметр появляется, если для параметра Источник коэффициента задано значение Filter object.
View Filter Response - Просмотр ответа фильтраЭта кнопка открывает инструмент визуализации фильтра (fvtool) из продукта Toolbox™ обработки сигналов и отображает отклик фильтра, определенного в блоке. Дополнительные сведения о FVTool см. в документации панели инструментов обработки сигналов.
Примечание
Если фильтр указан в параметре Объект фильтра, необходимо применить фильтр, нажав кнопку Применить, прежде чем использовать кнопку Просмотр ответа фильтра.
Типы данных |
|
Прямой проход |
|
Многомерные сигналы |
|
Сигналы переменного размера |
|
Обнаружение пересечения нулей |
|
CIC-фильтры представляют собой оптимизированный класс линейных фазовых КИХ-фильтров, состоящих из гребенчатой части и интеграторной части.
Фильтр интерполяции CIC концептуально задается устройством повышающей дискретизации, за которым следует односкоростной фильтр CIC H (z), который является низкочастотным антиизображающим фильтром. Интерполяционный фильтр CIC увеличивает частоту дискретизации входного сигнала на целочисленный коэффициент, используя каскадный интеграторно-гребенчатый фильтр (CIC).

В более эффективной реализации односкоростной фильтр CIC H (z) факторизируется следующим образом :
(1 − z − 1) N = HCN (z)· HIN (z)
где,
HC - передаточная функция N секций каскадных гребенчатых фильтров, каждая шириной RM.
HI - передаточная функция интеграторной части фильтра, содержащей N ступеней интеграторов.
N - количество секций. Количество секций в фильтре CIC определяется как количество секций в гребенчатой или интеграторной части фильтра. Это значение не представляет общее количество сечений во всем фильтре.
R - коэффициент интерполяции.
M - дифференциальная задержка.
В общей многоскоростной реализации алгоритм применяет благородную идентичность для интерполяции и перемещает коэффициент изменения скорости R для следования за N секциями каскадных гребенчатых фильтров.
Передаточная функция результирующего фильтра задается следующим уравнением:
(1 − z − 1) N.
Блок-схему, показывающую реализацию нескольких скоростей, см. в разделе Алгоритмы.
Интерполяционный фильтр CIC в More About реализуется как каскад из N секций гребенчатых фильтров с последующим изменением скорости на коэффициент R, за которым следуют N секций каскадных интеграторов.

На этой диаграмме показаны две секции каскадных гребенчатых фильтров и две секции каскадных интеграторов. Единичная задержка в интеграторной части фильтра CIC может быть расположена либо в канале прямой связи, либо в канале обратной связи. Эти две конфигурации дают одинаковую частотную характеристику фильтра. Однако числовые выходные сигналы от этих двух конфигураций отличаются из-за задержки. Этот алгоритм помещает единичную задержку в тракт прямой связи интегратора, поскольку она является предпочтительной конфигурацией для реализации ЛПВП.
[1] Hogenauer, E.B. «Экономичный класс цифровых фильтров для децимации и интерполяции» Транзакции IEEE по акустике, обработке речи и сигналов. Том 29, номер 2, 1981, стр. 155-162, 1981.
[2] Цифровая обработка сигналов Meyer-Baese, U. с помощью программируемых на местах логических матриц. Нью-Йорк: Спрингер Верлаг, 2001.
[3] Харрис, Фредрик Дж., многоскоростная обработка сигналов для систем связи. Река Верхнее Седло, Нью-Джерси: Prentice Hall PTR, 2004.
Созданный код зависит от memcpy или memset функции (string.h) при определенных условиях.
HDL Coder™ предоставляет дополнительные опции конфигурации, которые влияют на реализацию HDL и синтезированную логику.
Кодер HDL поддерживает параметры источника коэффициентов Dialog parameters и Filter object.
При использовании AddPipelineRegists регистры размещаются на основе структуры фильтра. Задержка определяется размещением регистра трубопровода.
| Размещение регистра трубопровода | Задержка (такты) |
|---|---|
| Между гребенчатыми ступенями дифференциаторов добавляется регистр трубопровода. | NS, количество секций (на стороне ввода). |
| AddPipelineRegisters | Вставка регистра трубопровода между этапами вычислений в фильтр. См. также AddPipelineRegists (кодер HDL). |
| ConstrainedOutputPipeline | Количество регистров для размещения на выходах путем перемещения существующих задержек в рамках проекта. Распределенная конвейерная обработка не перераспределяет эти регистры. Значение по умолчанию: |
| InputPipeline | Количество входных ступеней трубопровода для вставки в сформированный код. Распределенная конвейерная обработка и конвейерная обработка с ограниченным выходом могут перемещать эти регистры. Значение по умолчанию: |
| OutputPipeline | Количество выходных ступеней трубопровода для вставки в сформированный код. Распределенная конвейерная обработка и конвейерная обработка с ограниченным выходом могут перемещать эти регистры. Значение по умолчанию: |
Векторные и кадровые входы не поддерживаются для генерации кода HDL.
При выборе параметров диалогового окна опция «Фильтровать структуру» Zero-latency interpolator не поддерживается для генерации кода HDL. В раскрывающемся списке «Структура фильтра» выберите Interpolator.
При использовании AddPipelineRegists задержки параллельных путей не выравниваются автоматически. При необходимости добавьте задержки вручную.
Если входной сигнал является фиксированной точкой, он должен быть целым числом со знаком или фиксированной точкой со знаком с наклоном мощности два и нулевым смещением.
dsp.CICCompensationDecimator | dsp.CICCompensationInterpolator | dsp.CICDecimator | dsp.CICInterpolator | dsp.FIRDecimator | dsp.FIRHalfbandDecimator | dsp.FIRHalfbandInterpolator | dsp.FIRInterpolator1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.