matlab代码功能的量化
62(30天)
显示旧的评论
我得到一个量化函数(matlab代码)但我困惑在一些地方,请帮助....(PS: y是一个信号(1 - 1)和12位用于数字转换)
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
函数[symbols_quant] =量子化(y)
b = 12;
q = 2 / (2 ^ b);
为i = 1:长度(y)
symbols_quant (i) = max (min(圆(y (i) * 2 ^ (b - 1)) / (2 ^ (b - 1)))‘(y (i)) * q / 2, 1), 1);
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
问题1:为什么我们应该用样品,y (i),通过2 ^ (b - 1),然后一轮量化值吗?但没有直接轮……背后的原理是什么?
非常感谢如果你能给我一个手。
接受的答案
沃尔特·罗伯森
2013年3月13日
考虑很多,比如3/8。如果你直接轮得到0;乘以2 ^ 2(4),你仍然会得到0。但是如果你3/8乘以2 ^ 2(4),然后一轮你会得到一轮(3/2)= 2。显然相乘之前舍入的区别。
请记住唯一可用的舍入操作是圆的整数。没有功能转到最近的1/4或1/10(例如)。
你将使用的原则是相同的四舍五入到小数点后一定数量的。例如,3.141到1小数位,31.41乘以10,再除以10轮得到31日3.1
更多的答案(3)
Azzi Abdelmalek
2013年3月13日
函数[symbols_quant] =量子化(y)
b = 12
q = 2 / (2 ^ b - 1)
symbols_quant =圆(y / q) * q
Azzi Abdelmalek
2013年3月13日
编辑:Azzi Abdelmalek
2013年3月13日
一种真正的ADC是如何工作的
%值从0到10
n = 12
q = 10 / (2 ^ n - 1)
max_val =算
u = 6.5555%的例子
位= 0 (1,n)
为k = 1: n
如果u > max_val
(k) = 1
u = u-max_val
结束
max_val = max_val / 2
结束
disp(位)%保存输入的位。
quantized_value =总和(。* 2 ^ (n - 1: 1:0) *问)