Design Filter

Спроектируйте цифровой фильтр в Live Editor

Описание

Фильтр проекта помогает вам спроектировать цифровой фильтр в интерактивном режиме. Задача автоматически генерирует и запускает MATLAB® код, чтобы спроектировать фильтр с помощью digitalFilter объект.

Чтобы начать, выберите тип ответа фильтра. Задача предлагает средства управления, чтобы задать параметры фильтра, которые зависят от типа ответа фильтра и включают:

  • Порядок фильтра

  • Ограничения частоты

  • Ограничения величины

  • Метод разработки

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

Для получения дополнительной информации о задачах Live Editor, смотрите, Добавляют Интерактивные Задачи к Live Script.

Design Filter task in Live Editor

Откройте задачу

Добавить задачу Фильтра Проекта в live скрипт в редакторе MATLAB:

  • На вкладке Live Editor выберите Design Filter.

  • В блоке кода в скрипте введите соответствующее ключевое слово, такое как designfiltфильтр, или lowpass. Выберите Design Filter от предложенных завершений команды.

Примеры

развернуть все

В этом примере показано, как использовать задачу Фильтра Проекта в Live Editor сгенерировать код для цифрового фильтра. Задача помогает вам в интерактивном режиме спроектировать цифровой фильтр, отображает ответ фильтра и генерирует код.

Создайте или загрузите сигнал

В Live Editor загрузите шумную электрокардиограмму (ECG) сигнал в рабочую область MATLAB®. Отобразите данные на графике.

load noisyecg
plot(noisyECG_withTrend)

Figure contains an axes object. The axes object contains an object of type line.

Сигнал ECG кажется шумным. Существует несколько источников шума, который может влиять на сигнал включая артефакты перемещения, высокочастотный шум и интерференцию источника питания. В интерактивном режиме спроектируйте фильтр, чтобы удалить шум из сигнала. Во вкладке Live Editor расширьте Список задач и выберите Design Filter открыть задачу.

Спроектируйте КИХ-фильтр Lowpass Используя окно Кайзера

Чтобы удалить высокочастотный шум, сначала выберите фильтр Lowpass FIR и задайте Порядок как 10. Доступные параметры для частоты, величины и параметров алгоритма зависят от выбранного типа ответа фильтра и порядка фильтра.

Фильтр lowpass удаляет из входного сигнала нежелательное содержимое частоты выше заданного порога. В Задавать разделе параметров частоты выберите Cutoff (6dB) frequency из списка ограничений Частоты. Когда частота дискретизации известна, можно выбрать Hz из списка единиц Частоты. Опция Частоты дискретизации появляется, и можно выбрать частоту дискретизации из переменных в рабочей области. В этом примере, частота дискретизации неизвестна, поэтому задают нормированную частоту среза 0.3 рад/отсчет.

Для КИХ фильтр lowpass, в Задавать разделе параметров величины, можно задать ограничения, чтобы управлять суммой неравномерности в полосе пропускания и затухания в полосе задерживания. Выберите Passband ripple and stopband attenuation из списка ограничений Величины. Ограничения величины и порядок фильтра могут также влиять на ширину перехода фильтра.

Задача выбирает FIR contrained least-squares спроектируйте алгоритм по умолчанию на основе заданных параметров частоты и величины. Оставьте проектные решения при их настройках по умолчанию.

В разделе ответа Фильтра дисплейного отображения выберите Magnitude & phase и Group delay визуализировать спроектированный ответ фильтра. В графике величины вы видите, что уровень затухания в полосе задерживания на уровне 60 дБ. График групповой задержки показывает задержку 5 выборок и что фильтр является линейной фазой.

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

Примените спроектированный фильтр к шумному сигналу ECG. Объясните задержку, введенную фильтром, и постройте результат.

load designedFilter
filteredECG = filter(designedFilter,noisyECG_withTrend);
delay = grpdelay(designedFilter);
mdelay = mean(delay);
filteredECG(1:mdelay) = [];

plot(noisyECG_withTrend(1:end-mdelay))
hold on
plot(filteredECG)
legend(["Original","Filtered"])
hold off

Figure contains an axes object. The axes object contains 2 objects of type line. These objects represent Original, Filtered.

Спроектируйте КИХ-фильтр Equiripple Bandstop

На медицинское устройство как монитор ECG может повлиять электромагнитная интерференция. Источник питания обычно действует на частоте 50 Гц или 60 Гц. В данном примере синусоида на 60 Гц была добавлена как шум к сигналу ECG, взятому из Базы данных Аритмии MIT-BIH [1]. Частота дискретизации составляет 360 Гц. Чтобы удалить шум, откройте задачу Фильтра Проекта и спроектируйте минимальный порядок bandstop КИХ-фильтр. Поменяйте имя фильтра по умолчанию на bandstop60Hz.

Задайте единицы Частоты как Hz. Чтобы задать частоту дискретизации, введите значение или выберите переменную частоты дискретизации из списка. Чтобы появиться в списке, переменная частоты дискретизации должна быть сохранена в рабочей области. Создайте переменную, fs, и набор это равняется 360 Гц, затем выберите fs из списка Частот дискретизации. Задайте полосу пропускания и значения частоты полосы задерживания, чтобы ослабить частоты между 55-65 Гц для фильтра метки на 10 Гц, сосредоточенного на уровне 60 Гц.

fs = 360;

Установите Неравномерность в полосе пропускания 2 (дБ) к 0.5 и увеличьте Затухание в полосе задерживания (дБ) до 80.

Значения по умолчанию задачи к equiripple методу разработки. Отобразите величину и фазовые отклики фильтра.

Можно также выбрать Filter information от Фильтра дисплейного отображения ответ разделяют, чтобы посмотреть дополнительные детали о спроектированном фильтре.

Загрузите ecg60Hz в рабочую область. MAT-файл содержит исходный сигнал ECG с добавленным шумом (ecg60) и отфильтрованный сигнал (ecgFilt). Постройте оба сигнала визуализировать результат фильтра.

load ecg60Hz
t = 0:1/fs:(length(ecg60)-1)/fs;
plot(t,[ecg60 ecgFilt])
legend(["Original";"Filtered"])

Figure contains an axes object. The axes object contains 2 objects of type line. These objects represent Original, Filtered.

Параметры

Выберите тип ответа фильтра в качестве одного из них:

  • КИХ lowpass

  • БИХ lowpass

  • КИХ Highpass

  • БИХ Highpass

  • Полосовой КИХ

  • Полосовой БИХ

  • КИХ Bandstop

  • БИХ Bandstop

  • Гильбертов КИХ трансформатора

  • КИХ дифференциатора

Спроектируйте фильтр минимального порядка или задайте порядка фильтра. Некоторые ответы не могут иметь проект минимального порядка в наличии и потребуют, чтобы вы задали значение порядка фильтра.

Задайте частоты, на которых спроектированный фильтр предоставляет желаемое поведение. Доступные параметры зависят от типа ответа фильтра и порядка фильтра.

Примечание

Можно задать Frequency units как Normalized (0 to 1) (значение по умолчанию) или Hz. Если вы задаете единицы частоты в герц, необходимо задать частоту дискретизации.

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

Укажите, что алгоритм раньше проектировал фильтр. Доступные параметры зависят от типа ответа фильтра, порядка фильтра и ограничений частоты и величины. Некоторые методы разработки имеют дополнительные опции в наличии в разделе Design options.

Примечание

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

Советы

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

Ссылки

[1] Капризный, G.B., и Р.Г. Марк. "Удар базы данных аритмии MIT-BIH". Инженер IEEE в медиане и Biol 20 (3):45-50 (мочь-июнь 2001): 45-50.

Смотрите также

Функции

Введенный в R2021b