由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
EE版 - 怎样实现这个线性转换的算法
相关主题
关于VLSI设计中,各种层次的并行的概念想看mimo的解码方面的东西,数学方面怎么提高?
how to compute binomial distribution数字天线的可能性。
菜鸟请教用MICROCHIP DSPIC的一个FIRMWARE BUG请问linux里如果批量的把ps转换成pdf?
Re: 如何将*。bmp转换成*。ps文件?问个运放的问题
请教把二进制数字信号转换成对应端口TTL信号的IC chipRF系统的线性
转专业学EE,怎么补数学linear system analysis 对于 EE 各个方向的重要性
短光脉冲经过1/4,半波片和线性起偏器后,偏振模式色散有多大?问一下芝加哥地区EE Fresh PhD 薪水范围
有没有好的线性电路实验书?问个线性卷积的问题
相关话题的讨论汇总
话题: 范围话题: 整数话题: 算法话题: 16话题: 不能
进入EE版参与讨论
1 (共1页)
a****l
发帖数: 8211
1
算法的原理很简单,输入x,输出y.x的范围(0-1000)的整数,y的范围是(0-1500)的整数,
将x线性的按比例关系转换成y,也就是y=1.5x,小数点后的舍入方法随便(就是说y=2.5的
话算2或者3都可以)
现在的关键是,x是一个16位的整数(unsigned int, 16bits),y也是一个16位的整数,要
求是计算过程中不能用到32位的运算,就是说不能把x,y转换成32位算好再转换回来,这
该怎么计算?有谁知道这个怎么办吗?显然,查表的方法也是不允许的(内存的占用必须是
固定的,不能随范围变化而变化)
另外的一个要求是,y的范围是可以变的,所以不能用固定的乘1.5的算法,y应该可以是任
何一个16位整数可表达的范围.
w*******d
发帖数: 3714
2
y = x + x>>1 ?
p*****n
发帖数: 368
3
别忘了运算顺序

【在 w*******d 的大作中提到】
: y = x + x>>1 ?
p***e
发帖数: 472
4

将x线性的按比例关系转换成y,也就是y=1.5x,小数点后的舍入方法随便(就是说y=2.5的
话算2或者3都可以)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
要求是计算过程中不能用到32位的运算,就是说不能把x,y转换成32位算好再转换回来,
这该怎么计算?有谁知道这个怎么办吗?显然,查表的方法也是不允许的(内存的占用必须
是固定的,不能随范围变化而变化)
另外的一个要求是,y的范围是可以变的,所以不能用固定的乘1.5的算法,y应该可以是任
何一个16位整数可表达的范围.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
What do you mean? Are those two statements each other in controversy?

【在 a****l 的大作中提到】
: 算法的原理很简单,输入x,输出y.x的范围(0-1000)的整数,y的范围是(0-1500)的整数,
: 将x线性的按比例关系转换成y,也就是y=1.5x,小数点后的舍入方法随便(就是说y=2.5的
: 话算2或者3都可以)
: 现在的关键是,x是一个16位的整数(unsigned int, 16bits),y也是一个16位的整数,要
: 求是计算过程中不能用到32位的运算,就是说不能把x,y转换成32位算好再转换回来,这
: 该怎么计算?有谁知道这个怎么办吗?显然,查表的方法也是不允许的(内存的占用必须是
: 固定的,不能随范围变化而变化)
: 另外的一个要求是,y的范围是可以变的,所以不能用固定的乘1.5的算法,y应该可以是任
: 何一个16位整数可表达的范围.

l*****x
发帖数: 3431
5
问题看起来是用16位存储器实现Y=k*X,k是常数。
把k展开为最接近的二进制数列,然后用willywufd提供的移位累加方法,大数加小数,
如果结果出现msb 1->0,则溢出报错。
请拍砖

【在 a****l 的大作中提到】
: 算法的原理很简单,输入x,输出y.x的范围(0-1000)的整数,y的范围是(0-1500)的整数,
: 将x线性的按比例关系转换成y,也就是y=1.5x,小数点后的舍入方法随便(就是说y=2.5的
: 话算2或者3都可以)
: 现在的关键是,x是一个16位的整数(unsigned int, 16bits),y也是一个16位的整数,要
: 求是计算过程中不能用到32位的运算,就是说不能把x,y转换成32位算好再转换回来,这
: 该怎么计算?有谁知道这个怎么办吗?显然,查表的方法也是不允许的(内存的占用必须是
: 固定的,不能随范围变化而变化)
: 另外的一个要求是,y的范围是可以变的,所以不能用固定的乘1.5的算法,y应该可以是任
: 何一个16位整数可表达的范围.

z*****n
发帖数: 7639
6
y = (x + x<<1)>>1;

【在 a****l 的大作中提到】
: 算法的原理很简单,输入x,输出y.x的范围(0-1000)的整数,y的范围是(0-1500)的整数,
: 将x线性的按比例关系转换成y,也就是y=1.5x,小数点后的舍入方法随便(就是说y=2.5的
: 话算2或者3都可以)
: 现在的关键是,x是一个16位的整数(unsigned int, 16bits),y也是一个16位的整数,要
: 求是计算过程中不能用到32位的运算,就是说不能把x,y转换成32位算好再转换回来,这
: 该怎么计算?有谁知道这个怎么办吗?显然,查表的方法也是不允许的(内存的占用必须是
: 固定的,不能随范围变化而变化)
: 另外的一个要求是,y的范围是可以变的,所以不能用固定的乘1.5的算法,y应该可以是任
: 何一个16位整数可表达的范围.

p*f
发帖数: 982
7
如果我理解得不错的话,应该是:
y=(65535)/[max y- min y]*x.如果你的范围变化不是很频繁的话,查表是可以的,因为
表的大小取决于x的范围,而不是y的范围。
p*f
发帖数: 982
8
还有个办法是:用一个除法器,计算前面的那个系数(得到16位结果),然后用一个16
位乘16位的乘法器,只取结果的高16位。
u****u
发帖数: 229
9
很抱歉,你似乎没有理解原始问题的难点在于哪里.你说的根本就是最原始的做法,能用
这个方法就根本不用问这个问题了.

16

【在 p*f 的大作中提到】
: 还有个办法是:用一个除法器,计算前面的那个系数(得到16位结果),然后用一个16
: 位乘16位的乘法器,只取结果的高16位。

z*****n
发帖数: 7639
10
前面不是有人给出了solution吗?
y = x + (x>>1); 或者 y=(x+x<<1)>>1;
就可以解决问题啊。
我写了个程序输入了10个数验证了下:
32 48
51 76
51 76
92 138
54 81
90 135
13 19
69 103
20 30
6 9

【在 u****u 的大作中提到】
: 很抱歉,你似乎没有理解原始问题的难点在于哪里.你说的根本就是最原始的做法,能用
: 这个方法就根本不用问这个问题了.
:
: 16

p*f
发帖数: 982
11

你们注意到这句话没有:
另外的一个要求是,y的范围是可以变的,所以不能用固定的乘1.5的算法,
你们所用得solution都是固定乘1.5。

【在 z*****n 的大作中提到】
: 前面不是有人给出了solution吗?
: y = x + (x>>1); 或者 y=(x+x<<1)>>1;
: 就可以解决问题啊。
: 我写了个程序输入了10个数验证了下:
: 32 48
: 51 76
: 51 76
: 92 138
: 54 81
: 90 135

z*****n
发帖数: 7639
12
啥叫y的范围是可变的?楼主说了x的范围是在1500以内,
y的范围也在一个integer的最大值以内。

【在 p*f 的大作中提到】
:
: 你们注意到这句话没有:
: 另外的一个要求是,y的范围是可以变的,所以不能用固定的乘1.5的算法,
: 你们所用得solution都是固定乘1.5。

a****l
发帖数: 8211
13
y的范围可变的意思就是说y可能是(0-1500)或者说(0-2512)或者说(0-3507),反正都是
在16位的范围内的数.所以不是固定的乘1.5的算法.不过这个问题已经解决了,就是把1.
5的算法扩展一下用两步就算出来的.计算的速度是原始算法的4倍.

【在 z*****n 的大作中提到】
: 啥叫y的范围是可变的?楼主说了x的范围是在1500以内,
: y的范围也在一个integer的最大值以内。

1 (共1页)
进入EE版参与讨论
相关主题
问个线性卷积的问题请教把二进制数字信号转换成对应端口TTL信号的IC chip
问个多级放大器线性度的问题转专业学EE,怎么补数学
求推荐线性控制的书短光脉冲经过1/4,半波片和线性起偏器后,偏振模式色散有多大?
matlat的带界面的M文件能不能转换成单独运行的EXE文件?有没有好的线性电路实验书?
关于VLSI设计中,各种层次的并行的概念想看mimo的解码方面的东西,数学方面怎么提高?
how to compute binomial distribution数字天线的可能性。
菜鸟请教用MICROCHIP DSPIC的一个FIRMWARE BUG请问linux里如果批量的把ps转换成pdf?
Re: 如何将*。bmp转换成*。ps文件?问个运放的问题
相关话题的讨论汇总
话题: 范围话题: 整数话题: 算法话题: 16话题: 不能