Здравствуйте. Есть устройство с работающим эллиптическим полосовым цифровым фильтром 10 порядка и требуется этот фильтр немного переделать. Известно, что фильтр рассчитан в Matlab, но проблема в том, что я никогда не работал ни с Матлабом, ни с цифровыми фильтрами вообще. Частота выборки - 512 Гц, полоса - 47 - 53 Гц.
Нужно одно из двух, а лучше - оба пункта:
а) сдвинуть верхнюю границу до 63 Гц,
б) сдвинуть полосу на 10 Гц вверх.
Коэффициенты в программе описаны так:
Код
#define IIR_filter_order 10
int Filter50_coeffs[(IIR_filter_order>>1)*5] =
{
0x00000609, /* section 1 coefficient B2 */
0xFFFFF7D8, /* section 1 coefficient B1 */
0x00000609, /* section 1 coefficient B0 */
0xFFFFC306, /* section 1 coefficient A2 */
0x0000663E, /* section 1 coefficient A1 */
0x00000AD5, /* section 2 coefficient B2 */
0xFFFFEC77, /* section 2 coefficient B1 */
0x00000AD5, /* section 2 coefficient B0 */
0xFFFFC274, /* section 2 coefficient A2 */
0x00006509, /* section 2 coefficient A1 */
0x00000EFB, /* section 3 coefficient B2 */
0xFFFFE9EE, /* section 3 coefficient B1 */
0x00000EFB, /* section 3 coefficient B0 */
0xFFFFC24E, /* section 3 coefficient A2 */
0x00006868, /* section 3 coefficient A1 */
0x00000D44, /* section 4 coefficient B2 */
0xFFFFE8C0, /* section 4 coefficient B1 */
0x00000D44, /* section 4 coefficient B0 */
0xFFFFC0EB, /* section 4 coefficient A2 */
0x00006544, /* section 4 coefficient A1 */
0xFFFFFC0A, /* section 5 coefficient B2 */
0x00000000, /* section 5 coefficient B1 */
0x000003F6, /* section 5 coefficient B0 */
0xFFFFC0D5, /* section 5 coefficient A2 */
0x00006A7B /* section 5 coefficient A1 */
};
Сама программа фильтрации написана на ассемблере для ARM, могу выложить и ее. Подскажите, как перерасчитать фильтр.