Matlab常用函数
1.repmat:重复数组副本
% 用法
A = [1 2 3];
B = repmat(A, 1, 2); % 按行不变,按列复制成2份。
% 得到 B=[1 2 3 1 2 3]
2.kron:Kronecker tensor product
% 用法
a = [1,2,3];
b = kron(a,ones(1,2));
% b = [1 1 2 2 3 3] 常用于基带信号的矩形脉冲成型
% 或者
b = repelem(a, 2);
3. flip:翻转元素顺序
% 用法
% 1. 802.11中,将Length字段的比特转为十进制的例子
length_bits = [0 0 1 1 1 0 0 0 0 0 0 0]; % 低位在左
psdu_octet_length = bin2dec(num2str(flip(length_bits))); % 28
% 2. 802.11中,将PSDU字段的比特(低位在左)转为HEX十六进制
pad_bits_array = reshape(psdu_bits, 8, length(psdu_bits)/8)';
psdu_byte = num2str(flip(pad_bits_array, 2));
psdu_byte = bin2dec(psdu_byte);
psdu_byte_hex = dec2hex(psdu_byte);
% 3. 802.11a/g中,将HEX转为比特(低位在左)
BBC_octet_data = [0x04 0x02 0x00 0x2E];
for i=1:length(BBC_octet_data)
% 4-> '0000 0100' -> '0010 0000' -> [0 0 1 0, 0 0 0 0] lsb in left
data_bits_temp = dec2bin(BBC_octet_data(i), 8);
BBC_bits((i-1)*8+1:i*8, 1) = int8(flip(data_bits_temp))-48;
end
4. hexToBinaryVector & binaryVectorToHex
% hexToBinaryVector的用法:将16进制转换为 二进制序列
binVal = hexToBinaryVector('0A') % binVal = 1 0 1 0
binVal = hexToBinaryVector('0A',8,'MSBFirst') % binVal = 0 0 0 0 1 0 1 0
binVal = hexToBinaryVector(dec2hex(10),8) % binVal = 0 0 0 0 1 0 1 0
% binaryVectorToHex的用法:将2进制序列转换为 Hex
hexVal = binaryVectorToHex([0 0 1 1 1 1 0 1], 'LSBFirst') % hexVal = 'BC'
decVal = hex2dec(hexVal) % 188