Сетевое издание
Международный студенческий научный вестник
ISSN 2409-529X

RESEARCH AND ANALYSIS OF FINITE WORD-LENGTH EFFECTS IN FIR-FILTERS BY MEANS OF MATLAB TOOLS

Burenkov M.S. 1
1 Penza state technological university
This paper proposes the way to analyze the finite word-length effects in digital filters with finite impulse response by means of MATLAB tools. The analysis is based on the filter model which takes into account the word-length limitation of the filter coefficients as well as of the samples of input and output signals. Analysis of finite word-length effects carried out by means of MATLAB tools allows automating such operations as filter description, filter coefficients translation into fixed-point format and limitation of its word-length, visualization of filter’s characteristics before and after coefficients quantization, analysis of influence of word-length limitation for input signal samples and internal calculation results on the result of filtration. The paper also shows a piece of MATLAB script which creates the description of finite impulse response filter with quantized coefficients for the analysis of finite word-length effects.
FIR filter
analysis of finite word-length effects

Процесс проектирования цифрового фильтра состоит из таких этапов, как формирование спецификации, выбор типа и архитектуры фильтра, расчет коэффициентов фильтра, анализ эффектов конечной разрядности, аппаратная реализация фильтра – например, на ячейках цифровой обработки сигналов ПЛИС или высокопроизводительных сигнальных процессорах[1, 2, 4].

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

Если цифровой фильтр предполагается реализовать на устройстве, работающем в формате с фиксированной запятой и имеющем невысокую разрядность (16-18 бит), потребуется смена формата представления коэффициентов фильтра и ограничение их разрядности. В подобном же формате будут представлены и отсчёты входного сигнала цифрового фильтра. Может также потребоваться округление результатов перемножения коэффициентов фильтра на отсчёты входного сигнала, а также результатов суммирования произведений.

Вследствие перечисленных выше мер появляются шум квантования отсчётов входного сигнала, искажение АЧХ фильтра, шум округления результатов вычислений и, возможно, переполнение разрядной сетки, которые называются эффектами конечной разрядности [3]. Так, например, на рис. 1 представлено ухудшение АЧХ цифрового фильтра вследствие перехода к представлению его коэффициентов в формате с фиксированной запятой и ограничения разрядности его коэффициентов. На рисунке видно, что уровень подавления частот в зоне заграждения фильтра существенно снижается.

burenk1.tif

Рис. 1. Ухудшение АЧХ цифрового фильтра при переходе к формату с фиксированной точкой и ограничении разрядности коэффициентов – до 12 и 16 бит

burenk2.wmf

Рис. 2. Модель КИХ-фильтра, учитывающая эффекты конечной разрядности

Анализ эффектов конечной разрядности для КИХ-фильтра позволяет решить две задачи:

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

- оценить снижение качества сигнала на выходе фильтра, произошедшее вследствие эффектов конечной разрядности.

В данной работе рассмотрен вариант использования среды MATLAB для анализа эффектов конечной разрядности в цифровых КИХ-фильтрах [3]. Анализ выполняется на основе модели (рис. 2), учитывающей изменение импульсной характеристики фильтра, шум квантования входного сигнала и ошибку округления выходного сигнала [5].

Шум квантования отсчетов входного сигнала Δx(k) имитируется случайным шумом с равномерным распределением в интервале bur01.wmf где q – шаг квантования АЦП [5]. Квантованный сигнал xq(k), поступающий на вход КИХ-фильтра, является результатом суммирования шума квантования и входного сигнала x(k).

Квантование коэффициентов КИХ-фильтра h(i) моделируется фильтром с коэффициентами Δh(i), включенным параллельно с исходным. Коэффициенты Δh(i) являются разницей между h(i) и результатами их квантования hq(i).

Выходной сигнал КИХ-фильтра y(k) рассчитывается по формуле (1):

bur02.wmf (1)

Разрядность произведений x(k – i)•h(i) в два раза выше, чем разрядность x(k – i) и h(i). Если для суммирования произведений необходимо предварительно выполнять их округление, ошибка округления добавляется к каждой частной сумме произведений, а суммарная ошибка округления пропорциональна порядку фильтра N.

В случае использования для реализации КИХ-фильтра ЦОС-ячеек ПЛИС отдельные произведения x(k – i)•h(i) и конечный результат фильтрации y(k) можно не округлять. Округление выходного сигнала y(k) может потребоваться, если он подается на вход устройства с меньшей разрядностью. Ошибка округления выходного сигнала, Δy(k), моделируется случайным шумом с равномерным распределением в интервале bur03.wmf.

Во фрагменте MATLAB-скрипта, приведенном ниже, на основе вектора b коэффициентов созданного ранее фильтра f2 создается фильтр f_fp, работающий в формате с фиксированной запятой при разрядности коэффициентов 18 бит. Вектор b формируется с помощью функции impz. Фильтр f_fp создается с помощью функции dfilt[3].

% создаём спецификацию фильтра

f1=fdesign.lowpass('Fp,Fst,Ap,Ast', 0.2,0.3,0.1,80);

% создаём фильтр в соответствии со спецификацией

f2=design(f1,'kaiserwin');

% получаем вектор коэффициентов ИХ фильтра f2

% в формате с плавающей запятой и разрядностью 64 бита

b=impz(f2);

% создаем фильтр f_fp,

% работающий в формате с фиксированной запятой

f_fp=dfilt.dffir(b);

%задаем формат и разрядность 18 бит коэффициентов фильтра f_fp:

set(f_fp,'arithmetic','fixed','CoeffWordLength',18);

Чтобы MATLAB-модель фильтра учитывала шумы квантования входного сигнала и округления выходного сигнала, необходимо задать дополнительные параметры функции dfilt, в частности, разрядность представления отсчетов входных и выходных сигналов [3].

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