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
4评论
fdsa
fdsa 2013年3月15日
不知道为什么? ? ?
谢谢你!

登录置评。

更多的答案(3)

Azzi Abdelmalek
Azzi Abdelmalek 2013年3月13日
函数[symbols_quant] =量子化(y)
b = 12
q = 2 / (2 ^ b - 1)
symbols_quant =圆(y / q) * q
3评论
fdsa
fdsa 2013年3月13日
得到它!太赫兹! !

登录置评。


Azzi Abdelmalek
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) *问)
2的评论
fdsa
fdsa 2013年3月15日
一个问题:在代码中,为什么我们需要表达:‘(y (i)) * q / 2 ?我缺少知识量化吗?
我想把两个量化之间的中值水平但为什么符号“-”而不是“+”.....吗?
谢谢! !

登录置评。


fdsa
fdsa 2013年3月15日
一个问题:在代码中,为什么我们需要表达:‘(y (i)) * q / 2 ?我缺少知识量化吗?
我想把两个量化之间的中值水平但为什么符号“-”而不是“+”.....吗?
谢谢! !