2012-01-22 58 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的整数倍,则缓冲区命令还会将尾随零添加到最终帧。