Epipolar a personal journal

连续白噪音和布朗噪音的离散模拟

为了生成模拟实验数据,需要用到白噪音和布朗噪音。连续白噪音 $u(t)$ 通常定义为满足如下条件的随机信号:

即任意时刻的信号的期望为 0 ,方差为 $\sigma_u^2\delta(\tau)$ ,且不同时刻信号互相独立。$\delta$ 是 Dirac 函数,即单位冲击响应。

设 $u_i = u(t_0+i\Delta t) = u(t_i)$ 为离散化后的信号,那么 $u_i$ 对应于 $\Delta t$ 时间窗内 $u(t)$ 的均值,有

因此,在用离散序列模拟时,应使用均值为 0 ,方差为 $\sigma_u^2/\Delta t$ 的高斯随机数产生采样。

布朗噪音 $v(t)$ 可以定义为白噪音的积分:

以类似方式离散化后可知 $\Delta v_i = v_i - v_{i-1} = \int_0^{\Delta t}u(t_{i-1}+\tau)d\tau$ 。于是 $E[ \Delta v_i^2 ] = \sigma_u^2\Delta t$ 。

所以离散化后的差分方程为 $v_i = v_{i-1} + \Delta v_i$ ,其中 $ \Delta v_i \sim N(0, \sigma_u^2 \Delta t)$ 。

生活的每个角落都有高斯分布

不想好好做游戏,那就不要做了

如今的游戏,BUG一大堆就拿出来卖钱。

这样也就算了,内容不完整,等于买了一半儿。事后发个DLC,也就是下一半儿,再卖一笔……

我凭什么要给你们这种beta产品掏钱?

由平面引申出的射影变换

一个相机放在世界坐标系原点,相机坐标系与世界坐标系重合。空间中一个平面,这个平面在世界坐标系下的法线是 $n$ ,到世界坐标系原点距离为 $d$ 。平面上有一些点 $P_i$ ,我们可知 $\frac{1}{d}n^TP_i = 1$。

现在来了一个新相机,世界坐标系中的点到新相机坐标系中坐标的变换为 $Q_i = RP_i+T$ 。把上面的 1 乘到 $T$ 上并不影响这个式子的结果,但是我们将其转换成了一个关于 $P_i$ 的齐次变换,即

令 $H = R+\frac1dTn^T$ ,这个 $H$ 便给出了平面上的点在前后两个相机中的射影坐标对应的射影变换。

如果进一步令 $t = \frac1dT$,$H = R+tn^T$ ,式中 $\|n\|=1$ 具有两个自由度,$R$ 具有三个自由度,$t$ 具有三个自由度,由此得到 $H$ 的自由度为 3+3+2 = 8 。这个参数化的优点在于其几何意义明确,适合在进一步优化的时候使用。

记一个低级错误

相当一段时间里我都没有使用过 C++ OOP 的那一部分特性了。最近,在写的一个程序里出现了内存泄漏,一度百思不得其解:我没有使用需要人为释放的资源呀? 后来发现是用了一个继承类,但基类的析构函数忘记了虚化……