|
Целочисленные алгоритмы ЦОС, надо сформулировать правила |
|
|
|
 |
Ответов
|
Mar 8 2011, 04:31
|
Участник

Группа: Участник
Сообщений: 32
Регистрация: 20-03-10
Пользователь №: 56 092

|
Цитата Хлчется вкуритсь "трюки" на С чтобы всё что угодно писать... (КИХ, БИХ фильтрацию...) Реализация КИХ-фильтрации на архитектуре AVR. Числа в формате 1.1.14 Код //Порядок НЦФ #define N 22
//Сдвиг умножителей НЦФ #define SHIFT 14
//Весовые коэффициенты НЦФ #define FIR_COEFFS \ {\ (int)(-0.02144952651096*16384),\ (int)(-0.05675564761031*16384),\ (int)(-0.00722412687546*16384),\ (int)(-0.01824005662087*16384),\ (int)( 0.00295576469554*16384),\ (int)( 0.02091815981809*16384),\ (int)( 0.04723483351816*16384),\ (int)( 0.07439211184117*16384),\ (int)( 0.10087221829014*16384),\ (int)( 0.12272427450964*16384),\ (int)( 0.13727372353230*16384),\ (int)( 0.14230086051190*16384),\ (int)( 0.13727372353230*16384),\ (int)( 0.12272427450964*16384),\ (int)( 0.10087221829014*16384),\ (int)( 0.07439211184117*16384),\ (int)( 0.04723483351816*16384),\ (int)( 0.02091815981809*16384),\ (int)( 0.00295576469554*16384),\ (int)(-0.01824005662087*16384),\ (int)(-0.00722412687546*16384),\ (int)(-0.05675564761031*16384),\ }
typedef struct //Сигнальная память с указателем { int X[N]; unsigned char offset; } memory;
//НЦФ без сдвига сигнальной памяти int fir(int x, memory *mem) { static const int h[N] PROGMEM = FIR_COEFFS; //Весовые коэффициенты int out = 0; //Выходная переменная int *X = mem->X; //Указатель на сигнальную память unsigned char offset = mem->offset; //Смещение сигнальной памяти X[offset] = x; //Загрузка текущего отсчета в сигнальную память for(unsigned char i = 0, j = offset; i < N; i++, j++) //Цикл ДВС { out += (int) pgm_read_word(&h[i]) * ((long) X[j]) >> SHIFT; //Операция умножения с накоплением if(j == N - 1) j = -1; //Закольцовывание сигнальной памяти } mem->offset = offset? offset - 1: N - 1; //Сдвиг смещения сигнальной памяти return out; } Конкретно в цифровой фильтрации, исключение переполнений достигается путем масштабирования. Насчет БПФ не знаю.
Сообщение отредактировал PetrovichKR - Mar 8 2011, 04:32
|
|
|
|
Сообщений в этой теме
Zelepuk Целочисленные алгоритмы ЦОС Mar 6 2011, 07:22 _Anatoliy Цитата(Zelepuk @ Mar 6 2011, 09:22)
Это... Mar 6 2011, 08:35 Zelepuk Познавательное видео.
Но хотелось бы писать всё с... Mar 7 2011, 06:30 alexPec Цитата(Zelepuk @ Mar 7 2011, 09:30) Позна... Mar 7 2011, 10:07  Zelepuk Цитата(alexPec @ Mar 7 2011, 13:07) Переп... Mar 7 2011, 13:38   alexPec Цитата(Zelepuk @ Mar 7 2011, 16:38) когда... Mar 7 2011, 14:47 diwil Цитата(Zelepuk @ Mar 7 2011, 09:30) Иными... Mar 7 2011, 11:58  Zelepuk Цитата(diwil @ Mar 7 2011, 14:58) 1. floa... Mar 7 2011, 21:12   diwil Цитата(Zelepuk @ Mar 8 2011, 00:12) Никак... Mar 9 2011, 08:05 Ruslan1 еще может интересно будет, насчет целочисленной ре... Mar 18 2011, 16:48 Zelepuk Цитата(Ruslan1 @ Mar 18 2011, 19:48) еще ... Mar 18 2011, 17:36 MSP430F Цитата(Ruslan1 @ Mar 18 2011, 20:48) еще ... Aug 22 2013, 14:14  Zelepuk Цитата(MSP430F @ Aug 22 2013, 18:14) Скаж... Aug 23 2013, 07:55   MSP430F Цитата(Zelepuk @ Aug 23 2013, 11:55) коне... Aug 23 2013, 08:52    Zelepuk Цитата(MSP430F @ Aug 23 2013, 12:52) Вопр... Aug 23 2013, 09:02     MSP430F Цитата(Zelepuk @ Aug 23 2013, 13:02) поче... Aug 23 2013, 09:16      Maverick Цитата(MSP430F @ Aug 23 2013, 12:16)
по... Aug 23 2013, 09:35      Corner Цитата(MSP430F @ Aug 23 2013, 13:16) Вот ... Aug 23 2013, 18:04       MSP430F Цитата(Corner @ Aug 23 2013, 22:04) С уче... Aug 26 2013, 12:44        Corner Цитата(MSP430F @ Aug 26 2013, 16:44) Как ... Aug 29 2013, 15:02      alex_os Цитата(MSP430F @ Aug 23 2013, 13:16) Вот ... Sep 18 2013, 19:26       Corner Цитата(alex_os @ Sep 18 2013, 23:26) можн... Sep 19 2013, 15:02       DASM Цитата(alex_os @ Sep 18 2013, 23:26) Ужас... Sep 19 2013, 15:21        Corner Цитата(DASM @ Sep 19 2013, 19:21) UMULL 3... Sep 19 2013, 15:28 Corner На ПЛИС БПФ 8192 точки 18 бит знаковое сносно дает... Aug 22 2013, 14:35 Zelepuk Вообще проще взять и проверить. Код есть. За полча... Aug 23 2013, 09:17 DASM Странно, дока говорит иное.Вы уверены, что это не ... Sep 19 2013, 15:34 Corner Цитата(DASM @ Sep 19 2013, 19:34) Странно... Sep 19 2013, 15:36  AndrewN QUOTE (Corner @ Sep 19 2013, 18:36) Тольк... Sep 19 2013, 17:41   Corner Цитата(AndrewN @ Sep 19 2013, 21:41) Для ... Sep 24 2013, 16:30    AndrewN QUOTE (Corner @ Sep 24 2013, 19:30) 16+16... Sep 24 2013, 20:57     Corner Цитата(AndrewN @ Sep 25 2013, 00:57) А та... Sep 29 2013, 09:15 DASM Посмотрю завтра, с телефона неудобно. И что, в экс... Sep 19 2013, 15:44
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|