N步相移算法的推导

相机采集的N步相移图案可以表示为
I n = a + b cos ⁡ ( φ + Δ φ n ) = a + b cos ⁡ φ cos ⁡ Δ φ n − b sin ⁡ φ sin ⁡ Δ φ n \begin{equation} \begin{split} I_n &=a+b \cos(\varphi+\Delta\varphi_n)\\ &=a+b\cos\varphi\cos\Delta\varphi_n-b\sin\varphi\sin\Delta\varphi_n \end{split} \end{equation} In=a+bcos(φ+Δφn)=a+bcosφcosΔφnbsinφsinΔφn
b cos ⁡ φ b\cos\varphi bcosφ记作 c c c,将 b sin ⁡ φ b\sin\varphi bsinφ记作 s s s,那么
I n = a + c cos ⁡ Δ φ n − s sin ⁡ Δ φ n \begin{equation} I_n=a+c\cos\Delta\varphi_n-s\sin\Delta\varphi_n \end{equation} In=a+ccosΔφnssinΔφn
我们需要从N个公式(2)中求取未知量 a , c a,c a,c s s s,很自然地采用最小二乘法求解,最优化以下偏差:
ε = ∑ n = 1 N ( I n − ( a + c cos ⁡ Δ φ n − s sin ⁡ Δ φ n ) ) 2 \begin{equation} \varepsilon=\sum_{n=1}^N \big(I_n-(a+c\cos\Delta\varphi_n-s\sin\Delta\varphi_n)\big)^2 \end{equation} ε=n=1N(In(a+ccosΔφnssinΔφn))2
由偏导 ∂ ε ∂ a = 0 \frac{\partial\varepsilon}{\partial a}=0 aε=0可得
∑ n = 1 N I n = a N + c ∑ n = 1 N cos ⁡ Δ φ n − s ∑ n = 1 N sin ⁡ Δ φ n \begin{equation} \sum_{n=1}^{N}I_n=aN+c\sum_{n=1}^{N}\cos\Delta\varphi_n-s\sum_{n=1}^{N}\sin\Delta\varphi_n \end{equation} n=1NIn=aN+cn=1NcosΔφnsn=1NsinΔφn
由偏导 ∂ ε ∂ c = 0 \frac{\partial\varepsilon}{\partial c}=0 cε=0可得
∑ n = 1 N I n cos ⁡ Δ φ n = a ∑ n = 1 N cos ⁡ Δ φ n + c ∑ n = 1 N cos ⁡ 2 Δ φ n − s ∑ n = 1 N sin ⁡ Δ φ n cos ⁡ Δ φ n \begin{equation} \sum_{n=1}^{N}I_n\cos\Delta\varphi_n=a\sum_{n=1}^{N}\cos\Delta\varphi_n+c\sum_{n=1}^{N}\cos^2\Delta\varphi_n-s\sum_{n=1}^{N}\sin\Delta\varphi_n\cos\Delta\varphi_n \end{equation} n=1NIncosΔφn=an=1NcosΔφn+cn=1Ncos2Δφnsn=1NsinΔφncosΔφn
由偏导 ∂ ε ∂ s = 0 \frac{\partial\varepsilon}{\partial s}=0 sε=0可得
∑ n = 1 N I n sin ⁡ Δ φ n = a ∑ n = 1 N sin ⁡ Δ φ n + c ∑ n = 1 N sin ⁡ Δ φ n cos ⁡ Δ φ n − s ∑ n = 1 N sin ⁡ 2 Δ φ n \begin{equation} \sum_{n=1}^{N}I_n\sin\Delta\varphi_n=a\sum_{n=1}^{N}\sin\Delta\varphi_n+c\sum_{n=1}^{N}\sin\Delta\varphi_n\cos\Delta\varphi_n-s\sum_{n=1}^{N}\sin^2\Delta\varphi_n \end{equation} n=1NInsinΔφn=an=1NsinΔφn+cn=1NsinΔφncosΔφnsn=1Nsin2Δφn
综合公式(4),公式(5)和公式(6),整理成矩阵形式,为
( N ∑ n = 1 N cos ⁡ Δ φ n − ∑ n = 1 N sin ⁡ Δ φ n ∑ n = 1 N cos ⁡ Δ φ n ∑ n = 1 N cos ⁡ 2 Δ φ n − ∑ n = 1 N sin ⁡ Δ φ n cos ⁡ Δ φ n ∑ n = 1 N sin ⁡ Δ φ n ∑ n = 1 N sin ⁡ Δ φ n cos ⁡ Δ φ n − ∑ n = 1 N sin ⁡ 2 Δ φ n ) ( a c s ) = ( ∑ n = 1 N I n ∑ n = 1 N I n cos ⁡ Δ φ n ∑ n = 1 N I n sin ⁡ Δ φ n ) \begin{equation} \begin{pmatrix}N&\sum_{n=1}^{N}\cos\Delta\varphi_n&-\sum_{n=1}^{N}\sin\Delta\varphi_n & \\\sum_{n=1}^{N}\cos\Delta\varphi_n & \sum_{n=1}^{N}\cos^2\Delta\varphi_n & -\sum_{n=1}^{N}\sin\Delta\varphi_n\cos\Delta\varphi_n \\ \sum_{n=1}^{N}\sin\Delta\varphi_n & \sum_{n=1}^{N}\sin\Delta\varphi_n\cos\Delta\varphi_n & -\sum_{n=1}^{N}\sin^2\Delta\varphi_n \end{pmatrix}\begin{pmatrix}a\\c\\s\end{pmatrix}=\begin{pmatrix}\sum_{n=1}^{N}I_n\\\sum_{n=1}^{N}I_n\cos\Delta\varphi_n\\\sum_{n=1}^{N}I_n\sin\Delta\varphi_n\end{pmatrix} \end{equation} Nn=1NcosΔφnn=1NsinΔφnn=1NcosΔφnn=1Ncos2Δφnn=1NsinΔφncosΔφnn=1NsinΔφnn=1NsinΔφncosΔφnn=1Nsin2Δφn acs = n=1NInn=1NIncosΔφnn=1NInsinΔφn
由于 ∑ n = 1 N cos ⁡ Δ φ n = 0 \sum_{n=1}^{N}\cos\Delta\varphi_n=0 n=1NcosΔφn=0, ∑ n = 1 N sin ⁡ Δ φ n = 0 \sum_{n=1}^{N}\sin\Delta\varphi_n=0 n=1NsinΔφn=0, ∑ n = 1 N sin ⁡ Δ φ n cos ⁡ Δ φ n = 0 \sum_{n=1}^{N}\sin\Delta\varphi_n\cos\Delta\varphi_n=0 n=1NsinΔφncosΔφn=0, ∑ n = 1 N cos ⁡ 2 Δ φ n = N 2 \sum_{n=1}^{N}\cos^2\Delta\varphi_n=\frac{N}{2} n=1Ncos2Δφn=2N, ∑ n = 1 N sin ⁡ 2 Δ φ n = N 2 \sum_{n=1}^{N}\sin^2\Delta\varphi_n=\frac{N}{2} n=1Nsin2Δφn=2N, 代入公式(7)中可得,
( N 0 0 0 N 2 0 0 0 − N 2 ) ( a c s ) = ( ∑ n = 1 N I n ∑ n = 1 N I n cos ⁡ Δ φ n ∑ n = 1 N I n sin ⁡ Δ φ n ) \begin{equation} \begin{pmatrix}N&0&0 \\0&\frac{N}{2}&0 \\ 0&0&-\frac{N}{2}\end{pmatrix}\begin{pmatrix}a\\c\\s\end{pmatrix}=\begin{pmatrix}\sum_{n=1}^{N}I_n\\\sum_{n=1}^{N}I_n\cos\Delta\varphi_n\\\sum_{n=1}^{N}I_n\sin\Delta\varphi_n\end{pmatrix} \end{equation} N0002N0002N acs = n=1NInn=1NIncosΔφnn=1NInsinΔφn
此时,易得
a = 1 N ∑ n = 1 N I n c = 2 N ∑ n = 1 N I n cos ⁡ Δ φ n s = − 2 N ∑ n = 1 N I n sin ⁡ Δ φ n \begin{equation} \begin{split} a&=\frac1N\sum_{n=1}^{N}I_n\\ c&=\frac2N\sum_{n=1}^{N}I_n\cos\Delta\varphi_n\\ s&=-\frac2N\sum_{n=1}^{N}I_n\sin\Delta\varphi_n \end{split} \end{equation} acs=N1n=1NIn=N2n=1NIncosΔφn=N2n=1NInsinΔφn
由于 b cos ⁡ φ = c b\cos\varphi=c bcosφ=c, b sin ⁡ φ = s b\sin\varphi=s bsinφ=s,可得
tan ⁡ φ = − ∑ n = 1 N I n sin ⁡ Δ φ n ∑ n = 1 N I n cos ⁡ Δ φ n b = 2 N ( ∑ n = 1 N I n sin ⁡ Δ φ n ) 2 + ( ∑ n = 1 N I n cos ⁡ Δ φ n ) 2 \begin{equation} \begin{split} \tan\varphi&=-\frac{\sum_{n=1}^{N}I_n\sin\Delta\varphi_n}{\sum_{n=1}^{N}I_n\cos\Delta\varphi_n}\\ b&=\frac2N\sqrt{(\sum_{n=1}^{N}I_n\sin\Delta\varphi_n)^2+(\sum_{n=1}^{N}I_n\cos\Delta\varphi_n)^2} \end{split} \end{equation} tanφb=n=1NIncosΔφnn=1NInsinΔφn=N2(n=1NInsinΔφn)2+(n=1NIncosΔφn)2
推导完毕。

  • 1
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值