2014-12-06 1 views
1

Добавить белые гаусс шума к записанному голосовому сигналу, с «спектром, который недобавляя белый гауссовский шум с помощью MATLAB

конфликта с голосовым спектром» (высокочастотный шум).

Значит, для вышеуказанной статьи это означает, что их величина должна быть одинаковой?

Я добавил белый гауссов на мой голос, используя команду MatLab:

noisyVoice = awgn(myVoice,1) 

Это график как мой голос и шумный voise (один с добавлением белого гауссовского шума):

enter image description here

+0

'x axis' вашего участка частотной области имеет проблемы! – Rashid

+0

@ Kamtal Я отредактировал метки для оси x – AMH9

ответ

1

Одним из решений является фильтрация гауссовского шума, а затем его модуляция на определенную частотную полосу.

Fs = 1000; 
L = 500; 
t = (0 : L-1)/Fs; 
x = chirp(t,10,.5,100); 
NFFT = 2^nextpow2(L); 
Y = fft(x,NFFT)/L; 
f = Fs/2 * linspace(0,1,NFFT/2+1); 
subplot(211) 
plot(f,2*abs(Y(1:NFFT/2+1))) 
title('Amplitude Spectrum of Noise-free Signal') 
xlabel('Frequency (Hz)') 
b = fir2(30,[0 2*50 2*50 Fs]/Fs,[1 1 0 0]); 
n = randn(L, 1); 
nb = filter(b,1,n); 
newx = x + nb' .* cos(2*pi*300*t);   % x + modulated noise (Fc = 300Hz) 
newY = fft(newx,NFFT)/L; 
subplot(212) 
plot(f,2*abs(newY(1:NFFT/2+1))) 
title('Amplitude Spectrum of Noisy Signal') 
xlabel('Frequency (Hz)') 

enter image description here

Вы должны настроить фильтр низких частот и частоту модуляции с вашими данными.