Как создать волновой звук в R с заданным уровнем deciBel? - PullRequest
0 голосов
/ 02 декабря 2011

ИК, благодаря библиотеке sound мы можем создать синусоидальную волну:

s1 <- Sine(650, 1, 44100, 16, 2)

При построении графика формы волны мы получаем изображение, подобное этому:

plot(s1[1:100])

waveform

Форма волны перемещается в интервале [-1, +1].Если я воспроизведу его, какому децибелу он соответствует?

Как генерировать звуковой сигнал (с теми же параметрами), с указанным уровнем в децибелах (т. Е. Звуковой сигнал, частота 650 Гц, длительность 1 с, выборкаскорость 44100, 16 бит, 2 канала, 55 дБ)?

Заранее спасибо!

1 Ответ

0 голосов
/ 02 декабря 2011

Итак, я думаю, вы хотите изменить амплитуду, верно?Не существует простого способа изменить амплитуду в sound так, как вы хотите, потому что это очень простой пакет.Попробуйте пакеты tuneR или seewave для гораздо более сложных опций и контроля (например, afilter в seewave может быть хорошим решением, но, к сожалению,Я не мог запустить его в R 2.14 - не совместимо).

То, что вы можете сделать простым способом, это использовать normalize для изменения громкости, но это не работает для амплитуды по умолчанию в пакете sound.Например, если вы производите эту синусоидальную волну

 s1 <- .6*Sine(650, 1, 44100, 16, 2)  

, вы можете нормализовать ее на

 s2 <- normalize(s1) 

И вы можете услышать (и увидеть на графике), что s2 громче.

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