Impulse Response Measurer: Amplitude of recorded signal is almost half compared to recording in audacity

4 views (last 30 days)
i have recently been working with the impulse response of a room and wanted to determine it myself without the impulseresponsemeasurer, using the results of the tool as a guide for my own attempts.
I have now noticed that the recorded values from the irdata table are about half the size of the recorded values from audacity.
I use the saved signal to be sent from the irdata table and play it back in audacity, while simultaneously recording in audacity. Playback volume is the same in both cases, recording volume is also the same.
I can't explain now how these differences come about, since the same hardware is used.
In the picture you can see that the recorded signals are the same in their characteristics - only the values for the amplitude do not match. I am not sure now if I get wrong values for the impulse response in the impulseresponsemeasurer, because the ratio of the signal to be played and the recorded signal do not fit...
Is this how it should be?
Have I overlooked something in the documentation?
Am I on the wrong track? Are the values in audacity wrong?
Is there a hidden option/value for the recording volume in matlab which affect the recorded values?
If someone could make similar observations or give me a tip how these deviations come about I would be grateful.

Accepted Answer

Jimmy Lapierre
Jimmy Lapierre on 14 Feb 2022
Playback level in the impulseResponseMeasurer is controlled by the "Excitation Level (dBFS)" setting in the toolbar. Does setting that to 0 dBFS get you more in line with what you expect?

Sign in to comment.

More Answers (2)

Image Analyst
Image Analyst on 12 Feb 2022
I had the opposite situation. In audacity, it recorded a signal and said it was going from -0.5 to +0.5 with lots of clipping at -0.5 and +0.5 (which may have been caused by the dictation recorder I had used to record the conversation). Then I told Audacity to export it to .mp3 format and read it into MATLAB and now the values go from -0.7 to +0.7. The waveform doesn't have flat tops like in Audacity so I think that those might have been changed upon conversion to MP3 format, which changes the signal due to lossy compression.
What format did you export the signal to from Audacity?
  1 Comment
Mehmet Cibir
Mehmet Cibir on 12 Feb 2022
i exported the ExitationSignal from the irdata_xxx table as .wav file with audiowrite(...), also the RecordedSignal to compare it with the recorded signal in Audacity.
Then i exported my recorded signal (track) as .wav (Signed 16-bit PCM) and used "[y,FS] = audioread("rec_signal_from_audacity")" to check if there is any changes in amplitude because of conversion or some black magic :-)
The image below clearly shows that there is no conversion of the amplitude by exporting. The recorded signal in the impulseresponsemeasurer tool has about half the amplitude as the recorded signal/track in Audacity.
The only other thing I could do would be to repeat the measurements in Audacity and Matlab and measure the voltages at the microphone with an oscilloscope. If the voltage levels are the same, I would conclude that there was a conversion/interpretation error when saving the values in one of the two programs.

Sign in to comment.

Mehmet Cibir
Mehmet Cibir on 14 Feb 2022
I tried again and measured the microphone voltage while recording in Audacity and in MATLAB with the audioPlayerRecorder() function. The voltage levels are the same, which should lead to the same results in the recording volume.
The recorded amplitude is with the impulseresponsemeasurer and the audioPlayerRecord function the same, and both are about the half compared to the recorded from Audacity.
But if i try to record with the Analog Input Recorder, the amplitude is the same as in Audacity, see picture below.
In my opinion, what was recorded by Audacity and the Analog Input Recorder is correct in terms of amplitude.
But why MATLAB makes differences between the Analog Input Recorder and the audioPlayerRecorder/impulseresponsemeasurer is a mystery to me.


Find more on Audio I/O and Waveform Generation 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!