Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Глинченко А.С. - Цифровая обработка сигналов. ч.1 (2001)(4 M.pdf
Скачиваний:
819
Добавлен:
13.09.2013
Размер:
3.22 Mб
Скачать

11

В качестве примера определим длину секции и число точек БПФ при реализации на основе БПФ нерекурсивного цифрового фильтра, синтезированного в п. 3.3.7 методом весовых функций. Длине импульсной характеристики фильтра N2= 321 соответствует ближайшее число точек N для вычисления БПФ, равное 1024, и длина секции N1= 703. Число операций умножения на

один отсчет сигнала в этом случае равно Кумн(1)= 4N(log2N + 1)/ N1 = 64. Оно значительно меньше числа умножений Кумн(1)= N2= 321, необходимых при

прямой форме реализации НФ (на основе ДВС). Для рекурсивного фильтра 10-го порядка с аналогичными параметрами частотной характеристики, синтезированного в п. 3.2.8, вычислительная эффективность составляет 25 операций умножения на один отсчет, т. е. более чем в 2 раза выше. Однако у такого фильтра, использующего аппроксимацию Золотарева – Кауэра, существенно нелинейная ФЧХ.

Значениям N = 2048, 4096 и 8192 соответствуют значения длины секции N1= 1727, 3775, 7871 и число операций умножения на отсчет сигнала Кумн(1)= 57, 56,4 и 58,3. Как видим, значение N = 2048 является оптимальным для данного цифрового фильтра по объему вычислений и объему памяти.

На основе БПФ может быть реализован также нерекурсивный цифровой фильтр, синтезированный методом частотной выборки в п. 3.4.4.

5.5. ПРОГРАММНАЯ РЕАЛИЗАЦИЯ ЦИФРОВЫХ ФИЛЬТРОВ НА ОСНОВЕ ДПФ

Общая граф-схема алгоритма программной реализации цифровых фильтров на основе ДПФ для коротких и длинных комплексных последовательностей приведена на рис. 5.9. Входными данными для нее являются длина импульсной характеристики N2, длина реализации или секции сигнала N1, число точек N для вычисления ДПФ и ОДПФ, вид входной последовательности – конечная (М = 0) или бесконечная (М = 1), а также значения реальной и мнимой составляющих ДЧХ HR(I), HI(I) и входной последовательности x(n)re = SR(I), x(n)im = SI(I) , выходными – также значения реальной и мнимой составляющих комплексной (в общем случае) выходной последовательности y(n)re, y(n)im. Массивы отсчетов входного сигнала SR(I), SI(I) в процессе обработки замещаются массивами произведений ДПФ входной последовательности и ДЧХ. Фильтрация конечной и бесконечной последовательностей отличается подготовкой и выводом выходных данных. Перекрывающиеся значения предыдущей частичной свертки при М=1 сохраняются в массивах YR(L), YI(L), которые в начале обработки обнуляются.

 

 

12

 

 

 

 

Начало

 

 

Описание переменных и конcтант

 

SR(I), SI(I), XR(K), XI(K), HR(K),

 

HI(K), YR(L), YI(L), X1, X2, N,

 

 

N1, N2, I, K, L, P, M

 

 

 

Ввод

 

 

 

 

N; N1; N2;

 

 

 

 

HR(K); HI(K); M

 

 

1

M = 0

 

 

 

 

 

 

 

 

0

 

 

YR(L) = 0; YI(L) = 0; L = 0,...,N2-2

 

 

 

P = 0

 

 

 

 

Ввод входной

 

 

 

последовательности

 

 

Вычисление ДПФ

 

 

0

1

 

 

 

P = 0

 

 

0

 

1

 

P = 1

M = 0

 

 

 

Подготовка и

Подготовка и вывод

Перемножение

вывод частичных

 

выходной

 

последова-

сверток

последовательности

тельностей

 

 

Продолжить

1

 

 

 

 

 

 

 

0

 

 

 

 

Конец

 

 

Рис. 5.9. Граф-схема алгоритма программной реализации ЦФ на основе ДПФ при обработке последовательностей конечной и бесконечной длины

13

Развернутые граф-схемы алгоритмов ввода входной последовательности и ее дополнения нулевыми отсчетами, вычисления ДПФ, перемножения по следовательностей, подготовки и вывода частичных сверток и выходной последовательности представлены на рис. 5.10, 5.11.

На граф-схемах учтены операции комплексного сопряжения, которые необходимы при вычислении ОДПФ (р = 1) с помощью алгоритма ДПФ.

Для программной реализации НФ в общем случае требуется 6N ячеек па-

мяти для последовательностей SR(I), SI(I), XR(K), XI(K), HR(K), HI(K) и 2N1

ячеек для переменных YR(L), YI(L).

I = 0

Ввод x(n)Re= SR(I); x(n)Im= SI(I)

I = I + 1

0

I = N1

1

SR(I) = 0

SI(I) = 0

I = I + 1

0

I = N

1

а)

I = 0; K = 0;

X 1 = 0; X 2 = 0

W 1 =

cos ( 2π IK /N ) ; W 2= − sin( 2π IK /N)

X 1 =

X 1+

W 1

SR ( I )

W 2 SI( I)

X 2 =

X 2+

W 2

SR ( I )+

W 1 SI( I)

 

 

 

 

 

 

 

 

 

 

 

 

I = I + 1

I = N

0

 

1

X R(K ) = X 1;

X I(K ) = X 2;

K = K +1

0

K = N

1

б)

Рис. 5.10. Граф-схемы алгоритмов ввода и дополнения нулями входной последовательности (а) и вычисления ДПФ (б)

 

 

 

 

 

 

 

 

14

 

 

 

 

 

K = 0; L = 0

 

 

 

 

I = 0; K = 0.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

XR(K) =

XR(K)

+

YR(L)

 

 

 

 

 

 

 

 

 

N

 

 

 

 

 

 

 

 

XI(K) =

XI(K)

+

YI(L)

 

SR(I) = XR(K)·HR(K)-XI(K)

·HI(K)

 

 

 

 

N

 

 

 

SI(I) =- XR(K)·HI(K)-XI(K)·HR(K)

 

 

 

 

 

 

 

 

K =K + 1; L = L + 1;

 

 

 

 

 

 

 

 

 

 

 

0

 

 

I = I + 1;

 

 

 

 

K = N2-1

 

 

K = K + 1;

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

0

 

XR(K)

=

XR(K) ; XI(K)

=

XI(K)

 

I = N

 

 

 

 

N

 

 

 

 

 

N

 

 

 

 

 

K = K + 1;

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

K = N1

 

 

0

 

 

а)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

K = 0

 

 

 

 

 

L = 0

 

 

 

 

 

XR(K); XI(K) =

 

XI(K)

 

 

 

 

 

 

 

 

XR(K) =

YR(L)

 

= XR(K) ; YI(L)

=

XI(K)

N

 

N

K = K+ 1; L = L + 1;

 

 

 

K = K + 1

 

 

 

 

 

 

 

 

 

 

 

K = N

 

 

0

 

 

K = N

0

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

1

 

 

 

 

 

K = 0

 

 

 

 

 

K = 0

 

 

 

 

y(n) Re = XR(K);

 

 

 

y(n) Re = XR(K);

 

 

 

y(n) Im = XI(K)

 

 

 

 

 

 

 

 

 

y(n) Im = XI(K)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

K = K + 1

 

 

 

 

K = K + 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

K = N1

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

K = N

0

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

б)

 

 

 

 

 

1

 

 

в)

Рис. 5.11. Граф-схемы алгоритмов перемножения комплексных последовательностей (а), подготовки и вывода частичных сверток (б) и подготовки и вывода выходной последовательности (в)

Соседние файлы в предмете Электроника