MATLAB.Exponenta
MATLAB и Simulink на русском
Технологии разработки и отладки
		сложных технических систем
 

Обработка сигналов и изображений\Communications Toolbox

Список функций CommunicationsToolbox: Вычисления в конечных полях (полях Галуа)

  В оглавление \ К следующему разделу \ К предыдущему разделу

GFFILTER

Внимание! Приведенное ниже описание относится к версии 2.0 пакета Communications, (MATLAB 6.1). В версии 2.1 (MATLAB 6.5) фильтрация данных, представленных в виде объектов двоичных конечных полей (в том числе расширенных), производится с помощью функции filter, а данная функция применяется только к полям GF(p), где p — простое число, большее двух.

Синтаксис:

y = gffilter(b,a,x);
y = gffilter(b,a,x,p);

Описание:

  • y = gffilter(b,a,x)

Выполняет фильтрацию данных x фильтром, функция передачи которого описывается векторами b (коэффициенты числителя) и a (коэффициенты знаменателя). Вычисления выполняются над полем GF(2). Результат y представляет собой выходной сигнал фильтра. Элементы всех векторов могут принимать значения 0 или 1, поскольку вычисления производятся в поле GF(2).

  • y = gffilter(b,a,x,p)

То же, что и предыдущий вариант синтаксиса, но вычисления выполняются в поле GF(p), где p — простое число. Элементы всех векторов могут лежать в диапазоне от 0 до p – 1.

Примеры:

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

b = [1 0 0 1 0 1 0 1];
a = [1 0 1 1];
y = gffilter(b,a,[1,zeros(1,19)]);
stem(y);
axis([0 20 -.1 1.1])

Алгоритм:

Согласно принципу работы дискретного фильтра, результат y является решением разностного уравнения

где:

  • A + 1 — длина вектора a;
  • B + 1 — длина вектора b;
  • n принимает значения от 1 до длины вектора x.

Для реализации дискретной фильтрации в простом двоичном поле GF(2), в принципе, можно использовать функцию filter базовой библиотеки MATLAB, взяв даваемый ею результат по модулю два, например, так:

y = abs(rem(filter(b,a,x),2));

Однако если данный фильтр, рассматриваемый не в конечном поле, а в обычном поле комплексных чисел, является неустойчивым, его выходной сигнал может неограниченно возрастать. При этом результат вычисления остатка от деления на два будет правильным только до тех пор, пока выходной сигнал фильтра не превысит по абсолютной величине 252 (именно такие целые числа могут быть точно представлены в используемом MATLAB 8-байтовом формате double чисел с плавающей запятой). Функция же gffilter даст правильный результат во всех случаях.

Сопутствующие функции: gfconv, gfadd, filter

  В оглавление \ К следующему разделу \ К предыдущему разделу

 

Поиск по сайту:

Система Orphus

Яндекс.Метрика