play white noise for certain time
Afficher commentaires plus anciens
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 commentaires
KSSV
le 5 Juil 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
le 5 Juil 2018
Wooshik Kim
le 5 Juil 2018
Also you can use fft to analyze the frequency spectrum of your noise
Salvatore Lacava
le 6 Juil 2018
Salvatore Lacava
le 7 Juil 2018
Réponses (1)
Hengameh Noshahri
le 30 Oct 2020
2 votes
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!
Catégories
En savoir plus sur Measurements and Spatial Audio dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!