ПРОЕКТИРОВАНИЕ ЦИФРОВОГО ФИЛЬТРА, КОРРЕКТИРУЮЩЕГО ТРЕБУЕМЫМ ОБРАЗОМ АЧХ ИЗМЕРЯЕМОГО СИГНАЛА
Узенгер Алексей Андреевич
к.т.н., ФГБОУ ВО «Самарский государственный технический университет»
АННОТАЦИЯ
В статье рассматривается вопрос проектирования цифрового фильтра, выполняющий коррекцию амплитудно-частотной характеристики сигнала требуемом образом. Предполагается что фильтр будет работать в устройствах с ограниченным вычислительным ресурсом.
Ключевые слова: цифровой фильтр, коррекция АЧХ, ФНЧ, КИХ фильтр.
ABSTRACT
The article discusses the issue of designing a digital filter that performs correction of the amplitude-frequency characteristic of a signal as required. It is assumed that the filter will work in devices with limited computing resources.
Keywords: digital filter, correction of frequency response, low-pass filter, FIR filter.
Введение
При рассмотрении типового измерительного канала регистрации значений с датчика можно выделить следующие основные блоки (рис. 1). Собственно, сам датчик, как правило линейный только в определенном диапазоне значений и в определенном частотном диапазоне. Далее стоит усилительный каскад с необходимым аналоговым фильтром (А.ФНЧ), который ограничивает полосу частот сигнала, подаваемого на аналого-цифровой преобразователь (АЦП). После АЦП сигнал обрабатывается цифровым фильтром (ЦФ) и передается для потребителей. Наиболее часто ЦФ реализуется в виде КИХ фильтра. «КИХ-фильтры используют сложение для расчета своих выходов таким же образом, как в процессе усреднения используется сложение» [1, с. 203].
Рис.1 – Блок схема измерительного канала
Цифровой фильтр выполняет важную роль в обработке измеряемого сигнала, например: выделение частотных компонентов сигнала; понижение, либо повышение частоты дискретизации измеряемого сигнала и связанные с ней задачи децимации и интерполяции. Мы остановимся на задаче коррекции требуемым образом амплитудно-частотной характеристики (АЧХ) измеряемого сигнала.
Реализация поставленной задачи
Предположим, получены следующие экспериментальные значения с датчика на выходе АЦП при изменении частоты входного сигнала (рис. 2). Эксперимент проводился в точках важных для дальнейшей обработки сигналов. Частота дискретизации сигнала выбрана 80 кГц.
Рисунок 2 – АЧХ экспериментальных данных на выходе АЦП при изменении частоты
Ставится задача проектирования ЦФ, выравнивающего АЧХ сигнала в диапазоне частот от 0 до 40 кГц. Для этого воспользуемся средствами Matlab, функциями пакета «Filter Design Toolbox – функции анализа и синтеза фильтров, в том числе с учетом эффектов квантования и арифметики с фиксированной запятой» [2, c. 717]:
clc; clear; close all; format long;
% Экспериментальные данные freq = [0 50 500 1000 5000 6000 8000 10000 19000 30000 40000]; a = [10000 10000 8000 5000 3500 3000 2500 800 400 200 50]; a = a ./ max(a); mag = 1 ./ a; % Расчет фильтра d = designfilt(‘arbmagfir’, ‘FilterOrder’, 160, ‘Frequencies’, freq, ‘Amplitude’, mag, ‘SampleRate’, 80000); fvtool(d); |
Рассмотрим вышеприведенный код. Вначале используются стандартные команды очистки рабочего пространства. Далее вводятся точки проведения эксперимента freq и результаты измерений на выходе АЦП a. Нормируем вектор a и рассчитываем значения корректирующей функции mag, она будет обратной к заданной a. Для расчета ЦФ воспользуемся функцией designfilt. Среди множества параметров выбираем следующие: тип фильтра – arbmagfir, порядок фильтра – 160, значения векторов частоты и им соответствующих амплитуд, частоту дискретизации – 80 кГц. Для вывода результатов спроектированного фильтра воспользуемся функцией fvtool (рис. 3). На рис. 1 график 1 – эскиз фильтра, график 2 – АЧХ ЦФ. На рис. 4 представлена импульсная характеристика ЦФ.
Рисунок 3 – АЧХ спроектированного фильтра
Рисунок 4 – Импульсная характеристика ЦФ
Вариацией порядка фильтра можно добиться требуемой характеристики ЦФ, наиболее точно описывающей эскиз. Следует заметить, что для рассматриваемого случая, порядок фильтра малочувствителен к повышению порядка проектируемого фильтра. Однако, изменение порядка всего на единицу (четный — на нечетный) радикально меняет характеристику фильтра. Очевидно, это связано с количеством коэффициентов (рис. 4), их должно быть нечетное количество.
Результирующий коэффициент передачи измерительного канала будет иметь характеристику представленную на рис. 5. В диапазоне частот от 8 до 40 кГц коэффициент достигает 1.3, что не очень хорошо. В наиболее важных экспериментальных точках результат составляет 1, что и требовалось.
Рисунок 5 – Коэффициент передачи измерительно канала
Рассмотрим ниже механизм получения квантованных коэффициентов, для работы ЦФ в устройствах с ограниченным быстродействием, т.к. выправление АЧХ логичнее выполнять в процессе предобработки, в микроконтроллерах.
% получение коэффициентов корректирующего фильтра
hq = dfilt.dffir(d.Coefficients); % создание объекта dfilt ‘fixed’ set(hq, ‘arithmetic’, ‘fixed’, ‘CoeffAutoScale’, 1, ‘CoeffWordLength’, 32); % вывод корректирующего фильтра на график с квантованными коэффициентами fvtool(hq, ‘Fs’, 80000) % запись коэффициентов фильтра в рабочий каталог fcfwrite(hq,’coef_hex’,’hex’); sfcfwrite(hq,’coef_dec’,’dec’); |
В результате выполнения вышеприведенного кода появятся файлы с коэффициентами в десятичном и шестнадцатеричных форматах в 32-х битном формате.
В современных 16-ти, 32-х разрядных микроконтроллерах в составе набора библиотек присутствует библиотека цифровой обработки сигналов с фиксированной точкой. В данной библиотеке присутствуют функции КИХ, БИХ фильтров, быстрое Фурье преобразование и др. Библиотека работает с типами данных Q15 либо Q31, диапазон которых ограничен рядом от -1.0 до 0.999999999. Рассмотренный выше случай расчета коэффициентов корректирующего фильтра дал результат с коэффициентами выходящих за диапазон формата Q31, это видно по импульсной характеристике (фактически это и есть набор коэффициентов рассчитанного фильтра). Для того чтобы коэффициенты работали в фильтре со значениями с фиксированной точкой, в функции получения квантованных коэффициентов set использован параметр авто-масштабирования коэффициентов. В результате коэффициенты представлены в формате Q6.25 т.е. 6 разрядов — целая часть, 25 разрядов — дробная часть и 1 разряд — знак. При использовании данных результатов в микроконтроллерной системе следует помнить о том, что результат будет меньше в 64 раза.
Заключение
Рассмотренная методика коррекции АЧХ реализуема для широкого класса измерительных устройств. Гибкость инструментария Matlab позволяет реализовать корректирующие КИХ фильтры с требуемыми показателями для любого устройства с его уникальной аппаратной реализацией.
Список литературы:
1. Understanding digital signal processing / Richard G. Lyons. — 3rd ed. 2011. ISBN 0-13-702741-9
2. Сергиенко А. Б. Цифровая обработка сигналов: учеб. пособие. — 3-е изд. — СПб.: БХВ-Петербург, 2011. — 768 с.: ил.