1

我正在做研究,这是我需要完成的最后一步,但我不知道该怎么做。

我需要在 Matlab 中将心率的声音模拟为哔哔声。例如,如果我的心率是 70bpm,那么我需要能够在一分钟的时间间隔内产生 70 次哔声。

我整晚都在研究它,但我无法找到如何做到这一点。

我得到的最接近的是:

Fs = 48000;
HR = 70 ;  % Heart beat bpm (range 60 - 200Bpm);
pulse_width = 60e-4;
Amp = 0.5;
delay = 30/HR
%delay = ((60/HR)/2)-(0.5*pulse_width);
t1 = -delay:(1/Fs):delay;
Heartbeat = Amp*tripuls (t1,pulse_width);
% plot ( t1, Heartbeat);
% Output signal to heart rate monitor
while (1)
sound(Heartbeat,Fs);
end

但这里有一个问题,1. 必须有一些更简单的方法来做到这一点。2. 我无法导出声音。

4

1 回答 1

0

audiorecorder您可以使用特定秒数录制声音。

nb_seconds = 5;
recObj = audiorecorder(fs, bits, 1);
recordblocking(recObj, nb_seconds);
while (1)
    sound(Heartbeat,Fs);
end

然后用 播放,用和play(recObj);录制到 .wavx = getaudiodata(recObj);wavwrite(x, fs, bits,...);


由于您的函数sound(Heartbeat,Fs)只是一个接一个地播放声音Heartbeat,因此您可以创建一个包含多次出现的声音的向量

repmat(Heartbeat,1,nb_heartbeat);

其中 nb_heartbeat = 70 将持续 1 分钟。

于 2013-10-11T12:26:03.550 回答