2026a

# 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 - 共轭值
标量

共轭值,以标量形式返回。