如何将比特流分成数据包

时间:2014-07-09 13:48:06

标签: matlab

我有一个需要你帮助的问题。我有点流

S=[1 0 0 1 1 0 1 1 1 1 1 0] %it is a vector

现在我想将3位S分组到一个数据包中。所以我的数据包就是那个

packet 1: 100
packet 2: 110
packet 3: 111
packet 4: 110

如何通过matlab代码实现它 这是我的代码。但它确实可以作为我的计划

packetsize=3;
k=12 %number of bit stream
%S = rand(1,12)<0.5 % create random message vector
S=[1 0 0 1 1 0 1 1 1 1 1 0] %it is a vector
for i=1:k
        packet=s(packetsize*(i-1)+1:(i*packetsize))
end

2 个答案:

答案 0 :(得分:5)

听起来你只想要reshape(S,[],3)

答案 1 :(得分:3)

怎么样:

>> S = [1 0 0 1 1 0 1 1 1 1 1 0];
>> packets = reshape(S, 3, []).' * [100;10;1]
packets =
   100
   110
   111
   110

现在您可以访问第i个“数据包”:packets(i,:)