-1
\$\begingroup\$

I am very new to audio processing and I am using matlab to produce a signal to be presented through an audiometer.

The way I am doing it is as follows:

1) Set the dB amplitude level in my GUI to 0dB (I have been told to use 0dB as the max and anything below to reduce the levels and not go above 0dB)

2) Use the audiometer to calibrate it such that the dB I read on the dB meter is 80dB

Now if I want to reduce the dB level by 6dB so now the input is -6dB, the reading on the meter is more like 78dB ish and not 74dB as I expected.

Why is that so?

The code I am using is as follows:

Fs = 16000;

t = 0: 1/Fs : handles.duration*(Fs-1)/Fs;

fa1 = 10^(handles.level1/20);%calculating the factor to multiply the signal by

y1 = fa1*sin(2*pi*handles.freq1*t + handles.rad1*pi)';% actual signal

sound(y1,Fs)

Thank you.

\$\endgroup\$
  • \$\begingroup\$ It looks like you might have a bunch of code buried in your GUI in the form of callback functions that you can't see. \$\endgroup\$ – Scott Seidman Jul 29 '13 at 20:18
  • \$\begingroup\$ I double checked everything; looks like they are in order and the handles corresponds to their respective values. But is it the proper way of doing it though? Should the dB recorded in the dBmeter go down by 6dB is I put -6dB as my input? \$\endgroup\$ – Ali P Jul 29 '13 at 20:31
  • \$\begingroup\$ The most direct way to understand what is being displayed in the dBmeter is to look at the callback function for that part of the gui. If there's a property inspector for the GUI, you should be able to click around and see it. \$\endgroup\$ – Scott Seidman Jul 29 '13 at 21:50
1
\$\begingroup\$

The problem in your setup is that you are confusing dB power and dB voltage.

Traditionally, the dB measured for audio signals is dB power. Power scales as the square of voltage. Thus, 20 dB difference means a 10 dB difference in voltage. When you see voltage dB drop from 80 dB to 77 dB, that means power drops by twice that in dB (which is 6 dB.)

\$\endgroup\$
0
\$\begingroup\$

Decibels can be used to measure power or the amplitude of a signal, and I suspect that you are using one definition in Matlab and the other in your audiometer. Increasing power by a factor of 2 is a 3 dB change but increasing voltage or signal amplitude by a factor of 2 is a 6 dB change. I would suggest changing the line of code that calculates fa1 to be

fa1 = 10^(handles.level1/10);

\$\endgroup\$
  • \$\begingroup\$ I see good point. However, I changed it and it does seem more responsive but it is still not accurate. I am guessing the issue is because I am using dB-full scale and the sound meter is in dB-SPL and the audiometer is in dB-hearing level. \$\endgroup\$ – Ali P Jul 30 '13 at 20:23

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.