-
- А вот я не знал, что "не принято", и сделал рекурсивный генератор синуса, требующий аж целых 8 тактов на отсчет :)) Подробное описание алгоритма - по ссылке --> MBedder(833 знак., 08.08.2015 11:07, ссылка)
- Богомерзкий ассемблер! - SciFi(08.08.2015 11:14)
- Не, если надо нагенерить 1000 отсчётов за 6 секунд, то можно и посчитать синус в плавающих числах через ряд Тейлора. Но ежели торопишься, то лучше ассемблер. Кстати, если нужен ГКЧ, вот я на Матлабе простенький алгоритм наваял. На ДСПИКЕ ложится в Крок(279 знак., 08.08.2015 13:18)
- Ну да, похоже на тот же IIR, только ГКЧ я чой-то не вижу - разжуй плз - MBedder(09.08.2015 12:11)
- Эта идея родилась о эпохи цифровой обработки сигналов и основана на дифференциальном исчислении. Крок(428 знак., 09.08.2015 15:56)
- Вы, блин, аффтара не вводите в смущение! Все эти рекурентные формулы хороши, пока не надо изменять амплитуду/частоту. А если надо изменять - тут уже стоит включить мозгх... - argus98(09.08.2015 22:55)
- А можно было просто воспользоваться формулой Эйлера: USSR(1316 знак., 09.08.2015 17:10, )
- Эти же формулы для косинуса суммы и синуса суммы позволяют расчитать новые значения параметров cos/sin для нового значения частоты: USSR(125 знак., 09.08.2015 18:00, )
- как это будет выглядеть в машинных кодах? - Крок(09.08.2015 18:12)
- Ну, это не ко мне, я не поклонник dsPIC'ов. Хотя на blackfin'е изобразить такое смогу.. А ещё лучше - на Verlog'е.. :) USSR(82 знак., 09.08.2015 18:31, )
- Чиста для сравнения с ДСПИКами изобразите? - Крок(09.08.2015 23:06)
- Пока без ассемблера: USSR(2946 знак., 10.08.2015 07:19, )
- Вдвое дороже получаеися. - Крок(10.08.2015 08:01)
- Не секрет.. Но зато параметры гарантированы. USSR(165 знак., 10.08.2015 08:07, )
- Эээ... а с какого вдруг перепуга Blackfin стал "выполнять два умножения и два сложения за одну команду ассемблера" в даблах? - MBedder(10.08.2015 08:31)
- А кто говорил про "даблы"? Ессно это два умножения в формате fract1.15.. USSR(83 знак., 10.08.2015 08:34, )
- Я что-то подумал, а даёт ли алгоритм устойчивый сигнал? Сдаётся мне, что малейшая ошибка в коэффициентах повлечёт за собой схлопывание системы или наоборот раздрай. - Крок(24.08.2015 17:13)
- Про даблы говорил твой код в объявлениях всех переменных - MBedder(10.08.2015 08:44)
- Ну это же пример для PC. Так сказать, "иллюстрация алгоритма". На VisualDSP код будет понятное дело другой другой. - USSR(10.08.2015 08:50, )
- Сопсно, спич об том и зашёл. Даст ли Вижуал ДСП код, который будет достаточно короток? Хотя, конечно, по-любому два умножителя лучше, чем один. А аккумуляторов 40-разрядных у него сколько? - Крок(11.08.2015 13:26)
- У Blackfin+ (не путать с Blackfin) два 40-разрядных аккумулятора A1,A0 и три умножителя: один (MAC10) - 32-х битный и два (MAC1,MAC0) - 16-ти битные. "Но есть нюансы.." :) USSR(2592 знак., 11.08.2015 20:35, )
- Ну нет в жизни совершенства! Каждому умножителю нужно хотя бы по паре аккумуляторов. Как у ПИКов. И нащот потребления: Цифры проверены? - Крок(11.08.2015 23:07)
- Цифры взяты из пресс-релиза: USSR(562 знак., 12.08.2015 06:08, )
- Верить нельзя никому © - Крок(12.08.2015 08:25)
- Цифры взяты из пресс-релиза: USSR(562 знак., 12.08.2015 06:08, )
- Ну нет в жизни совершенства! Каждому умножителю нужно хотя бы по паре аккумуляторов. Как у ПИКов. И нащот потребления: Цифры проверены? - Крок(11.08.2015 23:07)
- У Blackfin+ (не путать с Blackfin) два 40-разрядных аккумулятора A1,A0 и три умножителя: один (MAC10) - 32-х битный и два (MAC1,MAC0) - 16-ти битные. "Но есть нюансы.." :) USSR(2592 знак., 11.08.2015 20:35, )
- Сопсно, спич об том и зашёл. Даст ли Вижуал ДСП код, который будет достаточно короток? Хотя, конечно, по-любому два умножителя лучше, чем один. А аккумуляторов 40-разрядных у него сколько? - Крок(11.08.2015 13:26)
- Ну это же пример для PC. Так сказать, "иллюстрация алгоритма". На VisualDSP код будет понятное дело другой другой. - USSR(10.08.2015 08:50, )
- А кто говорил про "даблы"? Ессно это два умножения в формате fract1.15.. USSR(83 знак., 10.08.2015 08:34, )
- Эээ... а с какого вдруг перепуга Blackfin стал "выполнять два умножения и два сложения за одну команду ассемблера" в даблах? - MBedder(10.08.2015 08:31)
- Не секрет.. Но зато параметры гарантированы. USSR(165 знак., 10.08.2015 08:07, )
- PS. Частота получилась в радианах.. :)) - USSR(10.08.2015 07:25, )
- Первые три строки надо заменить на: USSR(579 знак., 10.08.2015 08:16, )
- Вдвое дороже получаеися. - Крок(10.08.2015 08:01)
- Пока без ассемблера: USSR(2946 знак., 10.08.2015 07:19, )
- Чиста для сравнения с ДСПИКами изобразите? - Крок(09.08.2015 23:06)
- Ну, это не ко мне, я не поклонник dsPIC'ов. Хотя на blackfin'е изобразить такое смогу.. А ещё лучше - на Verlog'е.. :) USSR(82 знак., 09.08.2015 18:31, )
- как это будет выглядеть в машинных кодах? - Крок(09.08.2015 18:12)
- слово "просто" здесь лишнее :-) Крок(101 знак., 09.08.2015 17:48)
- Промахнулся. Ответ - выше.. - USSR(09.08.2015 18:02, )
- Эти же формулы для косинуса суммы и синуса суммы позволяют расчитать новые значения параметров cos/sin для нового значения частоты: USSR(125 знак., 09.08.2015 18:00, )
- Интересно было бы взглянуть на ассемблерный код - MBedder(09.08.2015 15:59)
- фюнф минутен. Вот Крок(257 знак., 09.08.2015 16:01 - 16:23)
- W4 перед первым MAC не инициализирован, и ГКЧ не вижу, а так - практически мой код - MBedder(09.08.2015 20:24)
- ну да здесь нет ГКЧ. Для качания надо инкрементировать W5 в каждом цикле. - Крок(09.08.2015 20:59)
- W4 перед первым MAC не инициализирован, и ГКЧ не вижу, а так - практически мой код - MBedder(09.08.2015 20:24)
- фюнф минутен. Вот Крок(257 знак., 09.08.2015 16:01 - 16:23)
- Эта идея родилась о эпохи цифровой обработки сигналов и основана на дифференциальном исчислении. Крок(428 знак., 09.08.2015 15:56)
- Ну да, похоже на тот же IIR, только ГКЧ я чой-то не вижу - разжуй плз - MBedder(09.08.2015 12:11)
- На чистом С это не написать - нужны специфические DSP-операции, которые в итоге будут либо АСМ-вставками, либо не-ANSI "builtin"-ами - MBedder(08.08.2015 11:19)
- Для Cortex есть библиотека. misyachniy(136 знак., 09.08.2015 09:37, ссылка)
- хреновый тот компилятор, который не знает все команды подшефного ядра. - Mahagam(08.08.2015 14:23)
- Знать-то он знает, но это знание в ANSI никак не влезает. Поэтому и предлагает лепить либо ассемблерные вставки, либо builtin'ы, которые по сути те же ассемблерные вставки - MBedder(09.08.2015 12:01)
- не всегда. для DSP часто достаточно всяких прагм, ну и писать по гайдлайнам. - Mahagam(09.08.2015 12:03)
- Не вижу особой разницы между прагмами, буилтинами и АСМ-вставками - все одно это ниразу не С - MBedder(09.08.2015 12:14)
- разница есть, прагма не рушит переносимость исходника. и сложный DSP-код можно вылизывать на корректность на пэцэ, и точить на скорость на целевом дсп. при этом писать на сях с прагмами. асм-вставки и буилтины такого не позволят. - Mahagam(09.08.2015 12:52)
- Не вижу особой разницы между прагмами, буилтинами и АСМ-вставками - все одно это ниразу не С - MBedder(09.08.2015 12:14)
- не всегда. для DSP часто достаточно всяких прагм, ну и писать по гайдлайнам. - Mahagam(09.08.2015 12:03)
- Воистину. А бывают хорошие? - Крок(08.08.2015 14:26)
- бывают, но и программист тоже должен быть хорошим. - Mahagam(08.08.2015 14:32)
- Знать-то он знает, но это знание в ANSI никак не влезает. Поэтому и предлагает лепить либо ассемблерные вставки, либо builtin'ы, которые по сути те же ассемблерные вставки - MBedder(09.08.2015 12:01)
- Умножение нужно. В былые времена такое делалось на пиках без умножителя... В таблице можно хранить разности (между соседними значениями) и она совсем маленькая получается. Можно алгоритмом Брезенхема генерировать 1/4 периода, дальше всё понятно. fk0(83 знак., 08.08.2015 11:56)
- уж на что я ретроград и консерватор, но и то отказался от ПИКов без умножителей. - Крок(08.08.2015 13:19)
- Не, если надо нагенерить 1000 отсчётов за 6 секунд, то можно и посчитать синус в плавающих числах через ряд Тейлора. Но ежели торопишься, то лучше ассемблер. Кстати, если нужен ГКЧ, вот я на Матлабе простенький алгоритм наваял. На ДСПИКЕ ложится в Крок(279 знак., 08.08.2015 13:18)
- Богомерзкий ассемблер! - SciFi(08.08.2015 11:14)
- А вот я не знал, что "не принято", и сделал рекурсивный генератор синуса, требующий аж целых 8 тактов на отсчет :)) Подробное описание алгоритма - по ссылке --> MBedder(833 знак., 08.08.2015 11:07, ссылка)