реклама на сайте
подробности

 
 
> Подскажите формулу фильтра для структуры Lattice Arma
MSP430F
сообщение Jun 4 2013, 06:21
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 85
Регистрация: 20-05-13
Пользователь №: 76 911



Всем доброго времени суток!
Коллеги, помогите!
Рассчитываю в MATLAB в утилите FDATool цифровой полосовой фильтр Чебышева II рода. Сделал разбиение на секции 2-го порядка, получил в хедере коэффициенты в виде двумерных массивов NUM и DEN. Формулы секций простые, все работает. Озадачился получением стабильной версии в виде одной секции (для сокращения вычислений). Порядок фильтра задал 8. Применил Convert Structure... к Lattice Arma, получил стабильный фильтр. Создал сишный хедер и получил два массива.

const int KL = 16;
const real32_T K[16] = {
-0.9990231991, 0.9992837906, -0.9991765022, 0.9989774227, -0.9984907508,
0.9831924438, 0.1230626926, 0.3759146333, -0.7456214428, -0.4113018215,
-0.2647816539, 0.1375903487, 0.199342683, 0.1202145815, 0.0357035771,
0.00457067322
};
const int VL = 17;
const real32_T V[17] = {
3.237323187e-010,8.469006829e-009,-4.508386837e-007,-1.037612128e-005,0.0004177154624,
0.009835269302, 0.04770011082, -0.07836318016, -0.08220990002, 0.04402532056,
0.002590565477, -0.3493199348, -0.3774584234, 0.05220580474, 0.3641556203,
0.2648055255, 0.06757183373
};

Смутило сразу названия массивов. Вместо NUM и DEN какие-то K и V. А потом посмотрел еще структуру этого Lattice Arma и совсем запутался.
Какие формулы расчета надо использовать для этих коэффициентов ???
Поскажите, плиз.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 3)
SemperAnte
сообщение Jun 4 2013, 07:45
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 89
Регистрация: 24-10-10
Из: Санкт-Петербург
Пользователь №: 60 386



Попробуйте в FDATool создать Simulink-модель своего фильтра на базовых элементах и из неё выцепить формулу.
Go to the top of the page
 
+Quote Post
fontp
сообщение Jun 4 2013, 10:21
Сообщение #3


Эксперт
*****

Группа: Свой
Сообщений: 1 467
Регистрация: 25-06-04
Пользователь №: 183





ARMA - это дробно-полиномиальный фильтр общего вида A(z)/B(z)
А Lattice это когда и числитель и знаменатель разложены на простые множители и фильтрация каскадно

(A1(z)/B1(z)) (А2(z)/B2(z)) ... (Аn(z)/Bn(z))

А вот как Матлаб упаковывает коэффициенты нужно действительно в Матлабе смотреть
или в его описании

http://www.weizmann.ac.il/matlab/toolbox/s...sics27.html#960
Go to the top of the page
 
+Quote Post
MSP430F
сообщение Jun 5 2013, 11:18
Сообщение #4


Частый гость
**

Группа: Участник
Сообщений: 85
Регистрация: 20-05-13
Пользователь №: 76 911



Спасибо за разъяснения!
Жаль, но экономии вычислений не получится. Коэффициенты K используются дважды, поэтому получается 49 умножений вместо 40, как в Direct Form I. Попробую Transposed Direct Form II. Там хотя бы можно сэкономить на сдвиговых регистрах, так как используется только один массив вместо двух.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 25th July 2025 - 12:31
Рейтинг@Mail.ru


Страница сгенерированна за 0.01363 секунд с 7
ELECTRONIX ©2004-2016