-
- Вот как только вместо "дизайна фильтров" займётесь "разработкой фильтров", "вдруг" выяснится, что 32 разрядов хватает на очень многое. А уж 32+8 как у приличных ДСП или 32+32 как у АРМа так и вообще на всё. - Крок(08.11.2013 14:09)
- Типичный пример так называемого пустословия. Если мы имеем 10-битные всего лишь данные и 10-битные же коэффициенты, то уже получим 20 бит на результат. В формуле y=x[0]*a + y[0]*b + x[1]*c + y[1]*d, например. И в следствии рекурсии мы уже fk0(651 знак., 08.11.2013 14:56)
- Я так понимаю, что float с 24 значащими битами эти проблемы решает? - AD(08.11.2013 15:15)
- Я щитаю на ДСПИКе фильтры по 256 отсчётов, умножая вектор 16-разрядных к-тов на вектор 12-разрядных сигналов. Это занимает 256 тактов. 40-разрядный результат сдвигаю на любое число разрядов вправо за 1 такт и кладу куда угодно (ещё 1). У АРМов Крок(122 знак., 08.11.2013 15:14)
- Только настоящие програ
ламмеры, увидев 10-битные входные данные, применяют для их фильтрации и 10-битные же коэффициенты :)) - MBedder(08.11.2013 15:00)- А какие должны быть коэффициенты? С комплексной и отрицательной разрядностью? Пусть данные будут 12-битные, а коэффициенты 8-битные. Только теперь впиши в них свой фильтр попробуй. - fk0(08.11.2013 15:24)
- При 12-битных данных вполне приличные FIR (и некоторые IIR) получаются с 16-битными коэффициентами, а для IIR в подавляющем большинстве случаев достаточно 32-битных коэффициентов и 40-битного накопления MBedder(124 знак., 08.11.2013 19:01)
- чтд. пишем double и не морочим мозг этими вашими ассемблерами проф. уровня. 32 бита -- мало. - fk0(08.11.2013 19:06)
- Ога. А потом удивляемся, почему фильтр, написанный с double, работает на 32-битнике в разы медленней, чем правильный целочисленный на 8-битнике, да еще и шумит, как паровоз :)) - MBedder(08.11.2013 19:09)
- На 8-битнике уж точно нет 40-битных маков... только long (без второго long) и. возможно, даже вменяемый double (не 24 бита). - fk0(08.11.2013 19:19)
- а вот ху: SiLabs С8051F12x и F13x имеет 40-битный МАС koyodza(41 знак., 08.11.2013 19:31)
- На 8-битнике уж точно нет 40-битных маков... только long (без второго long) и. возможно, даже вменяемый double (не 24 бита). - fk0(08.11.2013 19:19)
- Ога. А потом удивляемся, почему фильтр, написанный с double, работает на 32-битнике в разы медленней, чем правильный целочисленный на 8-битнике, да еще и шумит, как паровоз :)) - MBedder(08.11.2013 19:09)
- чтд. пишем double и не морочим мозг этими вашими ассемблерами проф. уровня. 32 бита -- мало. - fk0(08.11.2013 19:06)
- я там выше привёл пример - Крок(08.11.2013 15:27)
- Ты выше пустословишь не по делу. Приведи конкретный пример с 8-битными коэффициентами и методом их расчёта без "дизайна". - fk0(08.11.2013 15:28)
- С тобой я тоже гусей пас? Я привёл пример с 16-разрядными коэффицинетами и 12-разрядным сигналом. Этого мало? - Крок(08.11.2013 15:32)
- Это не рекусивный фильтр ("Я щитаю на ДСПИКе фильтры по 256 отсчётов, умножая вектор 16-разрядных к-тов на вектор 12-разрядных сигналов. Это занимает 256 тактов. 40-разрядный результат сдвигаю на любое число разрядов вправо за 1 такт и кладу куда fk0(205 знак., 08.11.2013 16:03)
- Рекурсивные фильтры по-разному можно записывать. AD(121 знак., 08.11.2013 16:37)
- За "всякий" не скажу, но пиковские МАКи на много способны. Для рекурсивного фильтра пригодны тож. У АРМов, об которых здесь спич, есть операция умножения 32х32=64, а у Кортехов ещё и с накоплением. 64-разрядным. Наверняка есть задачки, где и этого Крок(52 знак., 08.11.2013 16:18)
- Это не рекусивный фильтр ("Я щитаю на ДСПИКе фильтры по 256 отсчётов, умножая вектор 16-разрядных к-тов на вектор 12-разрядных сигналов. Это занимает 256 тактов. 40-разрядный результат сдвигаю на любое число разрядов вправо за 1 такт и кладу куда fk0(205 знак., 08.11.2013 16:03)
- С тобой я тоже гусей пас? Я привёл пример с 16-разрядными коэффицинетами и 12-разрядным сигналом. Этого мало? - Крок(08.11.2013 15:32)
- Ты выше пустословишь не по делу. Приведи конкретный пример с 8-битными коэффициентами и методом их расчёта без "дизайна". - fk0(08.11.2013 15:28)
- При 12-битных данных вполне приличные FIR (и некоторые IIR) получаются с 16-битными коэффициентами, а для IIR в подавляющем большинстве случаев достаточно 32-битных коэффициентов и 40-битного накопления MBedder(124 знак., 08.11.2013 19:01)
- А какие должны быть коэффициенты? С комплексной и отрицательной разрядностью? Пусть данные будут 12-битные, а коэффициенты 8-битные. Только теперь впиши в них свой фильтр попробуй. - fk0(08.11.2013 15:24)
- Кроме того, програ
ламмеры всегда считают, что данные для фильтрации им подают с выхода идеального 32-битного АЦП :)) - MBedder(08.11.2013 14:16)
- Типичный пример так называемого пустословия. Если мы имеем 10-битные всего лишь данные и 10-битные же коэффициенты, то уже получим 20 бит на результат. В формуле y=x[0]*a + y[0]*b + x[1]*c + y[1]*d, например. И в следствии рекурсии мы уже fk0(651 знак., 08.11.2013 14:56)
- Можно все это ручками считать или использовать fdatool из matlab. Насколько помню, параметры квантизации там задаются в широких пределах - amusin(08.11.2013 14:06)
- Вот как только вместо "дизайна фильтров" займётесь "разработкой фильтров", "вдруг" выяснится, что 32 разрядов хватает на очень многое. А уж 32+8 как у приличных ДСП или 32+32 как у АРМа так и вообще на всё. - Крок(08.11.2013 14:09)