Is there automatic gain in audiorecorder or soundsc?

1 次查看(过去 30 天)
I am collecting data using audiorecorder and playing it using soundsc. I collect for a fixed time - 10 seconds. I collect the results of striking individual piano keys one at a time. For the low (bass) keys that have a long sustain time I have no problem when I play the collected sound back using soundsc. However, on the treble keys that have short sustain times I get a growing loud background noise once the note has died away but 10 seconds has not elapsed. Is there some kind of automatic gain control going on with audiorecorder or soundsc that tries to amplify the background noise once the note has died away?
Here is the script that demonstrates the phenomena:
===============================
clear; close all
%===read a note from analog input
NBits=24; Fs=44100; NChannel=1; RecordLength=10;
recObj = audiorecorder(Fs, NBits, NChannel);
disp('press Enter to start the process and wait 2 s for red RECORD light')
pause; pause(2)
figPos=[ 1234 747 140 50]; fh=figure('Position',figPos,'color',[1 0 0]); % red light text(5,50,'Recording!!'); axis([1 100 1 100]); disp('!!!RECORDING IN PROGRESS!!! '); pause(.5)
recordblocking(recObj, RecordLength);
fh1=figure('Position',figPos,'color',[0 1 0]); % green light disp('End of Recording.'); pause(.5) close(fh)
y = getaudiodata(recObj);
Fs=recObj.SampleRate;
soundsc(y,Fs);
=================================
Thanks,
Dave

回答(0 个)

类别

Help CenterFile Exchange 中查找有关 MATLAB 的更多信息

产品

Community Treasure Hunt

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

Start Hunting!

Translated by