如何在Matlab中通过上/下坡产生声音?

时间:2019-04-15 10:25:48

标签: matlab

我需要在Matlab中以1.5 KHz的频率产生音调,其峰值幅度为30 mPa,持续时间为25 ms,在开始和偏移时分别产生1 ms的上升和下降。

到目前为止,我的语音(P)带有代码:

fs = 100000;
CF = 1.5*10^3;
amp = 30*10^-3;
duration=25*10^-3;
values = 0:1/fs:duration;
tone=[amp*sin(2*pi*CF*values)]';

这似乎是一件容易的事,但我无法弄清楚。有人可以帮我吗?

1 个答案:

答案 0 :(得分:0)

您可以先生成斜坡包络,然后将其应用于tone。 (使用逐元素乘法.*)。

尝试以下方法:

% generate ramps
% duration of 1ms with fs=100000 is 100 samples:
ramp_up = [1:100]/100
ramp_down = 1 - ramp_up

% apply to tone
tone[1:100] = tone[1:100] .* ramp_up
tone[end-100+1:end] = tone[end-100+1:end] .* ramp_down