# coincidence
COIN 算法
函数库: TyPhasedArray
# 语法
x = coincidence(res, div, maxval)
x = coincidence(res, div, maxval, tol)
# 说明
x = coincidence(res, div, maxval) 返回小于或等于 maxval 的标量 x,并且与 res 中的每个余数在 div 中的对应除数全等。
mod.(x, div) = res
换句话说,用 x 除以 div 的每个元素,剩下的就是 res 的相应元素。示例
x = coincidence(res, div, maxval, tol) 也指定了容差。在实践中,可能没有一个值能完全满足 res 和 div 中的所有约束。
在这种情况下,coincidence 确定了一组近似满足约束条件的候选值,并且在以候选值的中位数为中心的宽度为 2×tol 的区间内。然后,该函数将中位数返回为 x。
# 示例
COIN 算法
找出一个小于 1000 的数,当除以 19 时,其余数约为 12,除以 20.4 时,其余数约为 13.1,除以 11 时,其余数约为 6.1。
没有一个数字能完全满足约束条件,所以指定公差为 1。
using TyPhasedArray
rems = [12 13.1 6.1]
divs = [19 20.4 11]
tol = 1
x = coincidence(rems, divs, 1000, tol)
x = 809.1
验证真正的余数是否在指定的公差范围内。
tr = x .- floor.(x ./ divs) .* divs
tr = 1×3 Matrix{Float64}:
11.1 13.5 6.1
重复计算,但现在指定公差为 3,满足约束条件的数量随着公差的增加而减少。
tol = 3
x = coincidence(rems, divs, 1000, tol)
x = 31.0
tr = x .- floor.(x ./ divs) .* divs
x = 1×3 Matrix{Float64}:
12.0 10.6 9.0
将公差增加到 6。该公差必须小于最小的指定余数。
tol = 6
x = coincidence(rems, divs, 1000, tol)
x = 12.0
tr = x .- floor.(x ./ divs) .* divs
x = 1×3 Matrix{Float64}:
12.0 12.0 1.0
最大距离交错 PRF 雷达
在一个交错脉冲重复频率(PRF)雷达系统中,第一 PRF 对应 70 个距离单元,第二 PRF 对应 85 个距离单元。
在第一 PRF 的第 47 单元和第二 PRF 的第 12 单元检测到目标。假设每个距离单元是 50 米,从这两次测量中计算出目标距离。假设最远的目标可能在 50 公里以外。
using TyPhasedArray
idx = coincidence([47 12], [70 85], 50e3 / 50)
r = 50 * idx
r = 30350.0
# 输入参数
res - 余数数组非负的行向量
余数数组,指定为非负的行向量。 res 必须具有与 div 相同的元素数量。
div - 除数数组正的行向量
除数数组,指定为正的行向量。 div 必须有与 res 相同数量的元素。
maxval - 上限正标量
上限,指定为一个正标量。
tol - 容差0(默认)| 非负标量
容差,指定为一个非负标量。tol 必须小于 res 的最小元素。
# 输出参数
x - 共轭值标量
共轭值,以标量形式返回。