示例:解释将矢量转换为矩阵时的重叠
1. 定义前 96 个元素具有唯一数据的 10000 元素矢量。
元素 96 用于跟踪不同重叠值的偏移:
2. 定义 2 的次方的 10 元素矢量。
其中,ss 是目标矩阵中的行数。
3. 定义 overlap 因子在 0-90% 之间的 10 元素矢量,增量为 10。
重叠不可能为 100%。
如果将重叠设为零,“数据”矢量会被分成多个 ss 长区块。随着重叠的增加,ss 长区块的数量也会增加,如下列方程所示:
每个切片尺寸和重叠因子的组合会产生不同的矩阵维数。当前设置导致产生以下矩阵维数:
5. 创建 10 元素矢量 TI,以便将 ti 设置为等于或小于 ti 值的 10 个值之一。
6. 将 ti 设置为 TI 中元素之一并创建矩阵。
新的矩阵维数现为:
7. 使用下面的短程序显示矩阵前 10 个转置列的内容,以观察重叠对 Data 元素 96"X96X" 放置的影响。
8. 计算矩阵 M。
许多元素当前重叠的大小为关于 ss 和 overlap 的函数,现等于:
9. 将默认重叠设为 40%。设置 overlap=0 并检查矩阵 M 以查看每个组中数据。
10. 使用不同的 overlap 值进行实验并借助下面的说明帮助您理解写入以显示 "X96X" 的原因。
重叠为 0%,N=0
• 将 Data 中 Set # 0 的 ss 元素写入矩阵的第 0 列,从索引 0 处开始。
• 将 Data 中 Set # 1 的 ss 元素写入矩阵的第 1 列,从索引 N=0 处开始。
• 将 ss 元素的后续各组写入矩阵后续列中的索引 N=0 处。
• 由于元素重叠 N=0,因此,ss 元素中 6 号组的第一个元素 "X96X" 被写入第 6 列的 N=0 元素中。
重叠为 10%,N=2
• 将 Data 中 Set # 0 的 ss 元素写入矩阵的第 0 列,从索引 0 处开始。
• 将 Data 中 Set # 1 的 ss 元素写入矩阵的第 1 列,从索引 N=2 处开始。第 1 列的前 N 个元素填入的是前一列中的最后 N 个元素。
• 将 Data 中 Set # 2 的 ss 元素写入矩阵的第 2 列,从索引 2N=4 处开始。第 2 列的前 2N 个元素填入的是前一列中的最后 2N 个元素。
• 将 Data 中 Set # 3 的 ss 元素写入矩阵的第 3 列,从索引 3N=6 处开始。第 3 列的前 3N 个元素填入的是前一列中的最后 3N 个元素。
• 由于元素重叠 N=2,因此,ss 元素 6 号组的第一个元素 "X96X" 被写入第 6 列的元素 6N=12 (小于 ss) 中。
重叠为 20%,N=4
• 上述说明适用。
• 当 overlap=20%、N=4 时,6 列中的总变换为 6N=24 (大于 ss)。这意味着变换超过了第 6 列,进入第 7 列的第 8 元素。但由于写入进入新列,因此,由另一个 N=4 控制变换且 ss 元素中 Set # 6 的第一个元素 "X96X" 被写入第 7 列的第 12 个元素。
重叠为 30-90%,N=5、7、8、10、12、13、15
• 上述说明适用,但需要仔细观察 30-90% 间的重叠。
• 当 overlap=30%、N=5 时,6 列中的总变换为 6N=30 (大于 ss)。这意味着变换超过了第 6 列,进入第 7 列的第 14 元素。但由于写入进入新列,因此,由另一个 N=5 控制变换,从而使写入超过第 7 列并进入 8 列的第 3 个元素。但由于写入进入新列,因此,由另一个 N=5 控制变换且 ss 元素中 Set # 6 的第一个元素 "X96X" 被写入第 8 列的第 8 个元素。
示例:重叠为 40%,N=7
• 6 列中的总变换为 6N=42 (大于 2ss)。
• 该过程终止于第 8 列的第 10 元素。
• 由于我们在 3 列间进行变换,因此,将 3N=21 添加到变换中。
• 这意味着 "X96X" 被写入第 9 列的第 15 个元素。