s******e 发帖数: 2181 | 1 我有一个信号是相位,它的范围是从-pi到+pi
如何让计算机知道-pi和pi其实是一回事,差距是零,而不是2pi
换句话说 -pi+epsilo 和 pi-epsilo 差距是很小的2epsilo(这里epsilo是一个小正数
),差别并不大。
有没有什么函数我可以用,我觉得可能是一些三角函数的组合。谢谢 |
a*****g 发帖数: 7 | 2 abs(sin(x)-sin(y)) < eps |
s******e 发帖数: 2181 | 3 感谢您的回复
我的输入只有一个,并不是两个x和y
我的意思是指把-pi到pi这个域投射到另一个域,使得如果输入是一个略大于-pi的角,
那跟输入为一个略小于+pi的角在新的域中它们的映射相差很小,还要满足相位相差越
大,在新的域里面差别也更大
但简单的像cos(alpha)还不行,因为pi/2和-pi/2相位刚好相反,是最大的pi,但他
们的cos值一样。
【在 a*****g 的大作中提到】 : abs(sin(x)-sin(y)) < eps
|
T*******x 发帖数: 8565 | 4 取大于2pi整数倍的部分,我记得军版有人说过,这样不行吗?不过这样取不是一个连
续函数,所以也写不成三角函数组合的形式。
【在 s******e 的大作中提到】 : 感谢您的回复 : 我的输入只有一个,并不是两个x和y : 我的意思是指把-pi到pi这个域投射到另一个域,使得如果输入是一个略大于-pi的角, : 那跟输入为一个略小于+pi的角在新的域中它们的映射相差很小,还要满足相位相差越 : 大,在新的域里面差别也更大 : 但简单的像cos(alpha)还不行,因为pi/2和-pi/2相位刚好相反,是最大的pi,但他 : 们的cos值一样。
|
a*****g 发帖数: 7 | 5 没看明白你的问题。。。相位操作无非两种:
1)modulus,把任意相位值折叠到-pi, pi之间:modulus(x,2*pi)-pi
2)unwrap,把一组在-pi, pi之间的相位值展开成连续单调递增或单调递减的值
你看你要的是哪一种?
【在 s******e 的大作中提到】 : 感谢您的回复 : 我的输入只有一个,并不是两个x和y : 我的意思是指把-pi到pi这个域投射到另一个域,使得如果输入是一个略大于-pi的角, : 那跟输入为一个略小于+pi的角在新的域中它们的映射相差很小,还要满足相位相差越 : 大,在新的域里面差别也更大 : 但简单的像cos(alpha)还不行,因为pi/2和-pi/2相位刚好相反,是最大的pi,但他 : 们的cos值一样。
|
s******e 发帖数: 2181 | 6 接收到的信号已经折叠在-pi到+pi之间了,事实上对于远距离通信而言,根本不知道信
号被折叠了多少个2pi,只知道最终的在-pi到+pi这个范围里面的结果
我也觉得挺苛刻,又要展现递增的一面,又要展现两端的连接性
【在 a*****g 的大作中提到】 : 没看明白你的问题。。。相位操作无非两种: : 1)modulus,把任意相位值折叠到-pi, pi之间:modulus(x,2*pi)-pi : 2)unwrap,把一组在-pi, pi之间的相位值展开成连续单调递增或单调递减的值 : 你看你要的是哪一种?
|
s******e 发帖数: 2181 | 7 感谢帮忙出主意
已经都在-pi到pi区间内了,不存在大于pi的情况
【在 T*******x 的大作中提到】 : 取大于2pi整数倍的部分,我记得军版有人说过,这样不行吗?不过这样取不是一个连 : 续函数,所以也写不成三角函数组合的形式。
|
T*******x 发帖数: 8565 | 8 嗯。你这是圆上的函数,可以考虑真的映射到单位圆上,一个相位映射为两个数,x和y
,在单位圆上。
【在 s******e 的大作中提到】 : 感谢帮忙出主意 : 已经都在-pi到pi区间内了,不存在大于pi的情况
|
a*****g 发帖数: 7 | 9 这样行吗?
f(x) = modulus(x+pi, 2*pi-eps) - pi
so that, f(pi-eps) == f(-pi)
【在 s******e 的大作中提到】 : 接收到的信号已经折叠在-pi到+pi之间了,事实上对于远距离通信而言,根本不知道信 : 号被折叠了多少个2pi,只知道最终的在-pi到+pi这个范围里面的结果 : 我也觉得挺苛刻,又要展现递增的一面,又要展现两端的连接性
|