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
fig

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

p > 0 ,opt 指定一個長度為p的向量插入在第一個信號的元素之前,opt取默認值時為zeros(p,1), 取‘nodelay’時,直接在緩存矩陣中寫入信號的第一個元素。

p < 0 , opt是[0,-P]里面的一個整數,比如 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 = f l o o r ( L / ( n p ) ) , 當 l e n g t h ( o p t ) = p 或者 m = f l o o r ( ( L n ) / ( n p ) ) + 1 o p t = n o d e l a y 。 如果y是錯開的,大小為nxm,其中 m = f l o o r ( ( L o p t ) / ( n p ) ) + ( r e m ( ( L o p t ) , ( n p ) ) >= n ) 當輸入信號的存放在指定大小的幀矩陣中時還有剩余的信號,那么這些剩余的信號存放在z中。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM