1
我的代码如下,我想要做的是获得5个独立的ft数组,并将它们添加到for循环中,以便我可以播放它们叠加的所有声音。谢谢你的帮助!在Matlab中为For循环中汇总不同的值
`fs = 44100; % standard sampling rate
T = 1/fs; % sampling period
t = 0:T:5; % time vector
conv = 1E5; % conversion factor for frequencies
phi=2*pi*rand(1,1); % random phase
Msun = 2E30; % mass of the sun
Rsun = 6.9599E5; % radius of the sun
M = 1E32; % mass of target star
R = 7E5; % radius of target star
Teff = 6000;
% frequency of maximum oscillation mode
vmax = 3090*(M/Msun)*(R/Rsun)^(-2) * (Teff/5777)^(-1/2);
% difference between consecutive frequencies
dv = 134.9*(M/Msun)^(1/2) * (R/Rsun)^(-3/2);
for n = 0:1:4
vi = vmax + n.*dv; % pulsation mode frequencies
ft = sin(2*pi.*vi.*t + phi); % sinusoidal perturbation function
cft = conv.*ft; % converted perturbation for human audible range
sound(cft, fs) % play sound of each frequency mode
end
`
我只是测试你的代码,它的工作原理我可以听到5种不同的声音,但叠加,你不加在一起,保存在矩阵和超矩阵 – Engine 2013-02-20 20:29:40