2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу 1, 2  След.
 
 Как работает спектрометр/эквалайзер?
Сообщение29.10.2017, 09:16 


10/06/17
39
Вопрос, наверное, немного некорректно сформулирован.

Вот есть плеер, играющий FLAC, какой-нибудь. На нём есть некое подобие спетрографа, который состоит из нескольких "столбиков", якобы показывающих, сколько в сигнале какой гармонической частоты.

Понятно, что аудиофайл -- это некое дискретное приближение непрерывной функции колебания барабанной перепонки. Файл конечен, значит его можно периодически продложить в обе стороны нужным способом, потом разложить в преобразование Фурье по целым частотам и получить "столбики", равные значениям при дельтах, умножаемых на косинусы (или на мнимые синусы, если продолжили нечётным образом).

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

Какой у него вообще математический смысл? Мы берём период какой-нибудь произвольной ширины, скажем, одной секунде, и каждую секунду пересчитываем Фурье? Или мы пересчитываем Фурье каждый такт файла (ну, сдвиг по временной дискретизации)? Или мы откуда-то знаем период усреднения человеческого уха?

Или там вообще что-то другое?

Спасибо.

 Профиль  
                  
 
 Re: Как работает спектрометр/эквалайзер?
Сообщение29.10.2017, 10:30 
Аватара пользователя


31/10/08
1244
Часто это просто визуализация без какой либо научной стороны.
Просто мощность сигнала в некоторой полосе. С потном можно все частоты поделить на октавы.
Каждый столбик соответствует некоторой полосе частот вот вырезаем из сигнала эту полосу режекторным фильтром и считаем мощность.

Чуть более научно посмотрите ГОСТ 30457-97 (ИСО 9614-1-93)

 Профиль  
                  
 
 Re: Как работает спектрометр/эквалайзер?
Сообщение29.10.2017, 10:36 
Заслуженный участник


20/08/14
11177
Россия, Москва
Так ведь Фурье не считается для точки, оно считается для некоторого интервала (продублированного в бесконечность в обе стороны или с наложенной оконной функцией). Ну и количество "столбиков" связано с длиной интервала. Так что да, берём несколько раз в секунду отрезок файла и пересчитываем Фурье для него, а результат показываем. Считать каждый такт конечно тоже можно, но зачем? Вы же всё равно не увидите глазом изменение частот 44 тысячи раз в секунду, вполне достаточно 5-10 раз в секунду пересчитывать.

-- 29.10.2017, 10:52 --

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

 Профиль  
                  
 
 Re: Как работает спектрометр/эквалайзер?
Сообщение29.10.2017, 10:57 


10/06/17
39
Dmitriy40 в сообщении #1260099 писал(а):
Ну и количество "столбиков" связано с длиной интервала.

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


Спасибо, я что-то не подумал, что ширина частотной области зависит от интервала, что очевидно, на самом деле. Значит, интервал как раз одну секунду поделить на частоту дискретизации должен быть.

(Ну, Фурье -- это линейный оператор, поэтому, в общем-то, тоже фильтр. Но наверняка есть и более простые и быстрые фильтры. Но это я умничаю.)

 Профиль  
                  
 
 Re: Как работает спектрометр/эквалайзер?
Сообщение29.10.2017, 11:39 
Заслуженный участник


20/08/14
11177
Россия, Москва
Интервал не обязательно прям на секунду, вам же не нужны частоты вниз до $1$Гц.

 Профиль  
                  
 
 Re: Как работает спектрометр/эквалайзер?
Сообщение29.10.2017, 13:11 
Заслуженный участник
Аватара пользователя


01/09/13
4319
Посмотрите "оконное преобразование Фурье"

 Профиль  
                  
 
 Re: Как работает спектрометр/эквалайзер?
Сообщение29.10.2017, 15:30 
Заслуженный участник


27/04/09
28128

(Оффтоп)

user_ivan в сообщении #1260090 писал(а):
Понятно, что аудиофайл -- это некое дискретное приближение непрерывной функции колебания барабанной перепонки.
Перепонки-то с чего? Перепонка тут ни при чём. Интересоваться устройством органов восприятия человека для достаточно точного воссоздания того или иного совершенно не обязательно.

Dmitriy40 в сообщении #1260099 писал(а):
Кстати да, очень возможно что фильтрами посчитать примерное распределение гораздо проще и быстрее, тем более никакой точности от визуальных средств не требуется.
Тем более само ухо тоже ни с каким оконным преобразованием, кажется, не связывается (если только оно спряталось где-то в мозге для доведения того, что выдаёт ухо, до ума?), а фильтры там найти можно (в улитке). Хотя от визуализации особой точности никто и не ждёт.

 Профиль  
                  
 
 Re: Как работает спектрометр/эквалайзер?
Сообщение29.10.2017, 15:39 


10/06/17
39

(Оффтоп)

Ну, потому что на самом деле не нужно точно восстанавливать источник, если приёмник (ухо) всё равно воспринимает только часть.


Всякий линейный фильтр -- немножко преобразование Фурье.

 Профиль  
                  
 
 Re: Как работает спектрометр/эквалайзер?
Сообщение29.10.2017, 16:01 
Заслуженный участник


27/04/09
28128

(Оффтоп)

user_ivan в сообщении #1260141 писал(а):
Ну, потому что на самом деле не нужно точно восстанавливать источник, если приёмник (ухо) всё равно воспринимает только часть.
Это можно получить и без влезания в конкретное устройство слухового анализатора (ухо лишь его часть, дообрабатывающий кусок мозга туда тоже включается). :-) Потом, звуковые файлы не обязательно предназначаются для воспроизведения их для людей.

 Профиль  
                  
 
 Re: Как работает спектрометр/эквалайзер?
Сообщение03.11.2017, 10:26 
Заслуженный участник
Аватара пользователя


11/03/08
9540
Москва
user_ivan в сообщении #1260090 писал(а):
Но эти столбики будут верны для файла целиком. Мы же хотим получить значение "в точке".


Значения спектра в точке не существует. В точке есть лишь единичный отсчёт. Чтобы найти спектр, надо взять отрезок из N точек и по нему найти $\frac N 2$ частот. Чем длиннее отрезок - тем более дробна частотная шкала. Устройства (программы), считающие спектр динамически, разбивают его на отрезки, обычно значение умножают на оконные коэффициенты (типичное окно - максимальное значение в центре, убывая до нуля по краям), чтобы ослабить "краевые эффекты" ценой размывания оценок частоты. Отрезки могут браться с перекрытием (скажем, чётные начинаются и заканчиваются в середине нечётных). Иногда вместо расчёта Фурье по сигналу оценивают корреляционную функцию (или авторегрессию, а по ней уже КФ), а потом посредством Фурье от КФ получая спектр (скажем, "Берг-Фурье анализатор", производившийся для медицинских целей). В любом случае - по отрезку, а не точке.

 Профиль  
                  
 
 Re: Как работает спектрометр/эквалайзер?
Сообщение06.11.2017, 09:54 


27/08/16
9426
user_ivan в сообщении #1260090 писал(а):
Но эти столбики будут верны для файла целиком. Мы же хотим получить значение "в точке".
А это и есть то самое соотношение неопределённости, широко известное по квантовой механике. Не существует частоты в точке. Более того, посчитанные спектры для различных окон тоже немного различны. В зависимости от области применения эти различия могут или быть несущественными, или важными. Если нужно чтобы было просто красиво, конечно, свободы творчества больше. Если же важна в какой-то мере обратимость преобразования, например, в алгоритмах сжатия с потерями, требования будут будут более жесткими.

 Профиль  
                  
 
 Re: Как работает спектрометр/эквалайзер?
Сообщение06.11.2017, 11:41 


10/06/17
39
realeugene в сообщении #1262676 писал(а):
user_ivan в сообщении #1260090 писал(а):
Но эти столбики будут верны для файла целиком. Мы же хотим получить значение "в точке".
А это и есть то самое соотношение неопределённости, широко известное по квантовой механике. Не существует частоты в точке. Более того, посчитанные спектры для различных окон тоже немного различны. В зависимости от области применения эти различия могут или быть несущественными, или важными. Если нужно чтобы было просто красиво, конечно, свободы творчества больше. Если же важна в какой-то мере обратимость преобразования, например, в алгоритмах сжатия с потерями, требования будут будут более жесткими.


Ну, мы вроде бы сошлись на том, что можно ограничить ширину окна пределами восприятия человеческого уха по частоте. 22Hz-22kHz.
В целом, я более-менее понял.

Спасибо всем.

 Профиль  
                  
 
 Re: Как работает спектрометр/эквалайзер?
Сообщение06.11.2017, 20:33 


27/08/16
9426
user_ivan в сообщении #1262694 писал(а):
Ну, мы вроде бы сошлись на том, что можно ограничить ширину окна пределами восприятия человеческого уха по частоте. 22Hz-22kHz.
Нет, речь шла про временную область.

 Профиль  
                  
 
 Re: Как работает спектрометр/эквалайзер?
Сообщение07.11.2017, 02:21 


10/06/17
39
В смысле, про временную область? Область-то временная, но человек-то как раз частоты чувствует. То есть, нужна такая временная область, чтобы можно было измерить частоты по ширине восприятия человеком.

 Профиль  
                  
 
 Re: Как работает спектрометр/эквалайзер?
Сообщение07.11.2017, 06:53 
Заслуженный участник
Аватара пользователя


11/03/08
9540
Москва
Тут дело не в ограничении частоты, это принципиальное ограничение.
(Ограничиваясь наиболее распространённым случаем Фурье) - при частоте оцифровки f (да, и частота квантования постоянна - самый распространённый случай) можно оценить частоты от 0 до f/2. Ограничить показ воспринимаемыми человеком частотами можно, так часто делают, но рассчитываются все, не все рисуются. При этом для расчёта Фурье нужно N точек, так что разрешение по частоте f/N, а длина взятого для расчёта отрезка в секундах N/f. "Хвост вытащил - нос увяз". Или соотношение неопределённости (нетождественное квантофизическому, хотя и тонко связанное с ним).
"В точке" же частот нет, их можно рассчитать лишь по отрезку, включающему эту точку, и условно отнести значения к этой точке.
Если не Фурье - то получить по короткому отрезку более высокое разрешение можно, но не бесплатно. Скажем, можно использовать авторегрессионную модель, и, оценив параметры её, посчитать спектр для этих параметров. Но при этом будет предполагаться, что число пиков в спектре задано, их не более половины порядка модели.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 17 ]  На страницу 1, 2  След.

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group