Site icon Евразийский Союз Ученых — публикация научных статей в ежемесячном научном журнале

ПРОЕКТИРОВАНИЕ ЦИФРОВОГО ФИЛЬТРА, КОРРЕКТИРУЮЩЕГО ТРЕБУЕМЫМ ОБРАЗОМ АЧХ ИЗМЕРЯЕМОГО СИГНАЛА (67-70)

ПРОЕКТИРОВАНИЕ ЦИФРОВОГО ФИЛЬТРА, КОРРЕКТИРУЮЩЕГО ТРЕБУЕМЫМ ОБРАЗОМ АЧХ ИЗМЕРЯЕМОГО СИГНАЛА

Узенгер Алексей Андреевич

к.т.н., ФГБОУ ВО «Самарский государственный технический университет»

АННОТАЦИЯ

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

Ключевые слова: цифровой фильтр, коррекция АЧХ, ФНЧ, КИХ фильтр.

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 с.: ил.

404: Not Found404: Not Found