Пропустите входной сигнал в частотный диапазон
DSP System Toolbox/Фильтрация/Реализация фильтра
Блок Frequency-Domain FIR Filter реализует фильтрацию на основе частотного диапазона, быстрого преобразования Фурье (FFT), чтобы фильтровать потоковый входной сигнал. Во временном интервале операция фильтрации включает свертку между входом и импульсной характеристикой фильтра с конечной импульсной характеристикой (КИХ). В частотный диапазон операция фильтрации включает умножение преобразования Фурье входа и преобразования Фурье импульсной характеристики. Фильтрация частотного диапазона становится более эффективной, чем фильтрация во временной области, когда импульсная характеристика увеличивается дольше. Можно задать коэффициенты фильтра непосредственно в частотный диапазон, задав Numerator domain Frequency
.
Этот блок использует overlap-save и методы перекрытия-суммы, чтобы выполнить фильтрацию частотного диапазона. Для фильтров с длинной длиной импульсной характеристики задержка, присущая этим двум методам, может быть значительной. Чтобы уменьшить эту задержку, Frequency-Domain FIR Filter блок разбивает импульсную характеристику на более короткие блоки и реализует сохранение перекрытия и методов перекрытия-суммы на этих более коротких блоках. Чтобы разбить импульсную характеристику, установите флажок Partition numerator to reduce latency. Для получения дополнительной информации об этих двух методах и об уменьшении задержки через разбиение импульсной характеристики, см. Алгоритмы.
x
- Вход данныхВход данных, заданный как вектор или матрица. Этот блок поддерживает входные сигналы переменного размера. То есть вы можете изменить размер входного кадра (количество строк) даже после вызова алгоритма. Однако количество каналов (количество столбцов) должно оставаться постоянным.
Этот порт не называется, пока вы не выберете параметр Specify coefficients from input port.
Типы данных: single
| double
Поддержка комплексного числа: Да
NUM
- Коэффициенты конечной импульсной характеристики временного интервалаВременной интервал конечной импульсной характеристики фильтрация коэффициентов, заданная как вектор-строка.
Этот порт появляется, когда вы задаете Numerator domain Time
и выберите параметр Specify coefficients from input port.
Типы данных: single
| double
| int8
| int16
| int32
| uint8
| uint16
| uint32
Поддержка комплексного числа: Да
NUMFFT
- Коэффициенты конечной импульсной характеристики частотного диапазонаКонечные импульсные характеристики частотного диапазона, заданные как вектор-строка или матрица. Когда вы очищаете параметр Partition numerator to reduce latency, коэффициенты, вход через этот порт, должны быть векторы-строки. Длина БПФ равна длине векторного входа. Когда вы выбираете параметр Partition numerator to reduce latency, Frequency response должны быть матрицей 2 P -by- N, где P - размер раздела, а N - количество разделов.
Этот порт появляется, когда вы задаете Numerator domain Frequency
и выберите параметр Specify frequency response from input port.
Типы данных: single
| double
| int8
| int16
| int32
| uint8
| uint16
| uint32
Поддержка комплексного числа: Да
y
- Отфильтрованный выходОтфильтрованный выход, возвращенный как вектор или матрица. Размер, тип данных и сложность выхода совпадают с размерами входов.
Этот порт не называется, пока вы не выберете параметр Output filter latency и не кликнете Apply.
Типы данных: single
| double
Поддержка комплексного числа: Да
latency
- Задержка фильтраЗадержка фильтрации, возвращенная в виде скаляра. Эта задержка присуща методам добавления-перекрытия и сохранения-перекрытия и не включает групповую задержку фильтра. Этот порт появляется только при установке флажка Output filter latency.
Этот порт не называется, пока вы не установите флажок Output filter latency и не нажмите Apply.
Типы данных: uint32
Frequency-domain filter method
- Метод фильтрации в частотном диапазонеOverlap-save
(по умолчанию) | Overlap-add
Метод фильтрации в частотный диапазон, заданный как Overlap-save
или Overlap-add
. Для получения дополнительной информации об этих двух методах см. Алгоритмы
Numerator domain
- Область числителяTime
(по умолчанию) | Frequency
Область коэффициентов фильтра, заданная как один из следующих:
Time
-- Задайте коэффициенты фильтра во временной области в параметре Filter coefficients или через NUM входной порт.
Frequency
-- Задайте частотную характеристику фильтра в параметре Frequency response или через NUMFFT входной порт.
Specify coefficients from input port
- Флаг для задания коэффициентов lowpassКогда вы устанавливаете этот флажок, коэффициенты фильтра конечной импульсной характеристики вводятся через порт, NUM. Когда вы снимаете этот флажок, коэффициенты задаются в диалоге блоков через параметр Filter coefficients.
Чтобы просмотреть ответ фильтра, снимите этот флажок, укажите коэффициенты в диалоговом окне блока и нажмите на кнопку View Filter Response.
Чтобы включить этот параметр, установите Numerator domain равным Time
.
Filter coefficients
- фильтровать коэффициентыfir1(100,0.3)
(по умолчанию) | вектор-строкаКонечная импульсная характеристика коэффициенты, заданные как вектор-строка.
Чтобы включить этот параметр, установите Numerator domain равным Time
и очистите параметр Specify coefficients from input port.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
Поддержка комплексного числа: Да
Specify frequency response from input port
- Флаг для задания коэффициентов фильтра частотного диапазонаКогда вы устанавливаете этот флажок, коэффициенты фильтра конечной импульсной характеристики в частотный диапазон вводятся через порт, NUMFFT. Когда вы снимаете этот флажок, коэффициенты задаются в диалоге блоков через параметр Frequency response.
Чтобы просмотреть характеристики фильтра, снимите этот флажок, задайте частотную характеристику в диалоговом окне блока и нажмите на кнопку View Filter Response.
Чтобы включить этот параметр, установите Numerator domain равным Frequency
.
Frequency response
- Фильтрация коэффициентовfft(fir1(100,0.3),202)
(по умолчанию) | вектор-строка | матрицаЧастотная характеристика фильтра, заданная как вектор-строка или матрица. Когда вы очищаете параметр Partition numerator to reduce latency, Frequency response должен быть вектор-строка. Длина БПФ равна длине вектора Frequency response. Когда вы выбираете параметр Partition numerator to reduce latency, Frequency response должны быть матрицей 2 P -by- N, где P - размер раздела, а N - количество разделов.
Чтобы включить этот параметр, установите Numerator domain равным Frequency
и очистите параметр Specify frequency response from input port.
Типы данных: single
| double
| int8
| int16
| int32
| uint8
| uint16
| uint32
Поддержка комплексного числа: Да
Partition numerator to reduce latency
- Флаг, чтобы разбить числитель, чтобы уменьшить задержкуФлаг для разбиения числителя на разделы для уменьшения задержки, заданный как одно из следующего:
off -- Фильтр использует традиционные функции сохранения или метода перекрытия-суммы перекрытия. Задержка в этом случае является длиной БПФ - NumLen + 1. NumLen - длина вектора числителя, заданная вами в параметре Filter coefficients.
on -- В этом режиме блок разбивает числитель на сегменты длины, заданные параметром Numerator partition length. Фильтр выполняет наложение-сохранение или перекрытие-добавление для каждого раздела и объединяет частичные результаты, чтобы сформировать общий выход. Теперь задержка уменьшается до длины разбиения.
Numerator partition length
- Длина разбиения числителя32
(по умолчанию) | положительное целое числоДлина разбиения числителя, заданная как положительное целое число, меньше или равное длине числителя.
Этот параметр применяется только, когда вы устанавливаете Numerator domain на Time
и выберите параметр Partition numerator to reduce latency.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
Time-domain numerator length
- Длина числителя во временной области101
(по умолчанию) | положительный скаляр с целым числомДлина числителя временной области, заданная как положительный целочисленный скаляр.
Этот параметр применяется только, когда вы устанавливаете Numerator domain на Frequency
и снимите флажок Partition numerator to reduce latency.
Типы данных: single
| double
| int8
| int16
| int32
| uint8
| uint16
| uint32
Inherit FFT length from numerator length
- Флаг для наследования длины БПФ от длины числителяПри установке этого флажка длина БПФ равняется в два раза длине числителя. Когда вы снимаете этот флажок, вы задаете длину БПФ через параметр FFT length.
Этот параметр применяется только, когда вы устанавливаете Numerator domain на Time
и очистите параметр Partition numerator to reduce latency.
FFT length
- длина БПФ1024
(по умолчанию) | положительное целое числоЗаданная вами длина БПФ должна быть больше или равной длине вектора числителя, заданного в Filter coefficients параметре.
Этот параметр применяется, когда вы устанавливаете Numerator domain на Time
, очистить Partition numerator to reduce latency и параметры Inherit FFT length from numerator length.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
Filter is real
- Флаг, чтобы указать, является ли фильтр реальнымtrue
(по умолчанию) | false
Флаг, чтобы указать, является ли фильтр реальным, задается как true
или false
.
Этот параметр применяется, когда Numerator domain к Frequency
.
Output filter latency
- Флаг для вывода задержки фильтра'off'
(по умолчанию) | 'on'
Когда вы устанавливаете этот флажок и нажатие кнопки Apply, блок выводит задержку фильтра через latency порт.
View Filter Response
- Визуализация частотной характеристики конечной импульсной характеристикиbutton
Открывает Filter Visualization Tool (FVTool) и отображает амплитуду/фазовую характеристику конечной импульсной характеристики. Ответ основан на блоке параметрах диалога. Изменения, внесенные в эти параметры, обновляют FVTool.
Чтобы обновить ответ величины во время работы FVTool, измените параметры диалога блоков и нажатия кнопки Применить.
Чтобы просмотреть реакцию фильтра, когда для Numerator domain задано значение Time
снимите флажок Specify coefficients from input port. Чтобы просмотреть реакцию фильтра, когда для Numerator domain задано значение Frequency
снимите флажок Specify frequency response from input port.
Simulate using
- Тип выполняемой симуляцииCode generation
(по умолчанию) | Interpreted execution
Code generation
- Моделируйте модель с использованием сгенерированного кода C. Первый раз, когда вы запускаете симуляцию, Simulink® генерирует код С для блока. Код С повторно используется для последующих симуляций, пока модель не меняется. Эта опция требует дополнительного времени запуска, но обеспечивает более высокую скорость симуляции, чем Interpreted execution
.
Interpreted execution
- Моделируйте модель с помощью MATLAB® интерпретатор. Эта опция сокращает время запуска, но имеет более низкую скорость симуляции, чем Code generation
.
Типы данных |
|
Прямое сквозное соединение |
|
Многомерные сигналы |
|
Сигналы переменного размера |
|
Обнаружение пересечения нулем |
|
Overlap-save и overlap-add являются двумя методами фильтрации на основе FFT частотного диапазона, которые использует этот алгоритм.
Метод сохранения перекрытия реализован с использованием следующего подхода:
Входной поток разделяется на перекрывающиеся блоки FFTLen размера с коэффициентом перекрытия NumLen-1 выборки. FFTLen - длина БПФ, а NumLen - длина числителя конечных импульсных характеристик. БПФ каждого блока входных выборок вычисляется и умножается на БПФ FFTLen длины КИХ числителя. Выполняется обратное быстрое преобразование Фурье (IFFT) результата, и сохраняются последние FFTLen - NumLen + 1 выборки. Оставшиеся выборки отбрасывают.
Задержка перекрытия-сохранения FFTLen - NumLen + 1. Первый FFTLen - NumLen + 1 выборки равны нулю. Отфильтрованное значение первой входной выборки появляется как выходная выборка FFTLen - NumLen + 2.
Обратите внимание, что длина БПФ должна быть больше длины числителя и обычно устанавливается на значение, намного больше NumLen.
Метод перекрытия-суммы реализован с использованием следующего подхода:
Входной поток разделяется на блоки длины FFLen - NumLen + 1, без перекрытия между последовательными блоками. Подобно перекрытию-сохранению, БПФ блока вычисляется и умножается на БПФ числителя конечной импульсной характеристики. Затем вычисляется ОБПФ результата. Первые NumLen + 1 выборок изменяются путем добавления значений последних NumLen + 1 выборок из предыдущего вычисленного ОБПФ.
Задержка наложения-сложения равна FFTLen - NumLen + 1. Первый FFTLen - NumLen + 1 выборки равны нулю. Отфильтрованное значение первой входной выборки появляется как выходная выборка FFTLen - NumLen + 2.
С длиной БПФ, которая в два раза больше длины числителя конечной импульсной характеристики, задержка примерно равна длине числителя конечной импульсной характеристики. Если импульсная характеристика очень длинная, задержка становится значительно большой. Однако частотный диапазон фильтрация конечной импульсной характеристики все еще быстрее, чем фильтрация во временной области. Чтобы уменьшить задержку и сделать фильтрацию частотного диапазона еще более эффективной, алгоритм разбивает импульсную характеристику на несколько коротких блоков и выполняет сохранение перекрытия или увеличение перекрытия на каждом блоке. Результаты различных блоков затем объединяются, чтобы получить конечный выход. Задержка этого подхода соответствует порядку длины блока, а не всей длине импульсной характеристики. Это сокращение задержки происходит за счет дополнительных расчетов. Для получения дополнительной информации см. раздел [1].
[1] Стокхэм, Т. Г., младший «Высокоскоростная свертка и корреляция». Материалы Весенней совместной компьютерной конференции 1966 года, AFIPS, 28 (1966): 229-233.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.