[an error occurred while processing this directive]
|
Но, что то с mas не работает. Еще раз всё по порядку мож где я что пропустил...
Матлаб мне выдал следующее: IIR фильтр 2 порядка, метод расчета Butterworth, Фсампл = 2400; Фсреза= 100Гц; Фильтп стабильный получился.
Numerator
QuantizedCoefficients{1} ReferenceCoefficients{1}
(1) 0.014404296875000 0.014401440346511196
(2) 0.028808593750000 0.028802880693022392
(3) 0.014404296875000 0.014401440346511196
Denominator
QuantizedCoefficients{2} ReferenceCoefficients{2}
+ (1) 0.999969482421875 1.000000000000000000
- (2) -1.000000000000000 -1.632993161855452300
(3) 0.690612792968750 0.690598923241497080
после экспорта в CCS:
/*
* Filter Design and Analysis Tool - Generated Filter Coefficients - C Source
* Generated by MATLAB - Signal Processing Toolbox
*/
/* General type conversion for MATLAB generated C-code */
#include "tmwtypes.h"
/*
* Expected path to tmwtypes.h
* D:\MATLAB\extern\include\tmwtypes.h
*/
const int NL = 3;
const int16_T NUM[3] = {
472, 944, 472
};
const int DL = 3;
const int16_T DEN[3] = {
32767, -32768, 22630
};
В асме я полагаю х_с0 = 472; х_с1 = 944 ;х_с2 = 472;
у_с0 = 32767; у_с1 = -32768 ; у_с2 = 22630;
Коэффициенты фильтра.
попробовав это реализовать, как написано выше ни чего хорошего не получил, но добавив одну строчку stm #y_c0,T mac y_0,A ; фильтр вроде заработал.
x_0 только, что пришедшее значение, выход фильтра.
привожу текст:
SSBX FRCT
stm #x_c0,T
mpy x_0,A
stm #x_c1,T
mac x_1,A
stm #x_c2,T
mac x_2,A
stm #y_c0,T
mac y_0,A
stm #y_c1,T
mac y_1,A
stm #y_c2,T
mac y_2,A
sth A,y_0
mvkd x_1,x_2;
mvkd x_0,x_1;
mvkd y_1,y_2;
mvkd y_0,y_1;
Ничего не понимаю, зачем там нужна
stm #y_c0,T
mac y_0,A
Напишите какой-нибудь пример IIR 2 порядка.
E-mail: info@telesys.ru