【发布时间】:2017-11-17 07:31:19
【问题描述】:
我在 Matlab 中有以下代码(我没有 Matlab),显然是通过对二进制值序列进行采样来构造整数:
velocity_LUT_10bit = zeros(2^10,1);
for n = 1:length(velocity_LUT_10bit),
imagAC = bin2dec(num2str(bitget(n-1,9:-1:6))) - bitget(n-1,10)*2^4; % Imaginary part of autocorrelation: signed 5-bit integer
realAC = bin2dec(num2str(bitget(n-1,4:-1:1))) - bitget(n-1, 5)*2^4; % Real part of autocorrelation: signed 5-bit integer
velocity_LUT_10bit(n) = velNyq_CF*angle((realAC+0.5)/16 + 1i*(imagAC+0.5)/16)/pi;
end;
我无法理解bitget() 函数。从docs 开始,第一个arg 是采样序列,而第二个arg 指定了样本的范围,但我对切片x:-y:z 的含义感到困惑。我从docs 将其理解为“从索引 x 到 z 的样本,从右到左步幅为 y”。对吗?
bin2dec(num2str(bitget(n-1,9:-1:6))) 的 numpy 等价物是什么?我知道我应该使用numpy.packbits(),但我有点卡住了。
【问题讨论】: