logo
Lesson 6

M. Сравнение бих фильтров

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

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

Модель БИХ фильтра

Частотные характеристики

Ширина переходной области для указанного порядка фильтра

Требуемый порядок для удовлетворения заданным техническим требованиям

Баттерворта

Чебышева

Инверсный Чебышева

Эллиптический

Бесселя

Нет волнистости

Волнистость в ПП

Волнистость в ПР

Волнистость в ПП и ПР

Нет волнистости

Самая узкая

Самая широкая

Самый низкий

Самый высокий

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

Как решить, какой фильтр использовать

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

N. Переходная характеристика БИХ фильтра

Выходной сигнал БИХ фильтра определяется формулой:

(6-5)

где - количество коэффициентов вперед, - количество реверсивных коэффициентов, - предполагается равным 1. Для фильтра второго порядка, когда , соответствующее разностное уравнение есть:

(6-6)

Чтобы рассчитать выходной сигнал фильтра (в i – ый момент), вам необходимо знать два прошедших выходных сигнала (в моменты и ), а также текущее значение входного сигнала (в момент ) и два предыдущих значения входного сигнала (в моменты времени и ).

Теперь предположим, что вы только что начали процесс фильтрации, взяв первую выборку входного сигнала. Однако в этот момент времени вы не располагаете предыдущими входными значениями ( и ) и предыдущими выходными значениями ( и ), поэтому по умолчанию эти значения предполагаются равными нулю. Когда вы будете получать вторую выборку, у вас уже будет предыдущее значение входного сигнала и предыдущее значение выходного сигнала , вычисленные на первой стадии, но пока не имеете значений и . Поэтому опять эти значения предполагаются равными нулю. Только после начала обработки третьей выборки сигнала все члены в правой части уравнения 6-6 определены, поскольку определены все необходимые для расчетов предыдущие значения. Таким образом, мы видим, что возникает некоторая временная задержка на то, чтобы предварительно определить все необходимые величины в правой части разностного уравнения 6-6, описывающего наш фильтр. Выходной сигнал фильтра в течение этого интервала времени есть некоторый переходной процесс, который обычно называется переходной характеристикой фильтра. Для ФНЧ и ФВЧ длительность переходной характеристики (или задержка) равна порядку фильтра. Для полосно-пропускающего фильтра и полосно-заграждающего фильтра эта длительность вдвое больше порядка фильтра.

БИХ фильтры имеют следующие свойства:

При каждом вызове ВП Filter на его выходе появляется переходной процесс, как показано на следующей иллюстрации. Можно исключить влияние переходной характеристики при последовательных вызовах, разрешая сохранять в памяти состояние этого ВП. Для этого установите значение параметра init/cont данного ВП в состояние TRUE (непрерывная фильтрация). Вы научитесь делать это в следующем упражнении.

Упражнение 6-3. Применение БИХ фильтров в процессе сбора данных

Задача: Использовать цифровую фильтрацию в приложении, использующем сбор данных.

Фильтрация повсеместно применяется для данных, полученных при помощи DAQ устройства. В данном упражнении вы создадите ВП, выполняющий цифровую БИХ фильтрацию данных, собранных при помощи DAQ устройства. Этот ВП поможет сравнить эффекты от фильтрации. Вы сможете наблюдать осциллограммы во временной и частотной областях исходного и фильтрованного сигналов для того, чтобы увидеть преимущества цифровой БИХ фильтрации.

Лицевая панель

1. Откройте новый ВП.

2. Поместите графики осциллограмм на лицевой панели и назовите их Временная область до фильтрации, Временная область после фильтрации, Частотная область до фильтрации и Частотная область после.

3. Добавьте кнопку Stop.

Блок-диаграмма

4. Создайте следующую блок-диаграмму.

a. Поместите ВП DAQmx Create Channel, расположенный в палитре Functions»All Functions»NI Measurements»DAQmx - Data Acquisition, на блок-диаграмму. Этот ВП создает виртуальный канал определенного типа. Выберите опции Analog Input»Voltage в конфигураторе этого ВП. Щелкните правой кнопкой мыши на вводе physical channels и выберите Create»Control из появившегося контекстного меню. Щелкните правой кнопкой мыши на вводе name to assign и выберите Create»Constant из появившегося контекстного меню. Назовите канал analog in.

b. Поместите ВП DAQmx Timing, расположенный в палитре Functions»All Functions»NI Measurements»DAQmx - Data Acquisition, на блок-диаграмму. Этот ВП конфигурирует тактирование задачи. Щелкните правой кнопкой мыши на вводе sample mode и выберите Create»Constant из появившегося контекстного меню. Введите Continuous Samples в константу. Щелкните правой кнопкой мыши на вводе samples per channel и выберите Create»Control из появившегося контекстного меню. Этот элемент управления определяет размер буфера. Щелкните правой кнопкой мыши на вводе rate и выберите Create»Control из появившегося контекстного меню.

c. Поместите ВП DAQmx Start, расположенный в палитре Functions»All Functions»NI Measurements»DAQmx - Data Acquisition, на блок-диаграмму. Этот ВП запускает операцию непрерывного буферизированного получения данных.

d. Поместите ВП DAQmx Read, расположенный в палитре Functions»All Functions»NI Measurements»DAQmx - Data Acquisition, на блок-диаграмму. Этот ВП считывает данные из буфера, созданного ВП DAQmx Timing. Выберите опции Analog»Single Channel»Multiple Samples»Waveform в конфигураторе этого ВП.

e. Поместите экспресс-ВП Spectral Measurements, расположенный в палитре Functions» Signal Analysis, на блок-диаграмму. Этот ВП вычисляет спектр мощности входного сигнала. В появившемся диалоговом окне Configure Spectral Measurements установите опции, как показано на следующем рисунке.

– Настройте оба экспресс-ВП Spectral Measurements выше указанным образом.

– Нажмите кнопку OK для выхода из диалогового окна.

f. Поместите экспресс-ВП Filter, расположенный в палитре Functions» Signal Analysis, на блок-диаграмму. Этот ВП обрабатывает сигналы с использованием фильтров и окон. В появившемся диалоговом окне Configure Filter установите опции, как показано на следующем рисунке.

g. Поместите ВП DAQmx Stop Task, расположенный в палитре Functions»All Functions»NI Measurements»DAQmx - Data Acquisition, на блок-диаграмму. Этот ВП останавливает данную задачу.

h. Поместите функцию Unbundle by Name, расположенную в палитре Functions»All Functions»Cluster, на блок-диаграмму. Эта функция возвращает логическое значение состояния status из кластера ошибки.

i. Поместите ВП Merge Errors, расположенный в палитре Functions»All Functions»Time & Dialog, на блок-диаграмму. Этот ВП объединяет кластеры ошибок из различных функций.

j. Поместите ВП Simple Error Handler, расположенный в палитре Functions»All Functions»Time & Dialog, на блок-диаграмму. В случае возникновения ошибки этот ВП вызовет диалоговое окно с информацией, касающейся ошибки и месте ее возникновения.

5. Переключитесь на лицевую панель и расположите ее элементы как показано на следующем рисунке.

6. Сохраните ВП с именем IIR DAQ Filter.vi в директории C:\Exercises\LabVIEW DAQ.

7. На лицевой панели этого ВП установите для физические каналы значение Dev X/ai2, где X соответствует номеру вашего DAQ устройства. Установите для частоты выборки значение 10000 и количество выборок на канал – 10000.

8. Присоедините на испытательной коробке аналоговый выход 1 к аналоговому входу 2. Установленные настройки заставляют ВП собирать данные из канала 2 с частотой 10 кГц, полагая частоту Найквиста равной 5 кГц.

9. Выберите меню Help»Find Examples для вызова поисковика примеров NI Example Finder, просмотрите по типу задачи подменю Hardware Input and Output»DAQmx»Analog Generation»Voltage и откройте ВП Cont Gen Voltage Wfm-Int Clk-Variable Rate. Запустите ВП, который будет генерировать синусоидальный сигнал с частотой 100 Гц на выходе аналогового сигнала 1.

10. Запустите ВП IIR DAQ Filter. Обратите внимание на четыре появившиеся осциллограммы. На графике исходной осциллограммы во временной области данные показываются в виде сильно прерывистой синусоиды, поскольку дискретные данные производят разрывную аналоговую осциллограмму. Сгенерированная синусоида содержит компоненты на частотах гораздо больших основной. Эти компоненты можно заметить на графике исходной осциллограммы в частотной области. Цифровой БИХ ФНЧ ослабляет эти высокочастотные компоненты, в результате чего появляется почти идеальный синус на графике отфильтрованного сигнала во временной и частотной областях. Однако будьте осторожны с наложением спектров. Цифровой фильтр не может удалить этот эффект.

11. Наложение спектров – это проблема для цифровой фильтрации. Понемногу увеличивайте частоту сигнала, генерируемого примером ВП. При увеличении частоты выше 500 Гц на графике отфильтрованного сигнала видно его ослабление. Однако сигнал никогда не исчезнет до конца. Псевдо-аналоговая осциллограмма, генерируемая примером ВП, содержит множество информации на высоких частотах. Поскольку никаких аппаратных фильтров защиты от наложения спектров нет, высокочастотные компоненты появятся в диапазоне от 0 до 5 кГц. Цифровой БИХ фильтр ослабит эти компоненты, но никогда не сможет полностью исключить их. Эта ситуация подчеркивает важность использования аппаратных фильтров защиты от наложения спектров.

12. Измените частоту генерируемого сигнала до 500 Гц и нижнюю частоту среза Lower FC до 400 Гц. Остальные параметры фильтра оставьте неизменными: тип Butterworth и порядок 5. Для этого остановите ВП и дважды щелкните на экспресс-ВП Filter. Как видим, входной сигнал не полностью ослабился. Вспомним, что переходная область фильтра Баттерворта становится уже при увеличении его порядка. Увеличьте порядок фильтра, и он начнет сильнее ослаблять сигнал. Увеличивайте порядок до тех пор, пока фильтр не ослабит сигнал в достаточной мере. Типичный порядок фильтра колеблется от 1 до 20, а 30 это считается пределом. При использовании больших порядков компьютеру необходимо больше времени для обработки, и возрастает вероятность ошибки, вводимой числами с плавающей запятой в выходной сигнал.

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

14. Остановите и закройте ВП после окончания работы.

Конец упражнения 6-3

O. Фильтры с конечной импульсной характеристикой

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

Фильтры с конечной импульсной характеристикой (Finite Impulse Response – FIR) – КИХ фильтры – известны также как нерекурсивные фильтры, свёрточные фильтры или фильтры со скользящим усреднением, поскольку вы можете выразить выходной сигнала такого фильтра в виде конечной свертки

где x представляет входную последовательность, y – выходную отфильтрованную последовательность, h – коэффициенты КИХ фильтра.

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

где bQ, b1,..., bМ-1коэффициенты фильтра.

КИХ фильтры имеют несколько важных особенностей:

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

Простейший способ создания КИХ фильтров с линейной ФЧХ – это метод проектирования с использованием окон. Для создания КИХ фильтров с использованием окон начните с идеального частотного отклика, вычислите импульсную характеристику и затем отсеките часть импульсной характеристики для получения конечного числа коэффициентов. Усечение идеальной импульсной характеристики приводит к эффекту, известному как явление Гиббса, - осцилляторному поведению вблизи резких переходов (частот среза) в частотном отклике КИХ фильтра.

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

Выбор функций окон похож на выбор между БИХ фильтрами Чебышева и Баттерворта, только теперь поменялись понятия: ширину переходной области заменили боковые максимумы вблизи частот среза.

Итоги