roboforum.ru

Технический форум по робототехнике.

Переход с АVR на PIC, перешедший в холивар AVR vs PIC =)

Все здесь

Re: Переход с АVR на PIC, перешедший в холивар AVR vs PIC =)

Сообщение =DeaD= » 02 июл 2011, 20:39

Не согласен. Потому что сдвиговый регистр будет внутри FIR только при определенной и далеко не самой оптимальной его организации. Обычно используют кольцевой буфер, а не сдвиговый регистр.

Добавлено спустя 55 секунд:
Я уж не говорю про то, что FIR не обязан получать пакеты и выдавать сдвинутые пакеты наружу, т.е. вокруг FIR надо построить еще нехилую обвязку, чтобы он был сдвиговым регистром.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Переход с АVR на PIC, перешедший в холивар AVR vs PIC =)

Сообщение Dmitry__ » 02 июл 2011, 20:43

чем отличается кольцевой буфер от сдвигового регистра?
в случае fir шириной в один бит, вся обвязка это элементы "исключающее или"
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

Re: Переход с АVR на PIC, перешедший в холивар AVR vs PIC =)

Сообщение =DeaD= » 02 июл 2011, 20:52

FIR по определению имеет на входе N-битное число и на выходе M-битное число, внутри у него пакет из K коэффициентов и механизм обработки, как вы из него собираетесь сделать сдвиговый регистр с одними только XOR снаружи - мне неведомо.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Переход с АVR на PIC, перешедший в холивар AVR vs PIC =)

Сообщение Dmitry__ » 02 июл 2011, 20:55

это я тебе потом обьясню, давай последовательно все делать?
мне не понятно определение: "кольцевой буфер"
чем отличается кольцевой буфер от сдвигового регистра?
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

Re: Переход с АVR на PIC, перешедший в холивар AVR vs PIC =)

Сообщение =DeaD= » 02 июл 2011, 21:15

Ну вы даёте, это же базовые структуры данных... кольцевой буфер размером N добавляет элемент и удаляет элемент за время O(1), а классический сдвиговый регистр делает это за O(N).

Добавлено спустя 1 минуту 20 секунд:
http://en.academic.ru/dic.nsf/enwiki/6503588
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Переход с АVR на PIC, перешедший в холивар AVR vs PIC =)

Сообщение Dmitry__ » 02 июл 2011, 21:27

ты ни чего не путаешь?
как кольцевой буфер из твоей ссылки применить к фир из твоей же ссылки?
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

Re: Переход с АVR на PIC, перешедший в холивар AVR vs PIC =)

Сообщение =DeaD= » 02 июл 2011, 21:32

Напрямую, для хранения X[n]...X[n-N], а в чем проблема?
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Переход с АVR на PIC, перешедший в холивар AVR vs PIC =)

Сообщение Dmitry__ » 02 июл 2011, 21:36

в фир частота дискретизации постоянная, зачем там такое устройство?
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

Re: Переход с АVR на PIC, перешедший в холивар AVR vs PIC =)

Сообщение =DeaD= » 02 июл 2011, 21:47

Такое ощущение, что мы с вами на разных языках говорим. Я выше явно указал зачем, разве что код не написал.

Вот статья про FIR: http://ru.wikipedia.org/wiki/FIR

Там в примере кольцевого буфера нету, поэтому приходится делать сдвиг:
Код: Выделить всёРазвернуть
/* Смещаем задержаный сигнал */
    for (i = 127; i > 0; i--)
        sample[i] = sample[i - 1];
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Переход с АVR на PIC, перешедший в холивар AVR vs PIC =)

Сообщение Dmitry__ » 02 июл 2011, 23:07

>Такое ощущение, что мы с вами на разных языках говорим.
скорее всего да, поэтому я и пытаюсь понять твой язык... давай на ты?
сдвиг в этой статье и есть регистр сдвига.
Как из кольцевого буфера делать отводы от внутр. значений регистра?
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

Re: Переход с АVR на PIC, перешедший в холивар AVR vs PIC =)

Сообщение Romikgy » 03 июл 2011, 00:31

и я свою мелочь вставлю )))
у фира основное не сдвиги , а операция умножения и сложения....поэтому для реализаций фир юзают dsp , а не плисы...
реализовать фир на сдвигах и ксорах думаю реально , но по производительности не будет отбивать используя заточеные камни для таких целей...
PS плюс последний пример вообще из другой оперы ,ибо там уже 16 битный камень.... если заюзать арм еще круче будет ...да и по цене на камень они сравнились с пиками и аврами....
die Wahrheit ist irgendwo da draußen
Аватара пользователя
Romikgy
 
Сообщения: 750
Зарегистрирован: 15 ноя 2009, 13:37
Откуда: Porto Franco "Odessa"

Re: Переход с АVR на PIC, перешедший в холивар AVR vs PIC =)

Сообщение Dmitry__ » 03 июл 2011, 04:11

если природа сигнала однобитная, какой должен быть фир?
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

Re: Переход с АVR на PIC, перешедший в холивар AVR vs PIC =)

Сообщение =DeaD= » 03 июл 2011, 07:17

Dmitry__ писал(а):Как из кольцевого буфера делать отводы от внутр. значений регистра?

Примерно так:
Код: Выделить всёРазвернуть
/* КИХ Фильтр на 128 отводов */
float fir_filter(float input)
{
    int i;
    static float sample[128];
    static int ptr=0;
    float acc;
    float output;

    sample[ptr] = input;

    acc = 0.0f;                     /* Аккумулятор */

    /* Умножение с накоплением */
    for (i = 0; i < 128; i++) {
        acc += (h[i] * sample[(ptr+i)&127]);
    }

    ptr=(128-1+ptr)&127;

    /* Выход */
    output = acc;

    return output;
}
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Переход с АVR на PIC, перешедший в холивар AVR vs PIC =)

Сообщение Dmitry__ » 03 июл 2011, 13:33

т.е. кольцевой буфер это реализация сдвигового регистра длиной 128 и шириной float на процессоре у которого это плохо получается?
для малоточечного фир зачем такие сложности?
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

Re: Переход с АVR на PIC, перешедший в холивар AVR vs PIC =)

Сообщение =DeaD= » 03 июл 2011, 14:14

Тяжелый случай...
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Пред.След.

Вернуться в Свободное общение

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 20