matlab - 将.mat转换为.wav

标签 matlab audio signal-processing

我需要在Matlab中从.mat文件创建一个wav。我这样做:

wavwrite('cap_triger.mat',44100,16,'telo.wav')

其中cap_trigger.mat是一个包含信息的文件。使用这些语句,matlab创建了telo.wav,但为空。

这就是我创建文件的方式:
%captura 
frame_dur = 202e-3;
fs = 44.1e3; 
t_max = 100e-3;

%duración de la ventana de transmisión 
dur_trig = 1e-3;

%duración temporal del pulso de la señal de trigger 
t_samp = 1/fs;  %periodo de muestreo 

%duración del trigger en muestras 
trig_samples = floor(dur_trig/t_samp);
rec_obj = audiorecorder(fs,24,2);
recordblocking(rec_obj,frame_dur);
frame=getaudiodata(rec_obj); 

最佳答案

wavwrite 需要一个变量,并且不能直接处理.mat文件。

load cap_triger.mat
X = dataarray;   % dataarray contained in .mat-file with all the information
                 % or use the variable X contained in the file directly, whatever
wavwrite( X,44100,16,'telo.wav' )

我不确定也无法测试,但这也许也可以:
wavwrite( load('cap_triger.mat'),44100,16,'telo.wav' )

也可以看看 audiowrite ,它提供了更多选项,并且将来的版本中也会提供。 (而不是wavwrite)

关于matlab - 将.mat转换为.wav,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21112664/

相关文章:

signal-processing - 复数 : fast cartesian to polar conversion

c# - 在C#中以MAT格式保存数据

函数执行的matlab时间限制

c# - 使用Naudio.dll结束播放音频文件

ios - 如何从同一个 AVAudioEngine 播放多个不同的音频文件? (错误: !nodeimpl->HasEngineImpl())

java - 如何在Jython中减少声音?

algorithm - 使用向量实现 FIR 滤波器

arrays - 如何声明句柄数组

c++ - 有限域上超定系统解的存在性

algorithm - 如何获得两个信号的定量比较