嘿,为了继续这个话题,我想问你一些关于 wavwrite 的问题。我正在尝试播放一个 mat 文件 (T01DATA.mat)。尝试过但sound()
没有实际解决方案;谢谢你,我明白了原因。修改它以将文件放入变量中,如下所示:
s = load("T01DATA.mat");
检查了 s,得到了一个相当不错的证据,证明该方法是成功的。然后我尝试将其转换为 wav 文件,结果出现了混乱。
wavwrite(s,"out.wav");
我明白了:
所以我这样做了:
wavwrite("T01DATA.mat","out.wav");
现在我得到了一个 wav 文件,但我不能 100% 确定信号是否正确写入。我得到的只是 0 秒的录音。
答案1
对于任何检查这一点的人来说:解决方案比我想象的要简单。通过将文件加载到 Octave:
load("filename.ext");
Octave 自动将其保存在变量“y”中。这是因为 Octave 可以从 .mat 文件中导入变量。加载文件时,Octave 会看到列和向量的名称,因此它会自动导入变量内的数据。
s = load("T01DATA.mat"); #Making this whole code unnecessary)
为了从 .mat 获取 .wav 文件,您只需使用“y”实现 wavwrite(),一切都会完美。
wavwrite(y,Fs,"out.wav");
这将在你正在处理的文件夹中创建 out.wav。你可以使用以下命令检查它
pwd