2012-01-22 52 views
3

我使用MATLAB構建語音變形系統,我需要將源和目標,訓練和測試樣本分成128個樣本幀,以便我可以在每個幀上應用DWT。 那麼請指導我如何將矢量分成幾個幀?如何在MATLAB中將矢量劃分爲幀?

回答

6

可以更改載體導入使用reshape功能相等大小的列/行(即幀)的基質中:

x = rand(128 * 100, 1); 
X = reshape(x, 128, 100); 
% X is a 128-by-100 matrix; the i-th column of 128 elements 
% is addressed by X(:,i) 
+0

我的測試和訓練樣本是以矢量而不是矩陣(x是1維矩陣)... – Kritika 2012-01-23 10:48:43

+0

正確。上面的代碼將把一個向量重塑成一個具有指定長度列的矩陣。 – 2012-01-23 13:45:08

0

使用重塑是,如果你有信號用緩衝器的另處理工具箱可用。簡單。 。 。

y = buffer(x,128) 

..在您的實例中。如果原始信號(x)中元素的數量不是128的整數倍,則緩衝區命令還會將尾隨零添加到最終幀。