Изменение интенсивности шума с помощью разных SNR - PullRequest
0 голосов
/ 24 февраля 2019

Я пробовал библиотеку обработки сигналов ThinkDSP.

Моя желаемая операция - добавить немного шума в исходный файл .wav

Я знал, что эта операциялегко достичь с помощью add_noise = my_wav + noise

Однако я бы хотел изменить шум при различных условиях SNR

Как мне добиться этого с помощью ThinkDSP?Или другие методы также приветствуются.Спасибо.

1 Ответ

0 голосов
/ 25 февраля 2019

Вам необходимо рассчитать мощность в вашем wav-файле и определить мощность шума, которая даст вам желаемый snr.В Python со scipy это довольно просто.

# Import scipy
import scipy as sp

# Signal power in data from wav file
psig = sig.var()

# For 10 dB SNR, calculate linear SNR (SNR = 10Log10(Psig/Pnoise)
snr_lin = 10.0**(10.0/10.0)

# Find required noise power
pnoise = psig/snr_lin

# Create noise vector
noise = sp.sqrt(pnoise)*sp.randn(len(sig))

# Add noise to signal
sig_plus_noise = sig + noise

См. Этот ответ для получения дополнительной информации Добавьте случайный шум с определенным SNR к сигналу

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