Как найти СКО (среднеквадратическое отклонение) белого шума в аудио файле wave на C#?

Как найти СКО (среднеквадратическое отклонение) белого шума в аудио файле wave на C#?


Ответы (1 шт):

Автор решения: Pak Uula

Это не ответ, а предложение уточнить задачу. Комментарии слишком малы, чтобы вместить ))

Во-первых, понятие шум/сигнал здорово зависит от природы сигнала. Одно дело, музыка. Другое - звуки природы. Третье - записи сигналов, принятых радиотелескопом. В каждом из этих сценариев требуется своё понятие шума.

Во-вторых, само понятие шума. Вот представьте, вы дома или в офисе записываете речь на диктофон, а за окном гудит федеральное шоссе. Шорох шин, гудки, взрыки моторов - для вашей записи они шум, так как ваша цель записать голос. Но для диктофона это вполне себе нормальный сигнал, который попал в микрофон.

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

В-четвёртых, сам сигнал не постоянен во времени. Например, в музыке спектр сигнала меняется от такта к такту. Поэтому, по-хорошему, нужно вычленять шумы в каждом такте. Соответственно, обрабатывать не всю запись чохом, а дробить её на такты, что требует отдельного интеллекта от программы.

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

→ Ссылка