在matlab中以时间间隔生成不同的音调

时间:2012-12-14 05:04:19

标签: matlab audio ringtone

如何在以下条件下生成连续音,因为我只能从0到1创建音调。何时连续生成音? 创建一个包含三个音调的3秒信号;音频220Hz,0 <&lt; t&lt; 1音调300赫兹,1 <1。 t&lt; 2音调440赫兹,2&lt; 2 t&lt; 3 使用s = sin(2 * pi * t)和采样频率为8192 Hz

Fs = 8192;
T = 1/Fs;                                             

t = 0:T:1;
t1=1:T:2;
t2=2:T:3;
y = sin(2*pi*200*t); 
hold on;
y = sin(2*pi*300*t1);
hold on;
y = sin(2*pi*440*t2); 
hold on;                         
plot(t,y);           
xlabel('t');                              
ylabel('Amplitude');                       

谢谢

2 个答案:

答案 0 :(得分:0)

假设x是一个包含1秒音调的Nx1向量,你可以将其复制为3秒的音调:

x_long = repmat(x,3,1)

答案 1 :(得分:0)

你是说这个意思吗?

Fs = 8192;
T = 1/Fs;                                             

t1 = 0:T:1;
t2=1:T:2;
t3=2:T:3;
y1 = sin(2*pi*200*t); 
y2 = sin(2*pi*300*t1);
y3 = sin(2*pi*440*t2);                          
plot(t1,y1,t2,y2,t3,y3);           
xlabel('t');                              
ylabel('Amplitude'); 

如果是这样,并且您希望数据在两个数组中,那么下一步也是

t=horzcat(t1,t2,t3);
y=horzcat(y1,y2,y3);

我不是100%确定这是否是你想要的,如果没有,请纠正我