我有点迷茫地理解audiowrite函数如何派生"y"和"Fs",这是函数的最后两个参数。我查看了 Matlab 提供的一些示例,它们似乎工作正常。第一组代码是 Matlab 的一个示例,它返回 'y' 和 'Fs' 值。
load handel.mat
filename = 'handel.wav';
audiowrite(filename,y,Fs);
现在,我已经编写了一组类似的代码来处理.csv文件。知道加载函数的输入参数只能是 .mat 格式,我用以下格式编写了一些代码。
csvread('bgst.csv');
save bgst.mat
load bgst.mat;
filename = 'bgst.wav';
audiowrite(filename,y,Fs);
但是,在这种情况下,我收到错误消息:未定义的函数或变量"y"(或者,如果我在带有csvread函数的行中定义了y,则为Fs(。那么,为什么音频写入不会像前面的情况那样创建"y"和"Fs"。顺便说一句,我的.csv文件是 999998x4 双精度。而且,任何可以帮助我的更多信息,请告诉我。
当你这样做时:
load handel.mat
您正在将包含变量的 MAT 文件加载到工作区中。这就是初始化y
和Fs
的原因,它们被用作audiowrite
的输入参数。您可以使用whos
函数查看正在创建的变量:
>> clear all % Removes all current variables
>> load handel.mat
>> whos
Name Size Bytes Class Attributes
Fs 1x1 8 double
y 73113x1 584904 double
变量y
包含采样率Fs
的音频数据矩阵。您必须自己为数据创建这些并将它们传递给audiowrite
。