Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Помогите переделать цифровой фильтр
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Алгоритмы ЦОС (DSP)
LCD
Здравствуйте. Есть устройство с работающим эллиптическим полосовым цифровым фильтром 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, могу выложить и ее. Подскажите, как перерасчитать фильтр.
kovigor
Цитата(LCD @ Feb 27 2012, 09:33) *
Подскажите, как перерасчитать фильтр.


Книжку Сергиенко посмотрите, там очень хорошо описаны основы работы в MatLab (для начинающих - самое то) и даны примеры синтеза фильтров:


http://lord-n.narod.ru/walla.html
LCD
Книжку, увы, не осилю - нужно побыстрее, а математика такого уровня вводит меня в печаль. Уважаемые гуру, подскажите хотя бы, в какую сторону копать.
kovigor
Цитата(LCD @ Mar 2 2012, 21:20) *
математика такого уровня вводит меня в печаль


Вы за это время уже бы 100 раз прочитали у Сергиенко, как это сделать (как синтезировать фильтр средствами MatLab). Ничего сверхсложного там нет ...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.