如何使用像音频文件

时间:2017-05-26 16:02:36

标签: matlab audio signal-processing octave

如何使用音频文件中的任意波形创建扫频/啁啾信号。我可以使用matlab / octave创建一个扫频/啁啾信号,代码如下(也参见频谱)。

下面的代码用于创建一个逐渐降低频率的扫频音频信号,但我希望得到音频文件num_01.wav(链接如下)以逐渐降低频率,但我得到一个乱码音频文件。

clc,clear all
swept_startfreq = 500;
swept_endfreq = 225;
fs = 8000;
swept_dursec = 15;  % duration of signal in seconds  
swept_t = (0:swept_dursec*fs)/fs;  % Time vector

if (swept_startfreq == swept_endfreq)
      swept_phase = swept_startfreq * swept_t;
else
    swept_alpha = abs(log(swept_endfreq/swept_startfreq))/swept_dursec;
    swept_b = (swept_startfreq - swept_endfreq)/(1 - exp(-swept_alpha*swept_dursec));
    swept_a = swept_startfreq - swept_b;

    swept_phase = swept_a*swept_t - (swept_b/swept_alpha)*exp(-swept_alpha*swept_t);
endif

swept_sig_out = .8* cos(2*pi*swept_phase); %equation used to create signal

wavwrite([swept_sig_out'] ,fs,32,strcat('/tmp/swept_sig_out.wav'));  % export file

Heres是上面原始代码创建的文件的保管箱链接(扫频/ chrip音频信号)。 https://www.dropbox.com/s/wg8sxmsdd7hdojz/swept_sig_out.wav?dl=0#

它创建的原始代码/啁啾或扫描信号的频谱 Frequency Spectrum

When I replace/add the lines:

[imported_sig, fs_rate, nbitsraw] = wavread('num_01.wav');
swept_sig_out=imported_sig(:).*swept_phase(1:length(imported_sig))(:);

创建的信号是此(文件的保管箱链接)https://www.dropbox.com/s/ekrcssrgie3vfgb/swept_sig_out_created_from_audio_file.wav?dl=0#

Note: the audio test num_01.wav file I used can be found on a dropbox account https://www.dropbox.com/s/p37kaszqylqnkme/num_01.wav?dl=0#

我希望音频文件num_01.wav逐渐减小频率/音高,但我得到一个乱码的音频文件,我该如何解决此问题,以便音频文件的频率逐渐降低?

PS:我使用的是Octave 4.0,就像Matlab一样

0 个答案:

没有答案