2016-05-30 108 views
1

我在Matlab中有一個音頻信號,並用繪圖調整了它的大小。因此我用x和y值修改了軸,只顯示我想要的信息。現在,我想知道是否可以將此繪製的信號保存爲新的.wav-文件。將曲線圖保存爲音頻文件Matlab

這裏是我的情節是怎麼寫的:

plot(t1,y1); 
axis([T1-0.1 T1b-0.1 min(y1) max(y1)]); 

這是我的文件是如何閱讀:

file1 = 'C:\myfile.wav'; 
[y1,fs1] = audioread(file1); 
N1 = length(y1); 
t1 = linspace(0, N1/fs1, N1); 

這裏是我的信號,以可視化的問題(首先是原始和第二個是一個我想保存):

enter image description here

+0

請編輯您的問題,包括以下內容:您正在使用的代碼來讀取文件(如果你這樣做),它應該保存到什麼格式和採樣率的地方。此外,如果您僅使用「axis」調整繪圖大小,或者希望能夠放大圖形然後存儲信號的縮放部分,將很好地闡明。 – Matt

+0

原始圖是用軸調整大小的,它不是對圖形進行縮放,而是在我的程序中執行 – Kenwa

+0

我不確定T1和T1b是什麼? – noumenal

回答

1

使用audiowrite()具有以下參數:文件名,y,Fs

其中y是變換後的信號並且Fs是fs1。例如,通過y1fs1將簡單地創建原始文件的副本。文件名顯然是一個字符串。確保在變換之後,你定義了y2並將y2傳遞給y。

要得到y2,您需要在不使用軸命令的情況下轉換信號。首先你要搞清楚原來的長度,起點:未測試

% start = goes here 
% original_length = goes here 
length_in_ms = original_length - 0.1 * original_length 
samples = round(length_in_ms * Fs); 

y2 = y1(start:samples) 
audiowrite(filename, y2, fs1) 

代碼,但是這是基本的想法。

+0

好的,但我該如何定義y2,這是我的問題。我不知道如何從T1-0.1到T1b-0.1採用y1值 – Kenwa

+0

我已經在代碼中澄清了這一點。 – noumenal

+0

你在哪裏定義T1和T1b? – noumenal