如何在MATLAB中将矢量划分为帧?

时间:2012-01-22 14:41:23

标签: matlab

我正在使用MATLAB构建一个语音变形系统,我需要将源和目标,训练和测试样本分成128个样本的帧,这样我就可以在每个帧上应用DWT。 那么请指导我如何将矢量划分为帧?

2 个答案:

答案 0 :(得分: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)

答案 1 :(得分:0)

如果您有可用的信号处理工具箱,则使用reshape的替代方法是使用缓冲区。简单。 。

y = buffer(x,128)

..在你的实例中。如果原始信号(x)中的元素数不是128的整数倍,则buffer命令还会将尾随零添加到最终帧。