概述
量化数据data_in的方法
q_type = [12,6]
q = quantizer('fixed','round','saturate',q_type);
data_q = quantize(q,data_in);
quantize函数根据量化格式q对data_in进行量化
量化格式q由quantizer函数设置。
量化数据并输出对应二进制数的方法
q = quantizer('fixed','round','saturate',[8,6]);
data = num2bin(q,data_in);
num2bin函数将十进制数data_in按定点的量化格式q量化,输出二进制数data
quantizer函数中参数的具体设置
量化的两个函数依据都是quantizer函数生成的量化格式,前两节的代码基本上直接用就行,除了[12,6]。12是数据完整长度,6是小数部分长度,改成实际仿真中需要的。
首先,查看默认的量化格式:
q= quantizer()
输出:
看到量化格式q包含着四个参数‘datamode','roundmode','overflowmode','format',默认分别是'fixed','floor','saturate',[16,15]。
quantizer函数的4个输入参数,不限制输入顺序,不限制输入个数。但还是按顺序分别输入好。
四个参数的意思和可选择的模式如下:
1)DataMode数据类型,默认是'fixed'。除默认还有4种。
-
'fixed'
— 有符号定点模式。 -
'ufixed'
— 无符号定点模式。 -
'float'
— 自定义精度浮点模式。 -
'single'
— 单精度模式。此模式将覆盖所有其他属性设置。 -
'double'
— 双精度模式。此模式将覆盖所有其他属性设置。
2)RoundMode取整模式,默认是‘floor’。除默认还有5种
'floor'
— 向下舍入到下一个允许的量化值。-
'convergent'
— 舍入到最接近的允许量化值。仅当舍入后的最低有效位设置为 0 时,恰好位于两个最接近的允许量化值之间的数字才会向上舍入。 -
'fix'
— 向上舍入负数,将正数向下舍入到下一个允许的量化值。 -
'ceil'
— 向上舍入到下一个允许的量化值。 -
'nearest'
— 舍入到最接近的允许量化值。介于两个最接近的允许量化值之间的数字将向上舍入。 -
'round'
— 舍入到最接近的允许量化值。介于两个最接近的允许量化值之间的数字将以绝对值向上舍入。
3)OverFlowMode溢出如何处理,默认'saturate',针对定点类型的参数,如果对浮点型设置了这个参数会没用,不会报错。
-
'saturate'
— 溢出饱和。当要量化的数据值位于数据格式属性指定的最大和最小可表示数字的范围之外时,这些值将量化为最大或最小可表示值的值,具体取决于哪个值最接近。
-
'wrap'
— 溢出换行到可表示值的范围。更换范围。超出动态范围的浮点数溢出到
±Inf
4)Format数据的格式,默认[16,15]。
对于fixed和ufixed是【数据全长,小数位长】
例如fixed,设置[8,6],数据全长8,小数位长6,符号位占1位,整数位占1位,所以能表示的数据范围是[-2,1.984375]。对应二进制'10000000' '01111111'。
以上四种参数按需求设置即可。
最后
以上就是曾经眼睛为你收集整理的MATLAB||量化quantize+quantizer量化数据data_in的方法量化数据并输出对应二进制数的方法quantizer函数中参数的具体设置的全部内容,希望文章能够帮你解决MATLAB||量化quantize+quantizer量化数据data_in的方法量化数据并输出对应二进制数的方法quantizer函数中参数的具体设置所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复