【发布时间】:2012-04-19 01:37:01
【问题描述】:
我正在使用 MATLAB 构建语音变形系统,我需要将源和目标、训练和测试样本划分为 128 个样本的帧,以便我可以在每个帧上应用 DWT。 那么请指导我如何将矢量划分为帧?
【问题讨论】:
标签: matlab
我正在使用 MATLAB 构建语音变形系统,我需要将源和目标、训练和测试样本划分为 128 个样本的帧,以便我可以在每个帧上应用 DWT。 那么请指导我如何将矢量划分为帧?
【问题讨论】:
标签: matlab
您可以使用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)
【讨论】:
如果您有可用的信号处理工具箱,则使用 reshape 的替代方法是使用缓冲区。简单地 。 . .
y = buffer(x,128)
.. 在你的例子中。如果原始信号 (x) 中的元素数不是 128 的整数倍,buffer 命令还会在最后一帧添加尾随零。
【讨论】: