Intensity of a noise

7 views (last 30 days)
Parisa
Parisa on 29 Aug 2020
Commented: Parisa on 5 Sep 2020
Hi. I have an question. can we determine intensity of tones in matlab? for example I use the code below for creating a noise and I want to be at 60 dB, can any one help me please!
nsamples = floor(noise_dur*fs);
noise_all_Hz=randn(nsamples,1);
% Take fft of the noise
noise_fft = fft(noise_all_Hz);
freqs= [0:size(noise_fft,1)-1]/size(noise_fft,1)*fs;
% Get index for your Frequencies
[~,idx_950] = min(abs(freqs-950));
[~,idx_1050] = min(abs(freqs-1050));
% "zero out" all other bins
noise_fft(1:idx_950) = randn(idx_950,1)*1e-3;
noise_fft(idx_1050:end) = randn(size(noise_fft,1)-idx_1050+1,1)*1e-3;
% Get back time signal
noise = ifft(noise_fft,'symmetric');
noise=noise';
  2 Comments
Shae Morgan
Shae Morgan on 31 Aug 2020
Hi Parisa,
dB measures are relative comparisons. In order to know what you want to be 60 dB, you'll need to know some reference value. For example, if you want some sound to be 60 dB relative to the softest sound the average human can hear, you'll need to find dB SPL, which is some comparison of sound pressure relative to that soft sound. Now, in the programming, MATLAB doesn't do measures of micropascals (units of sound pressure), but it does measure voltage. So to convert voltages into dB you'll need to know some reference voltage that equates to the softest voltage a human can hear in your particular system. this depends on a LOT of factors (sound card, computer volume, program volume, circuit noise, etc.).
I'd suggest it probably makes more sense to buy an inexpensive sound pressure meter - measure the sound coming from your speakers, and then adjust the rms amplitude of your signal until the desired intensity is reached.
Hope this helps!
Parisa
Parisa on 5 Sep 2020
OK, thanks again

Sign in to comment.

Answers (0)

Categories

Find more on MATLAB in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!