使用matlab添加白高斯噪声

时间:2014-12-06 12:59:24

标签: matlab noise

为录制的语音信号添加高斯白噪声,其频谱为“

与您的语音频谱冲突“(高频噪音)。

因此,对于上述声明,是否意味着它们的大小应该相同?

我使用matlab命令在我的声音中添加了白高斯:

noisyVoice = awgn(myVoice,1) 

这是我的声音和嘈杂的声音(添加了高斯白噪声的声音)的图表:

enter image description here

1 个答案:

答案 0 :(得分: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

您应该使用数据调整低通滤波器和调制频率。