Audio 如何将不同频率组合成一个.wav

Audio 如何将不同频率组合成一个.wav,audio,matlab-figure,Audio,Matlab Figure,我想用matlab创建一个从12khz到13khz的.wav。我知道如何创建一个单一的频率,但我不知道如何将它们组合成一个文件。 有什么简单的命令吗 Fs=44100; toneFreq1=12000; n秒=25; f1=sin(linspace(0,n秒*toneFreq1*2*pi,round(n秒*Fs)); toneFreq2=12100; n秒=25; f2=sin(linspace(0,n秒*toneFreq2*2*pi,round(n秒*Fs)); toneFreq3=12200

我想用matlab创建一个从12khz到13khz的.wav。我知道如何创建一个单一的频率,但我不知道如何将它们组合成一个文件。 有什么简单的命令吗

Fs=44100;
toneFreq1=12000;
n秒=25;
f1=sin(linspace(0,n秒*toneFreq1*2*pi,round(n秒*Fs));
toneFreq2=12100;
n秒=25;
f2=sin(linspace(0,n秒*toneFreq2*2*pi,round(n秒*Fs));
toneFreq3=12200;
n秒=25;
f3=sin(linspace(0,ns*toneFreq3*2*pi,round(ns*Fs));
toneFreq4=12300;
n秒=25;
f4=sin(linspace(0,n秒*toneFreq4*2*pi,round(n秒*Fs));
toneFreq5=12400;
n秒=25;
f5=sin(linspace(0,n秒*toneFreq5*2*pi,round(n秒*Fs));
toneFreq6=12500;
n秒=25;
f6=sin(linspace(0,n秒*toneFreq6*2*pi,round(n秒*Fs));
toneFreq7=12600;
n秒=25;
f7=sin(linspace(0,n秒*toneFreq7*2*pi,round(n秒*Fs));
toneFreq8=12700;
n秒=25;
f8=sin(linspace(0,n秒*toneFreq8*2*pi,round(n秒*Fs));
toneFreq9=12800;
n秒=25;
f9=sin(linspace(0,n秒*toneFreq9*2*pi,round(n秒*Fs));
toneFreq10=12900;
n秒=25;
f10=sin(linspace(0,n秒*toneFreq10*2*pi,round(n秒*Fs));
f_12345678910=[f1+f2+f3+f4+f5+f6+f7+f8+f9+f10];
f_z=[f_12345678910];
声音(f_z,Fs)
wavwrite(f_z,Fs,24,'12_13zKHz.wav');

您的wavwrite数据需要在-1.0到1.0之间。你可以通过除以10来解决这个问题

f_12345678910= [f1+f2+f3+f4+f5+f6+f7+f8+f9+f10]/10;
如果只生成一次时间轴,则生成的正弦波将更具可读性

t = [1:1:(Fs*nSeconds)];
f1 = sin(2*pi*t*toneFreq1/Fs);

给杰克;谢谢你的建议。这对我很有帮助。谢谢。对于Jaket,我可以得到这个图(它有一个8khz到16khz的平台,这很好),但我也可以在图中看到一些高频波(大约>20khz),你能想出一些办法避免它们吗。非常感谢。