/pr/ - Тред обработки сигналов N1. Первый. Ламповый. Твой
Главная Юзердоски Каталог Трекер NSFW Настройки

Программирование

Ответить в тред Ответить в тред
Check this out!
<<
Назад | Вниз | Каталог | Обновить | Автообновление | 87 21 23
Тред обработки сигналов N1. Первый. Ламповый. Твой Аноним 23/01/24 Втр 16:18:38 3015715 1
17060119931680s.jpg 7Кб, 200x200
200x200
2652331129752.jpg 93Кб, 1024x768
1024x768
Сделаем програмач снова великим!
Пока без шапки, надеюсь накидаем что-нибудь
Аноним 23/01/24 Втр 16:22:25 3015724 2
Аноны, подскажите плиз, куда копать. Вот у меня есть звучание аудиофайла в конкретный момент времени, по какому принципу строится визуализация музыки как на старых магнитофонах, или на старой программе WinAmp?
Аноним 23/01/24 Втр 16:22:55 3015726 3
>>3015724
Фрагмент сигнала, скажем, 0.1 секунды умножается на оконную функцию, потом делается быстрое преобразование фурье, берется абсолютное значение и логарифмическая шкала по частоте. Ну либо, куча кроссовер-фильтров с очень крутой ачх, и так же абсолютное значение
Аноним 23/01/24 Втр 16:23:30 3015727 4
>>3015726
Cпасибо анон. Оконная функция это та которая пробегает по всему массиву и делает финальный результат типа reduce? Или это что-то сложней, типа scan?
Аноним 23/01/24 Втр 16:24:07 3015728 5
>>3015727
Преобразование Фурье на самом деле получается не от фрагмента сигнала, а от этого фрагмента, повторенного бесконечность раз назад и вперед. При этом на краях у реального сигнала будет скорее всего резкий разрыв, который внесет сильный "искажения" в высокочастотную часть спектра. Не совсем правильно называть это искажениями. Поэтому сигнал предварительно умножают на оконную функцию. Она просто плавно зануляет края.
см ОП пик
Аноним 23/01/24 Втр 16:24:39 3015729 6
>>3015728
Вот сейчас нарисовал это и понял вдруг, что неплохо бы попробовать оконную функцию, которая устраняет разрывы на краях еще и в парочке производных. Слава Резиновой Уточке!
Аноним 23/01/24 Втр 17:04:47 3015821 7
>>3015715 (OP)
Лет пятнадцать назад, еще в 32-битном мире, делал линейку VST-эффектов для обработки звука. Прицел был на гитару, но по отзывам в интернете оказалось, что пользуются в основном даже не с гитарой. У меня там были не слишком сильно отличающаяся от оригинала эмуляция Boss MT-2, фильтр шума делением спектра, хорус со сдвигом частот. Потом ушел от этой темы, но вроде все еще могу что-нибудь пояснить, если кому-нибудь это интересно.
Аноним 23/01/24 Втр 17:17:48 3015834 8
0.png 380Кб, 1000x620
1000x620
1.png 660Кб, 1000x620
1000x620
>>3015821
Кстати, остались нерешенными некоторые задумки:
# Применение длинного преобразования Фурье, но с короткой латентностью.
# Деление спектра 0 / 0 с помощью правила Лопиталя, если первая производная тоже 0 / 0, то можно взять вторую. А теперь даже нейросети можно в этом домене применять.

На пикрелейтедах апскейл x2 бикубиком в фотошопе, а потом деление на спектр функции Гаусса с помощью либы libfftw. Нейросети делают такое не намного лучше, но очень намного дольше.
Аноним 23/01/24 Втр 17:45:44 3015859 9
Я тот анон с /math/. Как и обещал предоставляю код который позволяет делать преобразование фурье.

https://pastebin.com/9Uty8cRh
Аноним 23/01/24 Втр 17:55:05 3015870 10
>>3015859
P.S. основные функции в которых происходит всё действо это
makeFFT и addIQ.

На вход addIQ надо подать байтный массив комплексных 32 битных чисел типа int.

В функции makeFFT dB_buffer - это то что уже можно использовать для визуализации музыки. Ну а вот как правильно оцифровывать всё это я хз.
Аноним 23/01/24 Втр 19:43:18 3015981 11
На всякий случай, наикратчайшее описание, что такое преобразование Фурье для чайников:

1) Линейная комбинация это k1x1 + k2x2 + ... + kNxN
2) Ортогональная система функций позволяет представить любую другую (с некоторыми ограничениями) функцию в виде линейной комбинации функций этой системы
3) Синусы с различной частотой и фазой как раз и являются ортогональной системой функций
4) Любой сигнал можно представить в виде линейной комбинации синусов. Нахождение коэффициентов этой комбинации и есть преобразование Фурье
5) Преобразование Фурье хорошо оптимизируется. Алгоритм называется БПФ. Первым придумал Гаусс, потом переизобрели два чувака из MIT. Всё это было задолго до появления компьютеров.
6) Основное применение строго по матану - это свертка функций. Всякие деления и вычитания амплитуд спектров - это уже интересные "извращения".

>>3015859 >>3015870

1) Может, лучше не наследовать от классов Qt, так получится более универсально.
2) Либа libfftw иногда не очень предсказуема. Сталкивался с тем, что она сильно накапливает ошибку при преобразовании вперед-назад, что проявляется в виде слышимого шума. Также она иногда может создать очень медленный "план", сталкивался с этим при 2D-преобразовании. Также у либы гротескно-оверпрайснутая лицензия для коммерческого софта.
Аноним 23/01/24 Втр 20:12:49 3016014 12
>>3015981
Интересный ты перец брат. Поясни про оверпрайс.
https://www.fftw.org/
Там же гпл лицензия.

Похуй в принципе, тему интересную ты поднял. Студент?
Аноним 23/01/24 Втр 20:29:24 3016035 13
>>3016014
Может я че напутал, но они (fftw) вроде просили раньше 5k$ за применение в проприетарном софте. Для комерсов это фигня, но для стартапов в одно рыло это жеско. Поэтому я просто написал свое БПФ на интринсиках, которое всего в два раза медленнее fftw, но зато супер простое и предсказуемое и заодно могу легко скомпилить под WebAssembly, чтобы оно вертелось в браузере.

На самом деле, хотя все алгоритмы и есть в либах, но периодически встречаются кейсы, когда имеет смысл переписать самому, или более мягкий вариант например обернуть сишную либу в питон. Из последнего, что я обернул, модуль - dict для питона на основе xxhash с забиванием буя на коллизии - очень сильная экономия памяти + скорость. Потом опять же для питона зазеркалил классический крестовый map, который на основе red-black tree. Это мне было нужно для обучения нейросеток на колабе - там среда позволяет нормально компилировать сишные модули для Ру.
Аноним 23/01/24 Втр 21:00:13 3016057 14
Аноним 23/01/24 Втр 22:11:38 3016158 15
окно.png 11Кб, 600x600
600x600
Аноним 24/01/24 Срд 00:00:47 3016381 16
Screenshot20240[...].png 269Кб, 720x1600
720x1600
>>3015981
Ну я просто скопировал свой класс который в Qt проекте использовался.
Так буквально можно в несколько действий убрать всю связь с Qt.
Хороший тред.

Кстати кто знает как правильно патом спектр рисовать после преобразования fftw и перестановки местами двух половин.
Вопрос как правильно отрисовать "бины". Именно с визуальной точки зрения, если я рисую бин в виде прямоугольника, то левый край прямо угольника это начало бина, или оно в центре бина, или же правый край прямоугольника? Линия какого цвета соответствует началу бина? Я для себя выбрал левый край
Аноним 24/01/24 Срд 00:32:34 3016404 17
Непонятно брат зачем, пахнет аутизмом жоским.
Аноним 24/01/24 Срд 00:35:50 3016408 18
>>3016404
На жоском аутизме делаются самые лучшие вещи. А потом уходят в продакшен и превращаются в говно для быдла.
Аноним 24/01/24 Срд 00:44:32 3016417 19
>>3016408
Вообще похуй конечно, без аутирования тут не разберёшься глубоко, но есть риск заняться бесплодным изобретательством велосипедов (что немного видно в твоём случае) и фокусе на не имеющих смысла вещах (типа какие бары сделать ор). Тебе, видимо, скучно пиздец, что ты вопросы придумываешь.

Попробуй вейвлеты покопать интереса ради, если спектральные представления сигналов интересны. Базис фурьешный идеально локализован в пространстве частот, но совершенно не локализован во времени. Есть компромисс между этими крайними случаями, позволяющий локальную во времени информацию пощупать. Вейвлеты и банки фильтров брат.
Аноним 24/01/24 Срд 00:51:00 3016427 20
>>3016417
Почему ты называешь меня братом? Вейвлеты та же хня, там просто быстрее получаешь инфу о сигнале, но сложнее ее превратить в выходной сигнал. Почему ты называешь меня братом?
Аноним 24/01/24 Срд 01:15:04 3016452 21
>>3016427
Бля брат мне каждый аутист теоретик брат
Аноним 24/01/24 Срд 11:03:44 3016757 22
image.jpeg 4Кб, 90x200
90x200
>>3016427
>>3016452
Аноны, поясните по самому сигналу. Если взять например скрипку, какую нибудь ноту, и вырезать из неё милипиздрическую часть, прокатить оконную функцию, сделать преобразования фурье, посчитать пики (столкбики), то вот эти столбики после того как станут на определённые уровни, больше не будут прыгать. А если например взять звук лягушки - ква, продолжительностью 1 секунду, то мы разрезаем этот звук на куски по 0,1 секунды, для каждого куска прогоняем оконную функцию, для каждого куска делаем преобразование фурье, для каждого преобразования считаем пики и в итоге когда идёт проигрывание звука ква, то наши пики пляшут, правильно ли я понимаю? Так же вопрос, что относительно пиков представляет собой удар в барабан в песни? Все частоты (пики) одновременно подпрыгивают?
Аноним 24/01/24 Срд 11:32:47 3016801 23
>>3016757
Возьми за щеку, шиз семёнящий.
Аноним 24/01/24 Срд 11:44:28 3016813 24
>>3016757
Ну нет, столбики на нотах скаканут только в определённом диапазоне частот, не которые останутся на местах. Возможно удар в барабан должен низкие частоты сильно поднять, патом когда удар стихнет, столбики низких частот тоже в низ опустятся. Модешь за эталон взять приложение на андроид Spectroid, поднести к микрофону телефона интересующий тебя звук и посмотреть как будет выглядеть спектр интересующего тебя звука. Правда там не по столбикам, а просто не прерывная линия, но всё равно будет наглядно.
Аноним 24/01/24 Срд 11:54:39 3016826 25
>>3016813
А получается что если свет волна, то например свет от фонаря на улице можно таким же преобразованием фурье на радугу разложить? То есть узнать, сколько будет в свете красного, жёлтого, фиолетового, глядя на пики после преобразования?
Аноним 24/01/24 Срд 12:02:57 3016830 26
>>3016813
А как работает этот Спектроид? Вот например кто то говорит, он вырезает из речи последний отрывок длинной 0,1 секунду, бесконечно зацикливает его и обрабатывает? Тогда получается что он и любой визуализатор запаздывает в своей визуализации на эту 0,1 секунду?
Аноним 24/01/24 Срд 12:14:58 3016855 27
>>3016826
Да можно.

>>3016830
Да он всегда немного в прошлом. АЦП преобразовывает аналоговый звук в дискретный сигнал. Патом ты в реал тайме берёшь копишь данные с АЦП пока не накопишь на одно преобразование фурье. Делаешь преобразование фурье, и видишь сколько мощностей на тех или иных частотах было за то время пока ты копил данные с АЦП.

Допустим АЦП измеряет напряжение на микрофоне с частотой 48000 Гц. То есть на одно измерение АЦП уходит 0.0000208 секунды или 20.8 микросекунд. Ты решил что тебе будет достаточно 2048 отчётов для преобразования Фурье. То есть каждые 0.042 секунды, или 42 миллисекунд ты будешь накапливать 2048 отчётов и делать из них спектр. Запаздывать ты будешь как раз таки в данном случае на 42 миллисекунды.
Насчёт бесконечно зацикливает, это что то лишнее ты приплёл.
Аноним 24/01/24 Срд 12:23:26 3016862 28
>>3016855
> копишь, пока не накопишь
А как понять что я уже накопил на преобразование Фурье?
Аноним 24/01/24 Срд 12:28:12 3016867 29
image.jpeg 7Кб, 200x200
200x200
Снимок экрана 2[...].png 11Кб, 356x422
356x422
>>3016855
> Насчёт бесконечно зацикливает, это что то лишнее ты приплёл.
Вот же пик, там анон выделяет из сигнала кусок, потом сглаживает края и склеивает в длинную простыню, и на неё делает преобразование Фурье, почему он кстати не мог просто сделать на вот этот кусочек преобразование и не лупить его? Или вообще сделать на изначальный сигнал?
Аноним 24/01/24 Срд 12:40:35 3016881 30
>>3016867
Я конечно не мастер цифровой обработки сигналов, но мне сказали старшие товарищи что бы сигнал выглядел нормально, нужно пропускать через оконные функции так как при каждом отчёте накопленном, фазы у накопленных снимков сигнала будут разные, и тогда спектр будет не нормальную информацию показывать.

>>3016862
>Допустим АЦП измеряет напряжение на микрофоне с частотой 48000 Гц. То есть на одно измерение АЦП уходит 0.0000208 секунды или 20.8 микросекунд. Ты решил что тебе будет достаточно 2048 отчётов для преобразования Фурье. То есть каждые 0.042 секунды, или 42 миллисекунд ты будешь накапливать 2048 отчётов.

Представь что АЦП раз в 20.8 микросекунд тебе даёт цифру в виде напряжения на микрофоне в этот момент времени. Ты каждые 20.8 микросекунд считываешь эту цифру и складываешь в массив из 2048 элементов. Когда заполнишь весь массив делаешь преобразование фурье над этим массивом. И патом заново с 0 начинаешь копить.
Аноним 24/01/24 Срд 12:48:11 3016893 31
>>3016881
Так мы над уже накопленным массивом из 2048 элементов делаем оконную функцию?
Аноним 24/01/24 Срд 13:04:03 3016917 32
>>3016893
Да. Можно во время накопления, можно после.

>>3015859 Здесь во время накопления и оконная функция делается и нормировка происходит. Оконную функцию я заранее генерирую под размер fft в функции createWindowBlackmanHarris()
Аноним 24/01/24 Срд 14:03:21 3016964 33
>>3016757 >>3016830
Эта задержка называется latency. Тебе звуковой драйвер всегда отдает сигнал блоками. Во многиз звуковых программах (DAW - Digital Audio Workstation) есть такая настройка в конфиге.

Сложность (нагрузка на проц) БПФ - логарифмичекская O(log(N)), поэтому выгоднее обрабатывать сигнал блоками побольше. При этом будет и разрешение по частоте выше, это плюс, но увеличится латентность, это минус.

>>3016867
Преобразование Фурье это сумма синусов с разными частотами, амплитудами и фазами. Преобразование ты делаешь на одном блоке сигнала, я блоки красными линиями разделил, но если ты потом сложишь эти синусы, то у тебя получится как раз такой бесконечный сигнал. Спектр у такой "пилы" будет не очень информативный, поэтому накладывают оконную функцию. Если делают свертку сигналов (например, ты срисовал микрофоном импульсную характеристику помещения и накладываешь ее на какой-то сигнал, то есть делаешь реверберацию), то оконная функция конечно не нужна.
Аноним 24/01/24 Срд 14:22:42 3016986 34
>>3016964
Мне говорили кстати говорили старшие товарищи что есть пределы увеличения размера fft, дальше нет смысла его увеличивать ради точности. Точность особо не вырастет, надо также и частоту дискретизации учитывать и увеличивать.
Аноним 24/01/24 Срд 14:46:46 3017022 35
>>3016986
Оно еще к тому же внутри выполняется слоями, поэтому слишком большое преобразование накопит ошибку. В ряде применений подразумевается еще и обратное преобразование потом, то есть плюс еще ошибка.

Передискретизация оно же oversampling, хорошо делается на звуке кубической интерполяцией, но у меня в принципе и линейная нормально работала. Конкретно был кейс, когда эмулировал гитарную педаль. Она, если по простому, обрезает сигнал на некотором уровне, а что осталось, усиливает раз в 100. При таком усилении шум дискретизации и шум квантования (16 бит) были прямо слышны. 8x частота с линейной интерполяцией и переквантование в 32 бита решили вопрос.
Аноним 24/01/24 Срд 15:21:00 3017086 36
>>3017022
Так если драйвер инфу блоками отдаёт, то зачем копить отдельно в массив эту дату? По сути предлагается брать этот блок и поэлементно из него перенести данные в наш массив (2024 длинны)? Можно же просто преобразование Фурье на этот блок применить?
Аноним 24/01/24 Срд 15:35:06 3017111 37
>>3017086
Классическое БПФ выполняется на массивах размером степени двойки. Я сталкивался с тем, что в WINAPI (win32) функции waveIn нормально отдают блоки по 480 семплов на частоте 48kHz, а если попробовать 512, то всё начинает "заикаться". Да, libfftw может придумать "план" для разных размеров массива, но это может обернуться непредсказуемой ошибкой. Дальше, входной сигнал вообще-то комплексный с нулевой мнимой частью. Это если ты хочешь, чтобы каждый слой БПФ отрабатывал строго по одному алгоритму. Хотя, с другой стороны, это предмет для оптимизации и libfftw кушает на входе просто действительный сигнал. Дальше, libfftw опять это инкапсулирует в себе, но вообще-то есть такая штука как "прореживание", такая специальная перестановка, и оно может быть на входе либо на выходе. Вот три возможных причины переносить в свой массив сигнал на входе - расширить массив до степени двойки, дополнить числа нулями до комплексных, выполнить прореживание на входе.
Аноним 24/01/24 Срд 15:46:04 3017124 38
>>3015859
В моём алгоритме, в функции addIQ можно кормить отчётам не кратно степени двойки
Аноним 24/01/24 Срд 15:52:51 3017140 39
>>3017111
> по 480 семплов на частоте 48kHz,
Можешь пожалуйста подробно написать что это значит? Что такое семпл? Это значение с которой должны рыгнуть колнка? Что из себя вообще представляет блок данных, который отдаёт драйвер? Это просто массив чисел, или структур? Что вообще это такое то
Аноним 24/01/24 Срд 16:21:59 3017189 40
>>3017140
Начать надо с того, что лучше всего использовать драйвер ASIO. Такой драйвер отдает нормально массивы любого размера. Семпл - это просто один отсчет сигнала. Напряжение с микрофона в текущий момент времени, умноженное на какой-то коэффициент. Это число, у драйвера ASIO может быть float, у функций waveIn, боюсь соврать, вроде int. Если стерео или больше каналов, то оно с интерливингом, то есть с чередованием. Соответственно при частоте дискретизации или она же частота семплирования 48 килогерц для моно сигнала 480 семплов будут представлять собой фрагмент сигнала длительностью ровно одну сотую секунды. Это просто массив из 480 float'ов или int'ов, смотря что за драйвер и как у него попросишь отдавать сигнал.
Аноним 24/01/24 Срд 17:52:09 3017368 41
Аноним 24/01/24 Срд 19:24:07 3017509 42
Снимок экрана 2[...].png 1369Кб, 2266x1214
2266x1214
>>3017189
А вот на пикриле я сделал имитацию сигнала уже в виде суммы трёх тригонометрических функций. Вот вопрос вот в чём, правильно ли я понимаю, что на спектре будет три значения? Если да то какие именно значения у графика спектров будут по осям x и у? То есть что откладываем по x и что по y?
Аноним 24/01/24 Срд 19:43:58 3017535 43
image.png 57Кб, 982x425
982x425
>>3017509
По X частота, по Y спектральная мощность. Спектр трёх функций даст тебе мощность на частотах этих функций. Для одного синуса вся мощность сигнала будет сосредоточена в одной частоте, и будет только одна палочка на спектре, все остальные частоты будут в 0.

Для двух синусов две палочки две палочки будут иметь значение, другие частоты(палочки) будут в 0.
Аноним 24/01/24 Срд 19:44:06 3017536 44
И так же вопрос, если мы говорим о сигнале, который имеет волновую природу, например звук, то разложение его на ряд Фурье имеет под собой природную основу и выполняется хорошо. Но если на вход мы подаём просто набор рандомных точек, то что будет? Кто нибудь пробовал применять разложения сигнала на спектр который имеет искусственную природу?
Аноним 24/01/24 Срд 19:47:36 3017543 45
>>3017535
> Для двух синусов две палочки две палочки будут иметь значение

ну вот если взять функцию 3sin(x2 / 4), то где будет отложена палочка по оси X и на какую высоту она подымется по оси Y?
Аноним 24/01/24 Срд 19:57:50 3017563 46
спектр двух син[...].png 5Кб, 600x600
600x600
>>3017509
У тебя там в косинусе икс аж в кубе. У этой штуки сложный спектр будет. Если бы просто были три синуса с разной амплитудой, периодом и фазой, то на амплитудном спектре это три полоски. На самом деле скорее три "горки". Одиночные прям резкие пики могут быть только у синусов, укладывающихся ровно целое число раз в твой массив сигнала. По иксу откладывается частота. По игреку амплитуда. Там еще есть момент, что это может быть не амплитуда, а мощность, то есть БПФ по разному немного считать можно, будет спектр мощности. Мощность это квадрат амплитуды. Частоты - от нуля - до половины частоты дискретизации, например 24кГц., а дальше амплитудные спектр симметричен относительно этой частоты, а фаза симметрична со знаком минус, то есть на выходе БПФ на самом деле половина избыточной информации.
Аноним 24/01/24 Срд 20:02:23 3017569 47
>>3017563
> У этой штуки сложный спектр будет
Правильно ли я понимаю что в ряде Фурье не может быть синусоид у которых аргумент x не в первой степени, если такие попадаются, то они в свою очередь будут разложены на более простые функции? то есть функция sin(x2) будет представлена в спектре несколькими функциями?
Аноним 24/01/24 Срд 20:12:01 3017586 48
>>3017569
Синусы (от аргумента в первой степени) - ортогональная система. То есть их суммой (или интегралом для непрерывного случая) можно представить вообще любую функцию, единственно что без разрывов и бесконечностей. Да, sin(x2) будет представлен целой кучей синусов.
Аноним 24/01/24 Срд 20:12:52 3017589 49
photo2023-11-15[...].jpg 105Кб, 950x951
950x951
Что за тред? Почему он важен?
Что здесь происходит?
Скуфы из НИИ учатся математике чтобы строить орудия убийства украинцев?
Аноним 24/01/24 Срд 20:18:14 3017604 50
>>3017589
имхо шиз сам с собой беседует
Аноним 24/01/24 Срд 20:21:10 3017611 51
>>3017589
Шиз семёнит по жести брат, тред зашкварен, хуй с ним.
Аноним 24/01/24 Срд 20:46:31 3017656 52
Figure1.png 26Кб, 640x480
640x480
Аноним 25/01/24 Чтв 11:23:24 3018395 53
>>3017656
это типа спектр sin(x2)
Аноним 27/01/24 Суб 16:32:04 3022031 54
Вы ебанутые? Про вейвлет почитайте. Вообще странно, что на доске для макак-кноподавов, которые от слова синус в обморок падают такие треды.
Аноним 27/01/24 Суб 21:57:36 3022585 55
>>3022031
Просто в ньюфаг-треде один анон пояснил другому, как информативно раскладывать сигнал на амплитуды сверток с другими функциями.
Аноним 02/02/24 Птн 11:13:32 3031176 56
17060782469380.mp4 15980Кб, 1280x720, 00:00:47
1280x720
Анончик, ты тута? Объясни, пожалуйста, что тут происходит? Зачем нам внизу окно, которое показывает интенсивностью цвета частоты? Почему сразу нельзя сделать анимацию подпрыгивающих пиков? Или это какой-то дебаг?
Аноним 03/02/24 Суб 09:45:16 3032633 57
>>3031176
То что происходит внизу называется водопад. Это интенсивность цвета во времени. Если бы верхний спектр был в 3д, и у него была бы толщина. То если бы мы на него сверху посмотрели то увидели бы интенсивность цвета на каждой частоте. И вот такие снимки сверху каждый кадр делаются и формируется картинка водопада. Зачем он нужен? Ну я конечно анализом спектров не занимаюсь, но те кто занимаются всегда пользуются водопадами. С помощью них можно оценить во времени что происходило в частотной области. Какой то опытный знающий радио инженер посмотрит на водопад, и такой, ага вот на частоте радиостанция с AM модуляцией.
Вообщем это снимки верхнего спектра каждый кадр которые объединяются в одном изображение
Аноним 03/02/24 Суб 11:40:10 3032697 58
ЦОС это какой-то душный гуан. Пробовал закатиться в ЦОС, но охуел от сложности и духоты.
Аноним 03/02/24 Суб 13:22:07 3032795 59
Да я шиз и что с того? Не могу сам с собой разговаривать? А кто мне запретит? Ты? То-то же.
Хочу сигнал обработать - обработаю у тебя на глазах и ничего ты мне не сделаешь, трястись в сторонке будешь пока я синусоиды кручу и спектр мучу на спинах твоих отцов.

Нахуй я это делаю? Могу себе позволить, и позволю, и тебе по губам косинусом кожаным проведу.
Аноним 03/02/24 Суб 21:39:16 3033459 60
>>3032795
чего тебя так корёжит-то?
Аноним 08/02/24 Чтв 22:50:22 3041209 61
Аноним 09/02/24 Птн 00:38:19 3041252 62
>>3033459
А мне нравится как он отвечает.
Аноним 13/02/24 Втр 15:47:56 3046940 63
Бамп годному треду
Аноним 13/02/24 Втр 15:48:19 3046941 64
Какую литературу посоветуете по ЦОСу и по ЦОИ?
Аноним 13/02/24 Втр 15:51:46 3046948 65
>>3017604
>>3017611

Какая разница семёнит или нет? Тема сама по себе интересна
Аноним 15/02/24 Чтв 16:48:32 3049706 66
>>3046948
Тема интересная. Но на доске овер 90% это макаки и вкатуны. Такой себе "человеческий материал". Это тема для белых людей из https://2ch.icu/ra/ - там смогут понять и оценить. А серезьёзные вещи обсуждать среди дрочеров - это бесперсктивно. Если хотя бы один ввкатится в ЦОС, считай что ОП победил.
Аноним 16/02/24 Птн 09:37:15 3050708 67
поясните по хардкору вкратце за БПФ/FFT, что это такое и нахуя оно вообще нужно?
Аноним 16/02/24 Птн 12:07:31 3050809 68
mmm.jpg 58Кб, 768x1152
768x1152
16/02/24 Птн 12:11:15 3050811 69
изображение.png 142Кб, 327x338
327x338
>>3031176
Какая-то шизопрограмма на дельфи с крутилкой.
Аноним 16/02/24 Птн 13:44:57 3050904 70
>>3050809
я не понимаю, зачем оно вообще нужно.
недавно озадачился покупкой осциллографа, читаю обзоры на eevblog.com, а там в каждом топике срач "у этого осла FFT хуйня, вот у моего осла FFT ого-го, а у твоего - фи"

> https://simple.wikipedia.org/wiki/Fourier_transform
я правильно понимаю, что это нужно только для сложных сигналов типа звука, а для простой электроники с постоянными частотами никакие разложения нах не нужны?
Аноним 16/02/24 Птн 15:21:05 3051068 71
>>3050708
Это просто разложение сложного сигнала на простейшие составляющие - косинусы и синусы, и у каждой составляющей какой-то вес. Позволяет проще выполнять математические операции над сигналом.
Аноним 16/02/24 Птн 15:34:29 3051083 72
Аноним 16/02/24 Птн 16:36:05 3051220 73
>>3051068
> > я правильно понимаю, что это нужно только для сложных сигналов типа звука, а для простой электроники с постоянными частотами никакие разложения нах не нужны?

то есть это надо для каких-нибудь фильтраций шумов, усилений слабых сигналов, и так далее, а рядовому ардуинщику с простыми 32кгц кристаллами никакое разложение нахуй не надо?
Аноним 16/02/24 Птн 16:57:37 3051264 74
>>3051220
Ну если рядовой ардуинщик не работает с обработкой сигналов (исключая стандартный АЦП/ЦАП в комплекте) - это понятное дело не надо.
Другое дело что тема достаточно интересная, если не упарываться математическими формулировками
Аноним 16/02/24 Птн 21:08:29 3051578 75
Тема конечно интересная! Я вот думаю если таблетку взять которую врач выписал и её на спектр поделить прикинь чо получится. Оболочка это типа синупсы а внутри мякотка самая косинусовая. Пить её я конечно не буду, разрывы начинаются. Вообще тема интересная.

Прикинь сижу я значить дома мамкин борщ хуярю, а с улицы меня сигналом облучают. Сигнал во времени вроде как конечный, и мощность в нем конечная без разрывов. Я возьму вот >>3051068 и разложу сигнал-то, разложенным сигналом ты попробуй ещё облучи кого. Его же надо собрать обратно. Туда ещё можно, а обратно никак. Сумма синусоид она ж большая границ-то нет они же бесконечные. Кто ещё шиз тут ишь чо ух бля.
Аноним 17/02/24 Суб 03:08:51 3051850 76
>>3051578
Нет, все-таки таблетки ты лучше пей
Аноним 17/02/24 Суб 03:41:31 3051863 77
Хочу фитить бэйзлайны для одной своей параши. Ирл анончик подсказал одну статью (Mixture models for baseline estimation doi:10.1016/j.chemolab.2011.11.001), но кодом делится не может, так как прототип в его конторе.
Если вкратце, то бэйзлайн моделится взвешенной регрессией P-сплайнов, и каждую иттерацию веса пересчитываются, моделя сигнал как 2 компоненты - случайный шум - нормальное распределение с какими-то сигмой и мю + равномерное распределение для регионов где сигнал есть. Ну и типа получается, что если шум сплайном сгладить, то среднее - как раз бэйзлйан.
В статье предлагают взять какой-то инишиал гэс по весам и по параметрам (сделал как в статье), и в каждой итерации делать ЕМ.
Беру как априорную вероятность 0.5, домножаю его на плотность вероятности гаусовское расределение с сигмой, мю, в точках текущих остатков (Сигнал - бэйзлайн). Получаю постериорное как posterior = gaus / (gaus + (1 - prior) * unif)
И далее апдейчу параметры... и...
Как апдейтнуть новую вероятность принадлежности к региону сигнала с сигмой я хз. Беру как prior, sigma = mean(posterior), std(res[posterior >= 0.5]). Результат калистый, плохо аппроксимируется. У кореша норм. Спросить не могу, потому что буду казаться лохом. Пусть лучше буду казаться лохом здесь.
Аноним 17/02/24 Суб 22:21:34 3052929 78
>>3051863
Поясни конкретнее, мало что понятно. У тебя спектр чего-то с пиками, позиция и интенсивность которых имеет физический смысл? Почему нельзя включить фон в модель? Покажи пример, что ли. Пробовал fityk.nieto.pl использовать для анализа спектров своих?
Аноним 18/02/24 Вск 14:26:40 3053554 79
>>3050809
Ну и своими словами-то объяснить слабо?

>>3051068
вот этот хотяб попытался
Аноним 21/02/24 Срд 10:13:47 3057209 80
15307a1b079ffab[...].jpg 34Кб, 640x640
640x640
>>3051083
Ананасик мой любименький, вот скажи мне как брат брату, ну вот разложил я сигнал на отрезке 1...2сек на пики частот по мощностям. А вот если я хочу как в винампе аквалайзеры прикрутить, это что мне надо делать? Это мне эти сами пики как-то надо делить(умножать), и обратно из преобразованного графика выстраивать первоначальную звуковую волну и отдавать на звуковой драйвер? Просвяти плиз бибизьяна
Аноним 21/02/24 Срд 12:06:11 3057379 81
image.png 1Кб, 488x253
488x253
image.png 1Кб, 492x253
492x253
>>3057209
Ну тут мои знания заканчиваются. Могу сказать только следующие вещи:
В принципе можно получившийся набор частот воспринимать как ползунки эквалайзера, и добавлять и прибавлять к ним нужное количество мощности. Затем проводить обратное преобразование фурье и получать сигнал. Но это чревато искажениями сигнала. И как мне сказали старшие товарищи, это не круто.

Можно генерировать специальные фильтры низких частот, которые будут одни частоты выделять, другие гасить. Но тут уже без преобразования фурье можно обойтись. Ты один раз генерируешь нужный тебе фильтр, а затем подмешиваешь его в сигнал. Это самый правильный вариант, но я в этом не шарю совсем.

Вообщем либо вручную в получившиеся столбики частот добавлять/убавлять мощность, но мириться с искажениями звука.
Либо вообще не использовать преобразование фурье и просто подмешивать в сигнал другой сигнал, который как эквалайзер изменит твою частотную характеристику.

Я помню хотел выделить из звука определённый набор частот и воспроизвести его, я делал так: сделал преобразование фурье, мощности ненужных частот приравнял к нулю, нужные частоты не трогал. Сделал обратное преобразование фурье, воспроизвёл получившийся звук. (На двух картинках визуализация) Вроде работало, но мне старшие товарищи сказали, что это не серьёзно и так никто не делает.

Вот и всё что я могу тебе сказать
Аноним 21/02/24 Срд 13:33:16 3057543 82
>>3017536
> Но если на вход мы подаём просто набор рандомных точек, то что будет? Кто нибудь пробовал применять разложения сигнала на спектр который имеет искусственную природу?
Белый/розовый/лазурный шум. Цвет дают по распределению частот в шуме. Использовали для всяких спецэффектов, имитация голоса иои дождя, всякое такое.
Аноним 21/02/24 Срд 15:51:53 3057908 83
Я не знаю, смеяться или плакать.
Аноним 27/02/24 Втр 01:16:05 3065374 84
>>3017536
Если такое правило, что чем короче сигнал во времени, тем шире его спектр. Соответственно предельно короткий сигнал (точка) произведет предельно широкий спектр.
Аноним 27/02/24 Втр 01:18:23 3065378 85
>>3053554
>вот этот хотяб попытался
Так а что, непонятно?
Аноним 18/04/24 Чтв 20:39:24 3127945 86
4.mp4 20450Кб, 1280x604, 00:00:17
1280x604
>>3032633
Анончик, спасибо тебе большое, благодаря тебе я сделал первый шаг в этом удивительном и полном опасностей и приключений мире!
Аноним 21/04/24 Вск 08:41:46 3130246 87
Тест
Ответить в тред Ответить в тред

Check this out!

Настройки X
Ответить в тред X
15000
Добавить файл/ctrl-v
Стикеры X
Избранное / Топ тредов