Comments 13
на дискретных сигналах всегда гармоники лезут, их сглаживать/фильтровать надо
Вейвлет преобразование еще погоняйте по вашим данным. Там и фильтровать можно по разным масштабам и, возможно, сам характер нагрузки на CPU как набор волн, сдвинутых по времени, можно порассматривать.
Альфа ритмы всепланетного мозга самопроизвольно зародившегося в интернете...
Он спит.
А можно ли картинку колебаний преобразовать в звук?
Примерно вот такую


Попробую на досуге, библиотеки вроде есть
Всё что угодно можно преобразовать в звук, только результат в данном случае не будет выглядеть как на картинке. Если хочется звук в реальном времени — тогда значение загрузки процессора можно кодировать частотой синусоиды, которые плавно смешиваются друг с другом.
На самом деле эта картинка представляет собой таки звуковые колебания, точнее, мелодию, которую я когда-то собственноручно вырезал из MP3 файла, чтобы использовать в качестве рингтона на телефоне. Я пользовался программой Steinberg WaveLab, в таком виде она представляет мелодию для всевозможных операций аудиомонтажа. Мне было интересно, насколько такое представление соответствует действительности, но быстро найти средство, которое прямо по картинке генерирует звук, мне не удалось. На Хабре когда-то была статья "Как звучит сердцебиение: перевод бумажной кардиограммы в WAV-формат", в ней описывалось решение похожей задачи, но применить ее метод непосредственно, мне кажется, трудно
Разрешение 1 секунда — это мало. Нужно хотя бы 10-25 мс, т.е. период переключения потоков. И у вас в коде перед FFT отсутствует умножение на оконную функцию, оттого и в спектре у вас слишком много мусора. И графики амплитуд нагляднее в логарифмическом, а не в линейной масштабе.
Сама идея не такая уж и бессмысленная — я делал нечто подобное для анализа шума в цепях питания звукового тракта.
Сама идея не такая уж и бессмысленная — я делал нечто подобное для анализа шума в цепях питания звукового тракта.
умножение на оконную функцию
Причем не абы какой функцией усреднение делать (среднее арифметическое не подойдет), а Lancsoz window с помощью sin(x)/x
Ни Lancsoz, ни sin(x)/x тоже не подойдут. Здесь же задача не в усреднении или сглаживании, а в уменьшении эффекта "spectral leakage", и оконные функции для этого тоже используются специальные, Хамминг/Блэкман/Нуттал наиболее часто используемые.
Sign up to leave a comment.
Спектральный анализ сервера