0

如何在以下条件下生成连续音调,因为我只能从时间 0 到 1 创建音调。如何连续生成它?创建一个包含三个音调的 3 秒信号;Tone 220 Hz for 0 < t < 1 Tone 300 Hz for 1 < t < 2 Tone 440 Hz for 2 < t < 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');                       

谢谢

4

2 回答 2

0

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

x_long = repmat(x,3,1)
于 2012-12-14T08:10:12.557 回答
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% 确定这是否是您想要的,如果不是,请纠正我

于 2012-12-14T15:13:35.667 回答