Скачиваний:
61
Добавлен:
21.03.2016
Размер:
2.39 Mб
Скачать

Свойства КИХ фильтра

Заменив z его оригинальным определением:

 

 

 

 

z e pT e( j )T

нормализовав к T=1,

 

опустив (меньше фильтр) и

 

 

получим

 

 

 

 

 

 

 

 

 

 

 

N 1

 

 

 

 

 

H (z)

 

z e j H (e j ) bk e jk

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

k 0

 

 

 

 

так как e-j2

= 1, получим:

 

 

 

-j2 k

N 1

 

 

 

 

N 1

 

 

H (e j( 2 ) ) bk e jk ( 2 ) bk e jk e j 2 k

H (e j )

 

 

 

k 0

k 0

 

Частотная характеристика КИХ фильтр периодична 2 !

Можно ограничить спектр!

14 - 11

Пример 1: КИХ фильтр

x(n)

 

 

 

 

 

 

 

 

 

 

 

 

 

x(n-1)

 

 

 

 

 

 

Частотная характеристик

 

 

 

 

 

 

 

Z-1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Тип фильтра ?

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0.5

 

 

 

 

0.5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y(n)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

+

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

b0 = 0..5 b1 = 0..5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

z

e

pT

1

 

 

0

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

; p j ; 2 f; T fA

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

H (z) b z0

b z 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ffA = частота дискретизации

 

 

H (z) 0.5(1 z

1

)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

j 2 f

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

H ( j ) 0.5(1 e

 

 

 

 

f A

)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

H ( j ) 0.5(1 cos(2

 

 

 

f

)

j sin(2

f

))

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

fA

 

 

fA

 

 

 

 

 

 

 

 

 

 

H ( j )

 

Re2 Im2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

14 - 12

Пример 1: КИХ фильтр

(продолжение)

 

H ( j ) 0.5(1 cos(2

f

)

j sin(2

f

))

 

 

 

 

 

 

 

 

fA

 

fA

 

H ( j )

 

Re2 Im2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

|H(jω| (j )|)|

1

0..5

1. f 0

: | H(j

2 f 0.125* fA

: | H(j 0.92

3 f 0.25* fA

: | H(j 0.707

4 f 0.375* fA

: | H(j 0.382

5 f 0.5 * fA

: | H(j 0

Тип фильтра: нижних частот

 

 

 

f/f

 

 

 

 

 

 

.25

0.5

f/fA

A

0.

.

 

14 - 13

 

 

 

 

 

 

 

Пример 1: КИХ фильтр

 

 

 

 

 

 

 

 

(продолжение)

 

 

 

 

H ( j ) 0.5(1 cos(2

f

) j sin(2

 

f

))

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

fA

 

fA

Наложение спектра,

 

 

H ( j )

 

Re2 Im2

 

 

 

 

 

 

 

 

 

 

 

.5 f

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

если f > 0.

A

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Входная частота будет

 

1. f 0.625* fA

: | H(j 0.382

 

 

 

 

 

2 f 0.75* fA

: | H(j 0.707

 

 

 

 

ограничена 0.5*f

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A

 

3 f 0.875* fA

: | H(j 0.92

 

 

 

 

дополнительным

 

4 f fA

: | H(j 1

 

 

 

 

входным фильтром

 

 

 

 

 

 

 

 

|H(jω| (j )|

 

 

 

 

 

 

 

 

нижних частот

)|

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0..5

.25

0.5

f/f

 

0.

.

 

f/fA

 

 

 

A 14 - 14

Пример 1: КИХ фильтр

(продолжение)

Решение: использовать антиалай-зинговый фильтр на входе для ограничения входной частоты на fA/2. x[n]

x(t)

 

 

 

 

 

 

АЦП

 

 

 

КИХ

 

y[n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Аналоговый

антиалайзинговы й фильтр

14 - 15

Пример 2: КИХ фильтр

x(n)

 

 

 

 

 

 

 

 

 

x(n-1)

b0 = 0.5 b1 = - 0.5

 

 

 

 

 

Z-1

 

 

 

 

 

 

 

 

 

 

Частотная характеристик

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0.5

 

 

 

 

 

 

 

-0.5

 

 

 

 

 

 

Тип фильтра ?

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

+ y(n)

Замечание : изменение b1 с +0.5 на -0.5 !

|H(jω| (j )|)|

1

 

 

 

Тип фильтра:

 

 

 

 

 

 

0..5

 

 

 

верхних частот

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

.25

0.

5

f/f

 

0.

.

 

f/fA

 

 

 

 

 

 

A 14 - 16

 

Пример 3: КИХ фильтр

 

 

 

-1)

 

 

 

 

 

 

 

 

 

x(n(n- )

 

-2)

 

Предположим,, что нет предыдущ

 

-1

 

-1

x(n)( )

 

x(n(n- )

 

Z-1

 

Z-1

 

отсчетов

 

-1) = 0; X(-2) = 0

0.25

.5

 

0.25

 

 

X(0)( ) = 20;; X((- )

; (- )

 

 

 

и пусть

 

 

 

.

0.

 

 

.

 

 

 

 

 

 

 

 

 

 

 

 

b0

.25 b = 0.5 b = 0.25

 

 

 

 

 

 

 

= 0.

1 .

2 .

 

 

+

 

 

+

 

0

 

1

2

$

 

 

 

y(n)( )

 

 

 

 

Вход

 

 

 

 

 

 

 

 

 

40

 

 

 

 

 

 

 

 

 

 

40

 

 

 

 

 

 

 

 

30

 

 

 

 

 

 

 

 

 

20

 

 

 

 

 

 

 

 

 

 

10

 

12

 

 

timeti

 

 

 

 

 

 

sat sun

 

 

 

 

montuewedt

fri

 

 

 

 

thut fri

s

t s

 

 

 

 

 

 

$

Выход

 

 

 

 

 

 

 

 

40

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

30

 

 

 

 

 

 

 

 

 

 

20

 

 

 

 

 

Усредненное вычисле

10

 

 

 

 

 

 

 

fri

sun

timeti

montuewedthu fri

sats t s

14 - 17

t

t

 

 

Вычисление периодичности КИХ

фильтра

Младший

адрес

памяти X0

X1

Старший X2 адрес памяти

Перед вычислением второго результата КИХ фильтра:

X0 -- последний отсчет

старое X0 становиться новым X1

старый X1 становиться

новым X2

“обновление

линии

задержки”

Какое перемещение необходимо выполнить сна

14 - 18

C реализация КИХ фильтра

/***************************************************************

*Функция: IQssfir()

*Описание: IQmath FIR фильтр n-порядка.

*y(k) = a(0)*x(k) + a(1)*x(k-1) + ... + a(n-1)*x(k-n+1)

*DSP: TMS320F2812, TMS320F2811, TMS320F2810

*Подключаемые файлы: DSP281x_Device.h, IQmathLib.h

*Функция прототип: _iq IQssfir(_iq*, _iq*, Uint16)

*Применение: y = IQssfir(x, a, n);

*Входные параметры: x = указатель на массив входных отсчетов

*

a

=

указатель на массив

коэффициентов

*

n

=

число коэффициентов

 

* Возвращаемое значение: y = результат

*****************************************************************/

14 - 19

C реализация КИХ фильтра

_iq IQssfir(_iq *x, _iq *a, Uint16 n)

{

Uint16 i;

// переменная общего назначения

_iq y;

// результат

_iq *xold;

// указатель на линию задержки

/*** Настройка указателей ***/

a = a + (n-1);

// а указывает на последний коэффициент

x = x + (n-1);

// x указывает на последний элемент

xold = x;

// временного буфера

/*** Последний цикл не требует обновления линии задержки ***/

y = _IQmpy(*a--, *x--);

/*** Обработка циклов ведется с конца в начало ***/

for(i=0; i<n-1; i++)

{

y = y

+ _IQmpy(*a--

, *x);// цикл

фильтра

*xold

-- = *x--;

//

обновление линии задержки

}

return(y);

}

14 - 20

Соседние файлы в папке C2000WEB_rus