matlab buffer的使用

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) 

fig1
(2) x=1:30,n=7,p=3 x = 1 : 30 , n = 7 , p = − 3
fig

y = buffer(x,n,p,opt) 

p>0 p > 0 ,opt 指定一个长度为p的向量插入在第一个信号的元素之前,opt取默认值时为zeros(p,1), 取‘nodelay’时,直接在缓存矩阵中写入信号的第一个元素。

p<0 p < 0 , opt是[0,-P]里面的一个整数,比如 x=1:30,n=7,p=3opt=2 x = 1 : 30 , n = 7 , p = 3 , o p t = 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/(np)) m = f l o o r ( L / ( n − p ) ) , 当 length(opt)=p l e n g t h ( o p t ) = p 或者 m=floor((Ln)/(np))+1 m = f l o o r ( ( L − n ) / ( n − p ) ) + 1 opt=nodelay o p t = ′ n o d e l a y ′ 。 如果y是错开的,大小为nxm,其中 m=floor((Lopt)/(np))+(rem((Lopt),(np))>=n) m = f l o o r ( ( L − o p t ) / ( n − p ) ) + ( r e m ( ( L − o p t ) , ( n − p ) ) >= n ) 当输入信号的存放在指定大小的帧矩阵中时还有剩余的信号,那么这些剩余的信号存放在z中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值