嘿,為了繼續這個話題,我想問你一些關於 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