Интерполируйте сигнал с помощью каскадного интегрально-гребенчатого фильтра
DSP System Toolbox/Фильтрация/Многомерные фильтры
Поддержка/фильтрация HDL-файлов DSP System Toolbox
Блок CIC Interpolation выполняет увеличение частоты дискретизации (интерполяцию) входного сигнала на целочисленный коэффициент. каскадные фильтры интегратор-гребень (CIC) являются классом КИХ-фильтров линейной фазы, который состоит из части гребня и части интегратора.
Для блока интерполяции CIC требуется лицензия Fixed-Point Designer™.
Port_1
- Входной сигналВход данных, заданный как вектор или матрица. Если вход является фиксированной точкой, он должен быть подписанным целым числом или подписанной фиксированной точкой с степенью двойки и нулевым смещением.
Типы данных: int8
| int16
| int32
| int64
| fixed point
Поддержка комплексного числа: Да
Port_1
- интерполированный выход CICCIC интерполированный выход, возвращенный как вектор или матрица. Тип данных выхода определяется настройками в диалоговом окне блока. Сложность выхода совпадает с сложностью входа. Количество выхода строк R ✕ Num, где R является фактором интерполяции, а Num - количеством входа строк.
Типы данных: int8
| int16
| int32
| int64
| fixed point
Поддержка комплексного числа: Да
Coefficient source
- Источник информации о фильтреDialog parameters
(по умолчанию) | Filter object
Источник информации о фильтре, указанный как один из следующих:
Dialog parameters
- Введите информацию о фильтре, таком как Interpolation factor (R), Differential delay (M) и Number of sections (N), в диалоговом окне блока.
Filter object
- Задайте фильтр используя dsp.CICInterpolator
Системные object™.
Interpolation factor (R)
- Коэффициент интерполяции2
(по умолчанию) | целое числоКоэффициент интерполяции фильтра, заданный как целое число, больше 1.
Этот параметр появляется, когда вы задаете Coefficient source Dialog parameters
.
Differential Delay (M)
- Дифференциальная задержка1
(по умолчанию) | положительное целое числоЗадайте дифференциальную задержку гребенчатой части фильтра, M, как положительное целое число. Для получения дополнительной информации смотрите Фильтр интерполяции CIC.
Этот параметр появляется, когда вы задаете Coefficient source Dialog parameters
.
Number of sections (N)
- Количество фильтрующих секций2
(по умолчанию) | положительное целое числоУкажите количество сечений фильтра. Заданное количество определяет количество разделов в гребенчатой части фильтра или интеграторной части фильтра. Это значение не представляет общее количество разделов в деталях гребня и интегратора вместе взятых.
Этот параметр появляется, когда вы задаете Coefficient source Dialog parameters
.
Data type specification mode
- Задайте длину слова и длину дроби секций фильтра и выводFull precision
(по умолчанию) | Minimum section word lengths
| Specify word lengths
| Binary point scaling
Выберите, как вы задаете размер слова с фиксированной точкой и длину дроби разделов фильтра и/или вывода:
Full precision
- Для вас автоматически выбираются длина слова и дроби секций фильтра и выходов. Для выхода и последних размеров слова раздела (WL) задано значение:
где,
I -- Вход размера слова
M -- Дифференциальная задержка
N -- Количество разделов
R -- Коэффициент интерполяции
Другие размеры слова раздела предназначены для размещения роста разрядности, как описано в статье Хогенауэра [1]. Все длины дробей заданы как длина входной дроби.
Minimum section word lengths
- Задайте размер слова фильтра, выводимого в параметре Output word length. Размеры слова разделов фильтра заданы так же, как и в Full precision
режим.
Длины дробей сечения заданы как длина входной дроби. Длина выходной дроби устанавливается равной длине входной дроби минус разница между длиной последнего слова раздела и длиной выходного слова.
Specify word lengths
- Задайте размеры слова разделов фильтра и выход в параметрах Section word lengths и Output word length. Длины дробей секций фильтра заданы таким образом, чтобы разброс между размером слова и длиной дроби был таким же, как и в режиме полной точности. Длина выходной дроби устанавливается равной длине входной дроби минус разница между длиной последнего слова раздела и длиной выходного слова.
Binary point scaling
- Указание длин слов и дробей секций фильтра и выход в параметрах Section word lengths, Section fraction lengths, Output word length и Output fraction length.
Этот параметр появляется, когда вы задаете Coefficient source Dialog parameters
.
Section word lengths
- Размер слова разделов фильтра16 16 16 16
] (по умолчанию) | скаляр | вектор-строкаРазмеры слова секций фильтра, заданная в виде скаляра или вектора длины, равной 2 N, где N количество секций фильтра. Раздел размера слова должен находиться в области значений [2, 128].
Этот параметр появляется, когда вы задаете Coefficient source Dialog parameters
и Data type specification mode к любому из Specify word lengths
или Binary point scaling
.
Section fraction lengths
- Длина дробей фильтрующих секций0
(по умолчанию) | целое числоДлины дробей фильтрующих секций, заданные как целое число.
Этот параметр появляется, когда вы задаете Coefficient source Dialog parameters
и Data type specification mode к Binary point scaling
.
Output word length
- Размер слова выходного сигнала фильтра32
(по умолчанию) | целое числоРазмер слова фильтра выхода, заданная в виде целого числа в область значений [2, 128].
Этот параметр появляется, когда вы задаете Coefficient source Dialog parameters
и Data type specification mode к любой опции кроме Full precision
.
Output fraction length
- Длина дроби выходного сигнала фильтра0
(по умолчанию) | целое числоДлина дроби выходного сигнала фильтра, заданная как целое число.
Этот параметр появляется, когда вы задаете Coefficient source Dialog parameters
и Data type specification mode к 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 раза быстрее, чем входная частота выборки. Чтобы выбрать эту опцию, вы должны задать параметр Input processing равным Elements as channels (sample based)
.
Filter object
- Многократный объект фильтраdsp.CICInterpolator
Системный объект
Задайте имя многоскоростного фильтра, который вы хотите реализовать в блоке. Необходимо задать фильтр как dsp.CICInterpolator
Системный объект.
Можно задать Системный объект в диалоговом окне блоков или в MATLAB® переменная рабочей области.
Для получения информации о создании системных объектов см. раздел «Определение основных системных объектов».
Этот параметр появляется, когда вы задаете Coefficient source Filter object
.
View Filter Response
- Просмотр фильтра откликаЭта кнопка открывает Инструмент визуализации фильтра (fvtool
) из Signal Processing Toolbox™ произведения и отображений фильтрующую характеристику фильтра, заданную в блоке. Для получения дополнительной информации о FVTool см. документацию по Signal Processing Toolbox.
Примечание
Если вы задаете фильтр в параметре Filter object, необходимо применить фильтр, нажав кнопку Apply перед использованием кнопки View Filter Response.
Типы данных |
|
Прямое сквозное соединение |
|
Многомерные сигналы |
|
Сигналы переменного размера |
|
Обнаружение пересечения нулем |
|
CIC-фильтры являются оптимизированным классом КИХ-фильтров линейной фазы, состоящим из гребенчатой части и интеграторной части.
Интерполяционный фильтр CIC концептуально задается усилителем, за которым следует один CIC-фильтр скорости, H(z), который является lowpass антиизображающим фильтром. Фильтр интерполяции CIC увеличивает частоту дискретизации входного сигнала на целочисленный коэффициент с помощью каскадного фильтра интегратор-гребень (CIC).
В более эффективной реализации одна скорость CIC-фильтра H(z) факторизирована следующим образом:
где,
H C является передаточной функцией N участков каскадных гребенчатых фильтров, каждый с шириной RM.
H I является передаточной функцией интеграторной части фильтра, содержащей N ступени интеграторов.
N - количество разделов. Количество секций в CIC-фильтре определяется как количество секций в гребенчатой части или интеграторной части фильтра. Это значение не представляет общее количество разделов на протяжении всего фильтра.
R - коэффициент интерполяции.
M - дифференциальная задержка.
В общей многоразовой реализации алгоритм применяет благородные тождества для интерполяции и перемещает коэффициент изменения скорости, R, следовать после N участков каскадных гребенчатых фильтров.
Передаточная функция полученного фильтра задается следующим уравнением:
Для блока схемы, которая показывает многократную реализацию, смотрите Алгоритмы.
Интерполяционный фильтр CIC в More About реализуется как каскад N участков гребенчатых фильтров с последующим изменением скорости коэффициентом R, за которым следуют N участков каскадных интеграторов.
Эта схема показывает две секции каскадных гребенчатых фильтров и две секции каскадных интеграторов. Единичная задержка в фрагменте CIC-фильтра может быть расположена либо в канале с feedforward, либо в пути с обратной связью. Эти два строений дают идентичную частотную характеристику фильтра. Однако числовые выходы этих двух строений отличаются из-за задержки. Этот алгоритм помещает модуль задержку в feedforward пути интегратора, поскольку он является предпочтительным строением для реализации HDL.
[1] Hogenauer, E.B. «Economical Class of Цифровые Фильтры for Decimation and Interpolation» Транзакции IEEE по акустике, речи и обработке сигналов. Том 29, № 2, 1981, с. 155-162, 1981.
[2] Meyer-Baese, U. Digital Signal Processing with Field Programmable Gate Arrays. Нью-Йорк: Springer Verlag, 2001.
[3] Harris, Fredric J., Multirate Signal Processing for Communication Systems. Upper Saddle River, NJ: Prentice Hall PTR, 2004.
Сгенерированный код опирается на memcpy
или memset
функции (string.h
) при определенные обстоятельства.
HDL Coder™ предоставляет дополнительные опции строения, которые влияют на реализацию HDL и синтезированную логику.
HDL Coder поддерживает Coefficient source опции Dialog parameters и Filter object.
При использовании AddPipelineRegisters регистры размещаются на основе структуры фильтра. Размещение регистра трубопровода определяет задержку.
Размещение регистров трубопроводов | Задержка (тактовые импульсы) |
---|---|
Регистр трубопровода добавляется между стадиями гребенки дифференциаторов. | NS , количество секций (на стороне входа). |
AddPipelineRegisters | Вставьте регистр трубопровода между этапами расчета в фильтр. См. также AddPipelineRegisters (HDL Coder). |
ConstrainedOutputPipeline | Количество регистров для размещения на выходах путем перемещения существующих задержек в рамках вашего проекта. Распределённая конвейеризация не перераспределяет эти регистры. Значение по умолчанию является |
InputPipeline | Количество входных этапов конвейера для вставки в сгенерированный код. Распределённая конвейеризация и ограниченная выходная конвейеризация могут перемещать эти регистры. Значение по умолчанию является |
OutputPipeline | Количество выходных этапов конвейера для вставки в сгенерированный код. Распределённая конвейеризация и ограниченная выходная конвейеризация могут перемещать эти регистры. Значение по умолчанию является |
Вектор и кадр не поддерживаются для генерации HDL-кода.
Когда вы выбираете Dialog parameters, опция Filter Structure Zero-latency interpolator
не поддерживается для генерации HDL-кода. В раскрывающемся списке Filter Structure выберите Interpolator
.
Когда вы используете AddPipelineRegisters, задержки в параллельных путях не сбалансированы автоматически. Вручную добавляйте задержки, где требуется ваш проект.
Если вход является фиксированной точкой, он должен быть подписанным целым числом или подписанной фиксированной точкой с степенью двойки и нулевым смещением.
dsp.CICCompensationDecimator
| dsp.CICCompensationInterpolator
| dsp.CICDecimator
| dsp.CICInterpolator
| dsp.FIRDecimator
| dsp.FIRHalfbandDecimator
| dsp.FIRHalfbandInterpolator
| dsp.FIRInterpolator
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.