play white noise for certain time
Mostrar comentarios más antiguos
Hi I have few questions. I want to play a white noise sound for 20 ms, but I am not sure how to check which frequencies are used to produce white noise. This is the code I am using: x=wgn(200,1,0); sound(x,10000)
But I don't think this is producing what I want. Also I have a doubt: the matrix x contains values from -3 to +3, but I don't see why. I would expect those to be the frequencies, but if I generate a white noise then the frequencies should range from 20 Hz to 20 kHz, right?
7 comentarios
KSSV
el 5 de Jul. de 2018
A white noise has all possible frequencies. To achieve what you want....you need to generate white noise and filter out the unwanted frequencies.
Salvatore Lacava
el 5 de Jul. de 2018
Wooshik Kim
el 5 de Jul. de 2018
Wooshik Kim
el 5 de Jul. de 2018
Also you can use fft to analyze the frequency spectrum of your noise
Salvatore Lacava
el 6 de Jul. de 2018
Salvatore Lacava
el 7 de Jul. de 2018
Respuestas (1)
Hengameh Noshahri
el 30 de Oct. de 2020
2 votos
Fs = 96000; % sampling frequency in Hz
Ts = 1/Fs; % sampling time in seconds
te = 5; % signal duration in seconds
y = randn(te*Fs,1); % generate White noise of duration te
t = 0:Ts:te; % generate a time array
N = size(t,2); % size of the signal
N = pow2(nextpow2(N)); % change N for efficiency in FFt calculation
Freq = Fs/2 * linspace(0, 1, N/2+1); % generate a frequency array
Y = fft(y,N)*(N-1)*Ts/N; % calculate FFT of the signal
YMag = abs(Y); % magnitude of FFT signal
plot(Freq,YMag(1:N/2+1)), ylabel('FFT'), xlabel('Frequency [Hz]')
sound(y,Fs,24); % listen to the generated noise if you feel adventurous!
Categorías
Más información sobre Measurements and Spatial Audio en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!