matlab buffer的使用
2018-03-12 19:56
1556 查看
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) x=1:30,n=7,p=−3x=1:30,n=7,p=−3
y = buffer(x,n,p,opt)
当p>0p>0,opt 指定一个长度为p的向量插入在第一个信号的元素之前,opt取默认值时为zeros(p,1), 取‘nodelay’时,直接在缓存矩阵中写入信号的第一个元素。
当p<0p<0, opt是[0,-P]里面的一个整数,比如x=1:30,n=7,p=3,opt=2x=1:30,n=7,p=3,opt=2
>> 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,m=floor(L/(n−p))m=floor(L/(n−p)), 当 length(opt)=plength(opt)=p 或者 m=floor((L−n)/(n−p))+1m=floor((L−n)/(n−p))+1 当 opt=′nodelay′opt=′nodelay′。 如果y是错开的,大小为nxm,其中 m=floor((L−opt)/(n−p))+(rem((L−opt),(n−p))>=n)m=floor((L−opt)/(n−p))+(rem((L−opt),(n−p))>=n) 当输入信号的存放在指定大小的帧矩阵中时还有剩余的信号,那么这些剩余的信号存放在z中。
相关文章推荐
- 使用Matlab绘制星座图
- Matlab 中 residuez函数的使用
- MATLAB标定工具箱的使用
- Libsvm在matlab环境下使用指南
- 一些matlab教程资源收藏,使用matlab编程的人还是挺多的
- Windows下mex程序的调试 使用Matlab调试mex程序
- 使用events DUMP buffer cache中指定的数据块
- 可视化利器 —— t-SNE(matlab toolbox 的使用与解释)
- Matlab Tricks(十七)—— 使用 Latex
- MATLAB实现频数直方图——hist的使用
- MATLAB中如何使用遗传算法
- 使用matlab绘制从KEIL memory导出的内存数据
- 科学计算 | Matlab 使用 GPU 并行计算
- (原)matlab中使用mex编译多个cpp文件
- MATLAB实现多分类和libsvm工具箱的安装使用详解
- winCE下使用一组buffer实现音频回环
- 使用通道和byteBuffer进行大文件分批传输
- [置顶] matlab2c使用c++实现matlab函数开发配置全解
- matlab使用小结
- matlab中命令保存-- 使用notebook实现