Как найти СКО (среднеквадратическое отклонение) белого шума в аудио файле wave на C#?
Как найти СКО (среднеквадратическое отклонение) белого шума в аудио файле wave на C#?
Ответы (1 шт):
Это не ответ, а предложение уточнить задачу. Комментарии слишком малы, чтобы вместить ))
Во-первых, понятие шум/сигнал здорово зависит от природы сигнала. Одно дело, музыка. Другое - звуки природы. Третье - записи сигналов, принятых радиотелескопом. В каждом из этих сценариев требуется своё понятие шума.
Во-вторых, само понятие шума. Вот представьте, вы дома или в офисе записываете речь на диктофон, а за окном гудит федеральное шоссе. Шорох шин, гудки, взрыки моторов - для вашей записи они шум, так как ваша цель записать голос. Но для диктофона это вполне себе нормальный сигнал, который попал в микрофон.
В-третьих, требование белости шума. Вообще говоря, это очень сильное требование. В реальной жизни шум всегда не белый и концентрируется вокруг каких-то особых частот. В старых магнитофонах это были резонансные частоты лентопротяжного механизма, мотора, вибраций корпуса. Потом появились резонансные частоты усилителей. В нынешние времена это особенности цифровых фильтров. Например, недавно разговаривал с женой через гарнитуру, так она вся изругалась на посторонние шумы, которые угодили в частоты человеческой речи и оказались усилены системой шумоподавления.
В-четвёртых, сам сигнал не постоянен во времени. Например, в музыке спектр сигнала меняется от такта к такту. Поэтому, по-хорошему, нужно вычленять шумы в каждом такте. Соответственно, обрабатывать не всю запись чохом, а дробить её на такты, что требует отдельного интеллекта от программы.
Итого. Создание цифровых фильтров - это большое техномагическое шаманство. Не зная, к чему именно вы собираетесь применять свой измеритель шума, нельзя толком предложить решение. Хоть намекните, какого рода сигнал вы собираетесь обрабатывать и дайте пример записи.