Вот ЭТО он теперь может? Ничего себеGFX писал(а): Вот вам ништяков парочка, для затравки
Плата уже на таможне, скоро приедет, капец как долго доставка ... ОУ вообще где-то застряли ...
Вот ЭТО он теперь может? Ничего себеGFX писал(а): Вот вам ништяков парочка, для затравки
МожетBarbaris23 писал(а): Вот ЭТО он теперь может? ОУ вообще где-то застряли ...
Должно - не должно, я делал 1024 и мне не понравилась скорость, памяти уходит воз, которой нет для этого, нужды я в этот не вижу, выложите быстрый код с прокруткой, добавлю. В нейлоскопе 256, я сделаю 512, может быть что-то измениться в будущем.Andrew Martin писал(а):Не влезет 1024 точки - сделайте прокрутку по горизонтали. Индикация уровня по маркеру в децибелах тоже желательна, можно логарифмированием сжать ДД и отобразить на спектрограмме как большие амплитуды, так и малые.
С вычислительными мощностями вашего МК у вас и на 1024 должно летать. В нейлскопе МК куда как слабее. Я для убогого М0 делал на асме, на 256 точек затрачивается менее 40 000 тактов, на М3 можно сделать в разы лучше.
Какой-то прикол и в ней есть. эта либа не абы кого, это либа такой фирмы для которой вы и я дворники.Andrew Martin писал(а):А это вам плата за готовые либы - получи и распишись.![]()
Можно подумать тач скрин мешает математике и чекбоксы, не завидуйте, себе нарежтеAndrew Martin писал(а): Математику нужно хорошую, а потом финтифлюшки цеплять, а то тачскрин уже прикрутили и чекбоксов откуда-то нарезали, а анализатор спектра по-прежнему игрушечный.
Ну это же хорошо, на мажорной волне лучше работается!GFX писал(а):Можно подумать тач скрин мешает математике и чекбоксы, не завидуйте, себе нарежтеОдно другому не мешает, вы меня веселите уже своими коментами
Очень спорный момент. Как правило - наоборот.Andrew Martin писал(а):не мне вам это рассказывать, почему open source проекты зачастую качественнее, чем коммерческие.
А что вас так удивило? Сколько существуют МК, столько и существует меряние крутизной кода. Но в последнее время это уже мало кого интересует. Даже всё наоборот - никого не интересует размер кода, главное чтобы он был, был нахаляву и чтобы юзать не вдаваясь в подробности.Тут данные о быстродействии стандартных БПФ из CMSIS. Для 256-точечного комплексного БПФ на М0 указывают 175 375(!!!) циклов, тогда как я уложился в менее чем 70 000 (даже сам не поверил). Таков парадокс современного мира - дворники порой пишут лучший код, чем раскрутые фирмы. А посему пусть на вас не давит ничей авторитет при выборе либ или чего-то другого.
В М3 и выше битреверс хардварный.Andrew Martin писал(а): таблицу индексов для битреверсивной перестановки размером в 1К, чтобы быстрее летало.
Печально когда код не только огромного размера, но ещё и очень медленный. Похоже, что автор поначалу столкнулся именно с таким случаем. Если же производитель предлагает огромные и очень медленные стандартные либы, то это отнюдь не делает ему чести.scorpi_0n писал(а): А что вас так удивило? Сколько существуют МК, столько и существует меряние крутизной кода. Но в последнее время это уже мало кого интересует. Даже всё наоборот - никого не интересует размер кода, главное чтобы он был, был нахаляву и чтобы юзать не вдаваясь в подробности.
Да и сам размер кода ещё ни о чём не говорит, это ещё не значит что он быстрый. Да и большинство кода от производителя это только примеры применения, а не непревзойдённый образец. А в целом ничего не изменилось за многие годы. Если что-то не так, то лучше всего написать самому.
Спасибо, буду знать. Пока ещё туда не заглядывал...scorpi_0n писал(а): В М3 и выше битреверс хардварный.
В том и прелесть логарифмической, что она "грязная"GFX писал(а): Что брать за 0 дб? Я так полагаю, что сигнал с размахом в 256? Если сигнал будет на весь экран то это 0 Дб, а остальное ниже и гармоники и основная частота?
Я и сам понимаю, что "грязная" логарифмическая шкала это плюс, т.к. на нелогарифмической шкале сигнал меньший основной гармоники в 150 раз уже не виден, на логарифмической должен быть в тысячи раз меньше, на экране видно больше информации.Andrew Martin писал(а): В том и прелесть логарифмической, что она "грязная"![]()
Что касается 0, я тоже склоняюсь к первой гармонике, чтобы амплитуда сигнала не влияла на картину, ведь нас интересует состав по частотам и их относительное значение, а не абсолютная величина. Если сигнал будет нулевой, то в этом случае на экране будет шум, но то, что он малой амплитуды понятно из осциллограммы (да и постоянная составляющая в основном будет первой гармоникой). Т.е. тогда мы видим, например, "первая гармоника 4к, и минус сколько-то децибел есть гармоники 8к, 16к и кучка более низкого шума". пока не видим - сколько там Дб, но будет время что-то наколдую удобное по возможности для просмотра Дб гармоник.Andrew Martin писал(а): Думаю что за 0ДБ хорошо будет брать всю шкалу.
Можно ещё за 0ДБ взять максимальную амплитуду (будет первой гармоникой), а остальные гармоники нормировать к ней, это удобный вариант при оценке нелинейных искажений сигнала.
Не знал, хорошо, тогда на -75 Дб и остановимся, АЦП 8ми битное.Andrew Martin писал(а): Если данные восемь бит, то ниже -75ДБ (по напряжению) вообще ничего не должно быть.
Платы я не делаю и не продаю соответственно, заказать можно где угодно. Сам из Китая жду. Обратись к Barbaris23 , он заказывал, и делал разводку, если организуется небольшая группа, то платы выйдут дешевле. Правда из Китая долго идут, можешь по России поискать, хотя обычно половина деталей тоже из Китая заказывается, поэтому все равно ждать. Добавлено after 5 hours 9 minutes:UmkaAP писал(а):Здравствуйте. GFX какую схему можно считать окончательной на данный момент для stm32f303 ? Планируете продавать платы или где можно заказать?
Причем здесь входной сигнал? Речь идет о выходных амплитудах гармоник, которые не 0-255 а с плавающей точкой. А по выходу как мы видим диапазон амплитуд гораздо шире, минимум 0 может быть, а логарифм от этого может быть бесконечность ( ну типа близкое к нулю значение, 0 нельзя). По факту видим более широкий диапазон, явно не -48. Возможно, что меньшие -48 Дб это придуманные алгоритмом расчета значения, но они есть это факт, могу обрезать конечно. Да и зачем брать 2 логарифма и один раз вычитать, если проще поделить и взять 1 логарифм, или логарифм проще деления?Andrew Martin писал(а):Да уж, дологарифмировались![]()
![]()
Umax = 255
Umin = 1 (логарифм нуля не существует)
20*lg(Umin/Umax) = 20*(lg(Umin) - lg(Umax)) = 20*(0 - 2.4) = -48ДБ
Ну вот, даже не 75ДБ, а всего-то 48ДБ. Так же?
Оптимизаторы...GFX писал(а): Причем здесь входной сигнал? Речь идет о выходных амплитудах гармоник, которые не 0-255 а с плавающей точкой. А по выходу как мы видим диапазон амплитуд гораздо шире, минимум 0 может быть, а логарифм от этого может быть бесконечность ( ну типа близкое к нулю значение, 0 нельзя). По факту видим более широкий диапазон, явно не -48. Возможно, что меньшие -48 Дб это придуманные алгоритмом расчета значения, но они есть это факт, могу обрезать конечно. Да и зачем брать 2 логарифма и один раз вычитать, если проще поделить и взять 1 логарифм, или логарифм проще деления?
1) Какую библиотеку нашел с удобоваримыми показателями скорость-размер, такую и использую. Вычисление FFT занимает времени намного меньше чем вывод результата на экран, так какой смысл тут бороться за производительность. А по вычитанию, да не подумал, что логорифм от максимума то 1 раз вычислить нужно, хорошо. И что в вашем понимании работайте над математикой? Если входной сигнал 48Дб, то что за математика сделает из него больше, моя существующая итак больше рисует, правда я этому не доверяю и обрезал лишнее. И к сведению, прикрутить чекбоксы в 10 раз сложнее, чем FFT это несчастное с готовой либой, или скажете нужно было изобрести велосипед и написать свою?Andrew Martin писал(а): 1) На кой, скажите, вам арифметика с плавающей точкой при 8-разрядных входных данных? У вас и БПФ на плавучке?![]()
И при любом линейном преобразовании динамический диапазон данных будет всё те же 8 бит, т.е. 48ДБ. Если больше - работайте над математикой. Эт вам не чекбоксы лепить![]()
2) Один из логарифмов (lg(Umax)) берётся только ОДИН РАЗ для одной спектрограммы - это логарифм 1й гармоники. Итого получаем для каждой палки одну операцию логарифмирования, одну умножения на константу и одну вычитания, вместо деления, логарифмирования и умножения на константу. Конечно, если в вашем МК есть аппаратный модуль деления, то деление не накладно. В случае отсутствия оного намного лучше заменять деление вычитанием.
Логарифм от значений менее 48ДБ имеет смысл заменять каким-либо спец. числом, а при выводе амплитуды палки отображать надпись "< -48ДБ" или что-то вроде этого.
Если ваше БПФ выдаёт всякий мусор ("лишние" гармоники), то возможно это:GFX писал(а): И что в вашем понимании работайте над математикой?
Да отправка данных занимает много времени, SPI интерфейс не для экранов уж точно, ДМА на скорость не влияет, оно не для рисования линий и точек уж точно. Вывожу я только то, что меняется, экран полностью естественно не перерисовываю. Но все равно это самое узкое место. По поводу как в "нормальных", скиньте картинку, я не пойму что вы хотите, чтобы не было паузы, ну могу на паузу не ставить, курсор, какой курсор? выражайтесь яснее.Andrew Martin писал(а): Неужели отправка данных по SPI через DMA так много времени занимает? Что мешает сделать нормальный курсор с отображением значения выбранной "палки", прокрутку по частоте?
Надо чтобы "палки" плясали, а мы их меряли и крутили взад-вперёд, как на нормальных анализаторах спектра