buffer
matlab中的buffer函数可以将信号缓存为数据帧矩阵。
y = buffer(x,n)
y = buffer(x,n,p)
[y,z] = buffer(...)
[y,z,opt] = buffer(...)
分割长度L的信号x成不重叠的长度为n的数据帧,每一帧占据输出n行L/n列矩阵y的一列。当L/n不能整除时,在最后一列通过补0使其达到长度为n。
y = buffer(x,n,p)
(2)
y = buffer(x,n,p,opt)
当,opt 指定一个长度为p的向量插入在第一个信号的元素之前,opt取默认值时为zeros(p,1), 取‘nodelay’时,直接在缓存矩阵中写入信号的第一个元素。
当, opt是[0,-P]里面的一个整数,比如 >> buffer(x,n,-3,2) ans = 3 13 23 4 14 24 5 15 25 6 16 26 7 17 27 8 18 28 9 19 29
[y,z] = buffer(...)
把长度L的信号x分割成程度为n的帧,输出为y。 如果y是重叠的,那么大小为nxm,, 当 或者 当 。 如果y是错开的,大小为nxm,其中 当输入信号的存放在指定大小的帧矩阵中时还有剩余的信号,那么这些剩余的信号存放在z中。