Patent ID: 8755470

Claim:
A non-transitory memory medium storing program instructions, wherein the program instructions, if executed by a processor, cause the processor to: receive samples of a first signal; compute values of a cost function J over a two-dimensional (2D) grid that covers a portion of a 2D angle-frequency space, wherein said computing includes computing a cost function value J(θ,ω) for each point (θ,ω) in the 2D grid, wherein, for each point (θ,ω) in the 2D grid, said computing includes: generating samples of a modified signal, wherein the modified signal is related to the first signal by a phase adjustment of angle θ and a frequency adjustment of frequency ω; performing N iterations of the K-means clustering algorithm on the samples of the modified signal to determine a partition of the samples into K clusters and to determine K mean positions corresponding to the K clusters, wherein N is a positive integer, wherein K is an integer greater than one; for each of the K clusters, computing a corresponding sum of distance measures over the cluster, wherein the distance measures are relative to the mean position of the cluster; adding the sums to obtain the cost function value J(θ,ω); determine a point (θ e ,ω e ) in the 2D angle-frequency space that minimizes the cost function J.