|
Как сдвинуть все элементы массива на 1, Оптимизация этого процесса |
|
|
|
Dec 21 2007, 11:31
|
Участник

Группа: Новичок
Сообщений: 19
Регистрация: 17-05-07
Пользователь №: 27 781

|
Здравствуйте!
Кто-нибудь знает как можно оптимизировать сдвиг элементов массива на 1 (для Blackfin): ------------------------------------------------------------------- void AddSample(short pBuffer[], short sValue, int nSize) { int i; for (i = 1; i < nSize; i++) { pBuffer[nSize - i] = pBuffer[nSize - i - 1]; } pBuffer[0] = sValue; } -------------------------------------------------------------------- Как-нибудь можно для этого использовать кольцевые буфферы или DMA память-память?
|
|
|
|
|
 |
Ответов
|
Jan 5 2008, 04:48
|
Участник

Группа: Новичок
Сообщений: 26
Регистрация: 20-11-07
Пользователь №: 32 502

|
Осталось добавить, что ДПФ сдвинутой по кольцу последовательности равен ДПФ несдвинутой умноженной на exp(-j*2*pi/N*n*k) k - пробегает 0..N-1 n - величина сдвига N - длина последовательности :-)
|
|
|
|
|
Jan 5 2008, 08:32
|
Местный
  
Группа: Участник*
Сообщений: 418
Регистрация: 20-08-07
Пользователь №: 29 930

|
Цитата(dxp @ Dec 21 2007, 14:57)  Не уверен только, что требуемого результата можно добиться на ЯВУ, скорее всего придется реализовывать на асме. Вы видимо ярый ненавистник ЯВУ... На самом деле все что можно написать на ассемблере - можно написать и на любом ЯВУ причем совершенно необязательно с потерей эффективности, но зато намного структурнее и понятнее. Цитата(vadkudr @ Jan 5 2008, 07:48)  Осталось добавить, что ДПФ сдвинутой по кольцу последовательности равен ДПФ несдвинутой умноженной на exp(-j*2*pi/N*n*k) k - пробегает 0..N-1 n - величина сдвига N - длина последовательности :-) Вы незаметили что у товарища вовсе не сдвиг по кольцу, а вот что: Цитата(azh @ Dec 22 2007, 14:19)  Вся задача выглядит так: 1. Добавить очередной отчет с АЦП в буффер (на место первого элемента буффера, при этом все остальные элементы сдвинуть на 1, и последний "вытолкнуть" из буффера) 2. Посчитать ДПФ для этого буффера и после каждого сдвига и добавления вся последовательность изменяется.
Сообщение отредактировал Николай Z - Jan 5 2008, 08:35
|
|
|
|
|
Jan 5 2008, 10:11
|

Adept
     
Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343

|
Цитата(Николай Z @ Jan 5 2008, 14:32)  Вы видимо ярый ненавистник ЯВУ...  Сия фраза ясно указывает, что либо: 1) вы ничего про меня не знаете; 2) вы просто провокатор. Второе с вероятностью 0.99. Впрочем, все уже знают, что это у вас работа такая. Меня зацепить не удастся, т.ч. направляйте усилия на более наивных участников. Цитата(Николай Z @ Jan 5 2008, 14:32)  На самом деле все что можно написать на ассемблере - можно написать и на любом ЯВУ причем совершенно необязательно с потерей эффективности, но зато намного структурнее и понятнее. Написана очевидная глупость. На самом деле на некоторых ЯВУ (как правило С/C++) можно иногда написать без потери эффективности по сравнению с асмом, но достигается это в подавляющем большинстве случаев за счет специальных непереносимых расширений конкретного ЯВУ в части конкретной платформы. Могу с легостью привести пример для того же Blackfin'а, где асм даст преимущество ЯВУ, но не буду этого делать - вступать в спор с виртуалами куда бОльшая глупость, нежели вышеотквоченная фраза.  Т.ч. цепляйте кого-нить другого. счастливо оставаться. P.S. Можете и дальше (это уже второй случай) искать мои старые посты и пытаться меня вытащить на дискуссию, но сразу предупреждаю, этого вам не удастся. Меняйте тактику.
--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
|
|
|
|
|
Jan 5 2008, 15:39
|

Мастер
   
Группа: Свой
Сообщений: 730
Регистрация: 18-02-06
Из: Москва
Пользователь №: 14 474

|
Цитата(Николай Z @ Jan 5 2008, 13:32)  Да не нужны Вы мне ни для какой дискусии - это просто попутное замечание по сути сказанного Вами... Не обольщайтесь... [Грубый пост-новогодний OFF]Уважаемый Николай Z! Вы хотя бы в раздел про ЦОС не лезьте. Для вас есть Off topics, резвитесь там!
--------------------
شامل
|
|
|
|
Сообщений в этой теме
azh Как сдвинуть все элементы массива на 1 Dec 21 2007, 11:31 rezident А может проще ничего не двигать, а лишь модифициро... Dec 21 2007, 11:45 dxp Цитата(azh @ Dec 21 2007, 17:31) Кто-нибу... Dec 21 2007, 11:57 fontp Цитата(dxp @ Dec 21 2007, 14:57) В этом п... Dec 21 2007, 12:06 dtsar Цитата(azh @ Dec 21 2007, 14:31) Здравств... Dec 21 2007, 18:16 azh Спасибо за ответы!
В help к VDSP++ написано, ... Dec 21 2007, 18:40  fontp Цитата(azh @ Dec 21 2007, 21:40) Спасибо ... Dec 22 2007, 10:26 rezident А зачем вообще нужно сдвигать буфер? Почему нельзя... Dec 21 2007, 22:37 shasik Цитата(rezident @ Dec 22 2007, 00:37) А з... Dec 22 2007, 06:20 azh На самом деле, сдвиг всех элементов массива это то... Dec 22 2007, 11:19 fontp Цитата(azh @ Dec 22 2007, 14:19) На самом... Dec 22 2007, 12:52 azh Большое спасибо за разъяснения! Действительно,... Dec 22 2007, 13:58  TSerg Цитата(Николай Z @ Jan 5 2008, 11:32) Вы ... Jan 14 2008, 11:14   Николай Z Цитата(TSerg @ Jan 14 2008, 14:14) Кольце... Jan 14 2008, 13:52 fontp Если речь идёт о скользящем ДПФ для немногих гармо... Jan 6 2008, 13:15 alexander55 Цитата(fontp @ Jan 6 2008, 16:15) S(n) = ... Jan 14 2008, 10:46
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|