MATLAB量化浮点数

在做算法设计和验证时,常在matlab进行浮点验证,然后量化后在用在FPGA上,对于类似与FIR这些滤波器系数,matlab直接可以export出来,但是在验证麦克风或者ADC出来的24bit补码这类时常常需要使用matlab生成定点数进行仿真验证。这里给出我常用的生成代码:

% -------------------
% input number is below 1, and Prec_F is the (N-1)bit for N bit transform
Prec_F = 23;
% -------------------
input = [1.0000  0.9921    -1.0000    -0.9298    0.2632   0   -0.0113]';
for ii =1:length(input)
    if input(ii) == 1
        data_out(ii) = input(ii)*pow2(Prec_F)-1;
    else
        data_out(ii) = input(ii)*pow2(Prec_F);  
    end
end

data_out = round(data_out);

for ii = 1:length(input)
    if data_out(ii) < 0
        data_out(ii) = data_out(ii) + pow2(Prec_F+1);
    end
    data_out_Hex(ii,:) = dec2hex(data_out(ii),(Prec_F+1)/4);
% dec2hex(data_out(ii),6)
end
data_out_Hex

输出如下:

data_out_Hex =

7FFFFF
7EFD22
800000
88FC50
21B08A
000000
FE8DB9


你可能感兴趣的:(fpga,算法,matlab,量化)