Acoustic positioning method

EP4728296A1Pending Publication Date: 2026-04-22SONAIR AS
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
EP · EP
Patent Type
Applications
Current Assignee / Owner
SONAIR AS
Filing Date
2025-03-20
Publication Date
2026-04-22

AI Technical Summary

Technical Problem

Conventional acoustic positioning methods suffer from limited angular resolution when determining the positions of surfaces in an environment.

Method used

An iterative acoustic positioning method that involves transmitting an acoustic signal, receiving reflections, applying receive-beamforming processing, and iteratively processing beam response values to determine surface positions, with a threshold-based iteration termination.

Benefits of technology

Improves spatial resolution of surface positions by efficiently processing beam response values, suitable for resource-constrained devices like battery-powered mobile devices.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure EP2025057683_25092025_PF_FP_ABST
    Figure EP2025057683_25092025_PF_FP_ABST
Patent Text Reader

Abstract

A method for determining positions of a plurality of surfaces (603, 605) in an environment (600) comprises transmitting acoustic signals (601) into the environment and receiving reflections (602a, 602b) of the acoustic signals at an array (101) of receive elements. Receive-beamforming processing is applied to electrical signals output by the receive elements to determine beam response values, each associated with a beam having a respective beam angle. In an iterative process, the beam response values are processed to generate a model of a point source located within the beam of greatest intensity, and to generate a candidate signal representative of an acoustic signal received at the receive elements from the point source. The electrical signals are then processed to subtract the candidate signal to generate a remainder signal, and when the remainder signal is above a threshold level, a plurality of updated beam response values for the remainder signal are determined. The iterative process ceases when the remainder signal is below the threshold level. For each of the modelled point sources, a 2D or 3D position for a respective surface of the plurality of surfaces (603, 605) corresponding to a location of the point source is determined.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] ACOUSTIC POSITIONING METHOD

[0002] BACKGROUND OF THE INVENTION

[0003] This disclosure relates generally to methods for determining the positions of surfaces in an environment using reflected signals.

[0004] Acoustic positioning systems may be used to determine the positions of surfaces in an environment, e.g. the positions of walls of a room or other enclosure, or the positions of objects therein. Acoustic positioning systems may provide significant advantages over optical imaging systems for determining the position of such surfaces. For example, acoustic positioning systems are less susceptible to line-of- sight problems, and are able to function in dark environments. They can also operate with much lower processing requirements, due to the much slower speed of acoustic signals than optical signals.

[0005] One method for determining the position of surfaces in an environment using acoustic signals is to transmit an acoustic signal into the environment using an acoustic transmitter, and to analyse reflections of the transmitted acoustic signal received at a corresponding receiver to determine surface positions.

[0006] While such echo-based acoustic positioning is known, the angular resolution achievable using conventional methods is somewhat limited. The present invention aims to provide acoustic positioning methods with improved spatial resolution of surfaces in the environment.

[0007] SUMMARY OF THE INVENTION

[0008] According to a first aspect of the invention, there is provided a method for determining positions of a plurality of surfaces in an environment, the method comprising: transmitting an acoustic signal into the environment; receiving reflections of the acoustic signal from the plurality of surfaces at a linear or 2D array of receive elements; sampling electrical signals output by the array of receive elements in response to the received reflections; applying receive-beamforming processing to the sampled electrical signals to determine a plurality of beam response values, wherein each beam response value is associated with a beam having a different respective 1 D or 2D beam angle; for each of a plurality of iterations: processing each beam response value of the beam response values to determine a respective intensity for the beam corresponding to the beam response value; identifying a greatest intensity of the determined intensities; processing the beam response value associated with the greatest intensity to generate a model of a point source located within the beam associated with the greatest intensity; using the model of the point source to generate a candidate signal representative of an acoustic signal received at the array of receive elements from the point source; processing the sampled electrical signals to subtract the candidate signal so as to generate a remainder signal; and

[0009] - when the remainder signal is above a threshold level, determining a plurality of updated beam response values for the remainder signal; ceasing iterating when the remainder signal is below the threshold level; and for each of the modelled point sources, determining a 2D or 3D position for a respective surface of the plurality of surfaces corresponding to a location of the point source.

[0010] According to a second aspect, there is provided an acoustic positioning system for determining positions of a plurality of surfaces in an environment, wherein the acoustic positioning system is configured to: transmit an acoustic signal into the environment; receive reflections of the acoustic signal from the plurality of surfaces at a linear or 2D array of receive elements; sample electrical signals output by the array of receive elements in response to the received reflections; apply receive-beamforming processing to the sampled electrical signals to determine a plurality of beam response values, wherein each beam response value is associated with a beam having a different respective 1 D or 2D beam angle; for each of a plurality of iterations: process each beam response value of the beam response values to determine a respective intensity for the beam corresponding to the beam response value; identify a greatest intensity of the determined intensities; process the beam response value associated with the greatest intensity to generate a model of a point source located within the beam associated with the greatest intensity; use the model of the point source to generate a candidate signal representative of an acoustic signal received at the array of receive elements from the point source; process the sampled electrical signals to subtract the candidate signal so as to generate a remainder signal; and

[0011] - when the remainder signal is above a threshold level, determine a plurality of updated beam response values for the remainder signal; cease iterating when the remainder signal is below the threshold level; and for each of the modelled point sources, determine a 2D or 3D position for a respective surface of the plurality of surfaces corresponding to a location of the point source.

[0012] Thus it will be seen that, in accordance with the invention, reflections of acoustic signals are sampled, beamformed, and iteratively processed to determine the positions of surfaces within an environment. The positions may be relative positions, e.g. relative to the array of receive elements. For each of a plurality of beams at different beam angles, an intensity is determined by processing the beamformed signal, and a candidate signal is generated representing an acoustic signals from a modelled point source within the beam for which the intensity is greatest (i.e. a hypothetical point source within the main lobe of the beam). The sampled electrical signals are processed to subtract the candidate signal to generate a remainder signal, for which updated beam response values are generated. The iterative process then repeats based on the updated beam response values until the remainder signal is below a threshold level, at which point the iterative process ends. For each point source modelled during the iterative process, it is determined that a surface is present in the environment at a position corresponding to the location of the modelled point source. In this way, the positions of surfaces in the environment are determined until a predetermined portion of the received signal has been accounted for (i.e. until the remainder signal is below a threshold level). Progressively considering the beams in order of intensity, from highest downwards, and processing the beam response values until the remainder signal reaches a threshold level, may provide high efficiency by avoiding the need to process beam response values for beams with low contributions to the received acoustic signal (e.g. below a noise floor). This may especially beneficial when, as in some embodiments, the method is performed on a resource-constrained device such as a battery-powered mobile device (e.g. a cell phone).

[0013] In some embodiments, the reflections of the acoustic signal received at the array may be sampled using an analogue-to-digital convertor (ADC) to convert the received signals from the analogue domain to the digital domain. The sampled signals may be quadrature signals (i.e. a complex IQ signal) comprising both amplitude and phase information.

[0014] In some embodiments, the method may further comprise downmixing the received signal to generate a critically sampled IQ signal prior to applying receivebeamforming processing. The critically sampled signal may comprise quadrature IQ values that preserve the phase information of the signal received at the array of receive elements.

[0015] In some embodiments, the receive elements of the array may each be comprised in a respective transceiver. In some such embodiments, the transmitter of the system may comprise the ultrasonic transmitter of one or more of the transceivers of the array. This may be advantageous over having a separate transmitter and receiver array in terms of reducing size and saving material costs. However, in some embodiments the transmitter may be a dedicated transmitter separate to the array of receive elements. The use of a separate transmitter may be advantageous as no switching electronics are required to switch between an element acting as both a receiver and a transmitter. In some embodiments, the array of receive elements comprises at least one regularly-spaced linear array having an element spacing, d, that is less than half of the primary wavelength of the transmitted acoustic signal. It will be understood that the term ‘primary wavelength’ refers to the central wavelength (e.g. the target wavelength) of the transmitted signal, which will comprise some spread of wavelengths around a central target wavelength in practical implementations.

[0016] In some embodiments, the array of receive elements may comprise a 2D array, wherein the 2D array comprises a first linear array and a second linear array that extend along perpendicular axes. It may comprise one or more further receive elements. The first linear array and the second linear array may each comprise a plurality of regularly-spaced receive elements with an element spacing, d, that is less than half of the primary wavelength of the transmitted acoustic signal. In some such embodiments, the array may be ‘L’-shaped or cross-shaped, e.g. comprising a first linear array and a second linear array that extend from a common point in perpendicular directions. The plurality of receive elements of the first and / or second linear array may comprise as few as three receive elements, or may comprise a greater number of receive elements, e.g. ten, fifty, or one hundred receive elements.

[0017] In some embodiments, the sampled electrical signals may be processed to remove the transmitted signal from the sampled electrical signals, such that the sampled signals represent an impulse response function of the acoustic environment. For example, in some embodiments, the transmitted acoustic signal may comprise a pulse-shaped (e.g. chirp) signal. The method may further comprise applying an initial deconvolution operation (e.g. a de-chirp) to the sampled signals prior to determining the beam response values. The initial deconvolution operation may comprise using a template of the pulse-shaped transmitted signal to apply the initial deconvolution operation to the sampled signal. This may be performed on the sampled signal as a whole prior to performing beamforming processing, or may be performed on each of the beamformed signals. By applying an initial deconvolution operation to the sampled signals, the transmitted signal may be identified in the sampled signal and removed, such that the signal from which beam response values are determined only comprises information relating to the reflected signal received at the array, and not the transmitted signal. In some embodiments, the receive-beamforming processing may comprise beamforming the received signal at a plurality of beam angles, e.g. at 10, 100, 1000 or more angles across the angular range measurable by the system. The beam angles may be spaced at uniform intervals. In some embodiments, the beam angles may be spaced at uniform intervals over angle, however in some alternative embodiments, the beam angles may be spaced uniformly over the sine of beam angle. In some embodiments, the number of beam angles for which beamforming processing is performed may be selected based at least in part on a desired angular precision of the surface position to be determined.

[0018] The receive-beamforming processing may comprise applying phase- or time-delay processing to the sampled electrical signals (e.g. IQ signals) according to the associated beamformed angles. The processed values may be averaged over time. Each beam response value may represent a respective amplitude and optionally a phase for the respective receive beam over a time window. Each beam response value may thus be a phasor with magnitude and phase. It may be stored as a complex number. In other embodiments, the receive-beamforming processing may be performed in frequency domain; it may comprise (1 D or 2D) FFT beamforming. This may be particularly efficient. In such embodiments, the beam response value may comprise a magnitude only. In embodiments in which the sampled electrical signals are processed to remove the transmitted signal from the sampled signal, the beam response value may represent a strength of the received acoustic signal from the beam angle associated with the beam response value.

[0019] In some embodiments, determining the intensity for the beam corresponding to each beam response value may comprise determining an in-phase power value for the beam response value associated with the respective beam, e.g. by calculating the magnitude of the real part of the beam response value.

[0020] In some embodiments, e.g. those in which the array is a 2D array, the method may be extended so as to allow the position of surfaces to be determined in two- dimensions. For example, the position of surfaces may be determined in terms of a first set of beam angles and a second set of beam angles. The first and second sets of beam angles may be perpendicular, however this is not required in all embodiments. This may be achieved by performing the method along two perpendicular planes, and combining the determined angular positions of the surface in each plane to determine a 2D position of the surface relative to the array.

[0021] In some embodiments, the method may therefore further comprise applying receive-beamforming processing to the sampled electrical signals to determine a plurality of beam response values along two perpendicular planes, e.g. a first plane and a second plane, to generate two sets of beam response values, wherein each set of beam response values is associated with a respective plane. Thus, in some embodiments, applying receive-beamforming processing may comprise determining beam response values for a first set of beam angles in a first plane and also determining beam response values for second set of beam angles in a second plane.

[0022] In some such embodiments, an intensity may be determined for each set of beam angles separately, and an intensity may be determined for a 2D beam angle based on the two sets of determined intensities. For example, an intensity may be determined for each beam angle of the first plane and an intensity may be separately determined for each beam angle of the second plane. An outer complex product of the intensity determined for each beam angle of the first plane with the intensity determined for each beam angle of the second plane may be calculated, and the 2D beam angle with the greatest intensity may be determined based on the complex product with the highest value. In some such embodiments, determining the intensity for each beam angle of the first plane and / or the second plane may comprise performing peak interpolation over the intensity values.

[0023] In some alternative embodiments however, an intensity may be determined for a 2D beam angle by processing the beam angles of the first and second sets of beam angles simultaneously. In some such embodiments, an intensity for a 2D beam angle may be determined by calculating the outer complex product of the beam response values for each of the beam angles of the first plane and each of the beam angles of the second plane. The 2D beam angle with the greatest intensity may then be determined based on the complex product with the highest value. In some such embodiments, a 2D peak fitting operation may be performed around the beam angle of maximum intensity when processing the beam response values to generate a model of a point source. This may allow the beam angle of the point source to be determined more accurately.

[0024] In some embodiments, the model of the point source may be defined by a beam angle and a complex magnitude value. The complex magnitude value of the modelled point source for the beam angle may initially be set based on the determined intensity for the beam angle. The beam angle of the modelled point source may initially be set based on an angle corresponding to the mid-point of the beam angle.

[0025] In some embodiments, the candidate signal generated in each iteration may be representative solely of an acoustic signal received at the array of receive elements from the point source modelled during the present iteration. The candidate signal in each iteration is thus representative of a different point source.

[0026] The number of iterations may thus correspond to the total number of modelled point sources. For example, the plurality of iterations may consist of two iterations where there are two modelled point sources, or may consist of three iterations where there are three modelled point sources.

[0027] Processing of the beam response values may be the same in each iteration, however this is not essential, and in some embodiments certain processing steps may be performed differently (e.g. with additional steps) in a subset of the iterations, e.g. only in a final iteration of the plurality of iterations.

[0028] In some embodiments, generating the candidate signal may comprise a step of refining the model of the point source in some or all of the iterations. For example, the step of refining may comprise updating the beam angle and / or complex magnitude value defining the point source. In some such embodiments, a model of a point source (e.g. the beam angle and / or complex magnitude values) may thus be refined in one or more iterations of the plurality of iterations. In some embodiments a model of a point source may be refined in each iteration of the plurality of iterations, or it may be refined within a subset of the plurality of iterations, e.g. only in a final iteration of the plurality of iterations. In some embodiments, one or more of the modelled point sources may be refined after the plurality of iterations is ceased, but before the 2D or 3D positions of respective surfaces corresponding to a location of the point sources are determined. In some such embodiments, refining the modelled point source may comprise updating the beam angle and / or complex magnitude value defining the point source.

[0029] In some embodiments, the plurality of iterations may be a fixed number of iterations (e.g. two or three iterations) and the method may further comprise performing a larger fixed number of iterations, e.g. three or four iterations, after the first plurality of iterations, before the 2D or 3D positions of respective surfaces corresponding to a location of the point sources are determined. This may be beneficial in situations where a smaller number of point sources is determined to be inadequate to sufficiently account for the received signal.

[0030] Processing the sampled electrical signals to subtract the candidate signal so as to generate a remainder signal may comprise determining beam response values for the candidate signal and subtracting the beam response values from the beam response values determined from the sampled signal (in the first iteration) or from the updated beam response values for the remainder signal (in the second and subsequent iterations).

[0031] Alternatively, in some embodiments the point source is modelled at the level of the sampled electrical signals, e.g. as sampled directly by an ADC. In other embodiments, the point source is modelled after down-sampling (e.g. after critical sampling and / or pulse decompression for removal of the transmitted signal), but before beam-forming. In some such embodiments the candidate signal may correspond to a modelled pre-beamformed (but optionally post-downmixing) signal and the remainder signal may be an updated pre-beamformed signal. Determining a plurality of updated beam response values for the remainder signal may comprise applying receive-beamforming processing to the remainder signal to determine the updated beam response values. Processing the sampled electrical signals to subtract the candidate signal so as to generate a remainder signal may thus comprise subtracting the modelled pre-beamformed signal from the sampled pre- beamformed signal (in the first iteration) or from the remainder signal (in the second and subsequent iterations).

[0032] However, in some embodiments the candidate signal generated in each iteration may be representative of an aggregate acoustic signal received at the array of receive elements from all of the point sources modelled in the present iteration and every preceding iteration. Processing the sampled electrical signals to subtract the candidate signal so as to generate a remainder signal may then comprise subtracting the candidate signal from the (original) sampled signal (optionally after downmixing) in each iteration.

[0033] In some embodiments, the method may further comprise performing non-linear fitting of the candidate signal. Non-linear fitting of the candidate signal may comprise fitting the candidate signal to the sampled electrical signal, or it may comprise determining beam response values for the candidate signal and fitting the beam response values for the candidate signal against the beam response values determined from the sampled electrical signal (in the first iteration) or from the updated beam response values for the remainder signal (in the second and subsequent iterations). In some embodiments, the beam angle and complex magnitude of the modelled point sources may be updated based on the results of the non-linear fitting. In some embodiments, performing non-linear fitting may comprise applying a Levenberg Marquardt algorithm.

[0034] In some embodiments, the threshold level may be a threshold signal level, e.g. corresponding to a predetermined fraction of the received acoustic signal. In some embodiments, the threshold signal level may correspond to between 0 and 10% of the total received signal, e.g. it may correspond to 5% of the total received signal. The threshold level may represent an environment that is substantially absent of surfaces from which reflections of an acoustic signal are generated. In some embodiments, the method may comprise ceasing iterating after a predetermined number of iterations (e.g. 1000 iterations) even if a predetermined threshold level is not reached.

[0035] In some embodiments, the remainder signal may be actively compared to the threshold level in each iteration, e.g. a difference between the remainder signal and the threshold level may be determined. Iterating may be ceased in response to determining that the remainder signal is below the threshold level. However, in other embodiments, no active comparison is made between the remainder signal and a threshold level and the method may comprise ceasing iterating after a predetermined number of iterations, e.g. three iterations, is reached. In such embodiments the final iteration may reduce the remainder signal below a threshold but the threshold need not be explicitly known.

[0036] In some embodiments, the method may be further extended to determine a distance to the surface from which the acoustic signal is reflected, e.g. to determine a range between the array and the surface. This may be achieved by measuring time-of-flight and / or employing range-gating. For example, the system may be configured to determine the time at which the reflected acoustic signals are received at the array of receive elements relative to the time at which the acoustic signal was transmitted into the environment. Based on this time, and the speed of sound in the environment (which may be estimated or measured), a range between the array and the surface may be determined.

[0037] By sampling the reflected signal received over each of a plurality of time windows, the received signals can be range-gated, such that the received signal in each time window is representative of reflections from surfaces within an associated range of distances from the array, by accounting for the speed of sound in the environment.

[0038] For example, the angular position of surfaces nearer to the array may be determined by processing the signal sampled during a first time window, and the angular position of surfaces further from the array may be determined by processing the signal sampled during a second time window, with a start time later than that used for the first time window. By processing the signal received during a plurality of time windows, the angular position of surfaces can be determined at a range of distances from the array. By combining the determined angular position(s) of the surface with the distance from the array, the position of the surface can be determined in two- or three-dimensions.

[0039] While the method described above relies on an iterative process to identify the position of surfaces in an environment by processing beamformed signals, the present inventors have recognised that, in other aspects, the position of one or more surfaces in an environment can advantageously be determined through deconvolution of beamformed signals if appropriate processing of the beamformed signals is performed.

[0040] Thus, according to a third aspect, there is provided a method for determining relative position of a surface in an environment, the method comprising: transmitting an acoustic signal into the environment; receiving a reflection of the acoustic signal from the surface at a linear or 2D array of receive elements; sampling electrical signals output by the array of receive elements in response to the received reflection; applying receive-beamforming processing to the sampled electrical signals to determine a plurality of beam response values, wherein each beam response value is associated with a beam having a different respective 1 D or 2D beam angle; determining a respective index value for each of the beam response values, wherein the index value is proportional to the sine of the respective beam angle for the beam response value; generating a deconvolved signal that is indexed proportionally to the sine of beam angle by using a template signal to apply a deconvolution operation to the plurality of indexed beam response values, wherein the template signal is indexed proportionally to the sine of beam angle, and wherein the template signal is representative of an acoustic signal received at the array from a point source located at a predetermined 1 D or 2D beam angle; and processing the deconvolved signal to determine at least an angular position of the surface relative to the array of receive elements.

[0041] According to a fourth aspect, there is provided an acoustic positioning system for determining relative position of a surface in an environment, wherein the acoustic positioning system is configured to: transmit an acoustic signal into the environment; receive a reflection of the acoustic signal from the surface at a linear or 2D array of receive elements; sample electrical signals output by the array of receive elements in response to the received reflection; apply receive-beamforming processing to the sampled electrical signals to determine a plurality of beam response values, wherein each beam response value is associated with a beam having a different respective 1 D or 2D beam angle; determine a respective index value for each of the beam response values, wherein the index value is proportional to the sine of the respective beam angle for the beam response value; generate a deconvolved signal that is indexed proportionally to the sine of beam angle by using a template signal to apply a deconvolution operation to the plurality of indexed beam response values, wherein the template signal is indexed proportionally to the sine of beam angle, and wherein the template signal is representative of an acoustic signal received at the array a point source located at a predetermined beam angle; and process the deconvolved signal to determine at least an angular position of the surface relative to the array of receive elements.

[0042] Thus it will be seen that, in accordance with the third and fourth aspects, receivebeamforming processing is applied to a sampled reflection of an acoustic signal received at the array of receive elements to determine beam response (e.g. amplitude) values for a plurality of 1 D or 2D beam angles. These beam response values are indexed proportionally to the sine of beam angle so as to allow a deconvolution operation to be usefully performed using a template signal that uses the same index. By indexing the beam response values proportionally to the sine of beam angle, a common template signal can be applied across all the beam response values regardless of the beam angle with which they are associated to determine the angular position of the surface in the environment relative to the array of receive elements. This is explained in greater detail below. This approach may, in some embodiments, be used to determine a relative position for each of a plurality of surfaces in the environment.

[0043] Any of the features that have been described above in relation to the first and second aspects may, wherever appropriate, be optional features of the third and fourth aspects, and vice versa.

[0044] The template signal may be stored in a memory of the system. The template signal may be generated during a calibration process. In some embodiments, the template signal may be generated by measuring a reflected signal from a reflector located at predetermined beam angle with respect to the array during a calibration process. Alternatively, in some embodiments, the template signal may be generated by measuring a signal transmitted by a dedicated transmitter separate to the positioning system. If a measured signal is used for calibration, the reflector or transmitter that generates the reflected signal is located at a sufficient distance from the array during calibration for a far-field approximation of the acoustic signal to be applied, e.g. such that the wave-fronts received at the array are uniform across the array. The signal measured during the calibration process may be stored in a memory for use in the position determination method disclosed herein. As a further alternative, in some embodiments the template signal may be a modelled response, e.g. it may be computationally generated. The generated signal may be stored in a memory for use in the position determination method disclosed herein.

[0045] The deconvolved signal may comprise a plurality of beam response values, each associated with a respective index value proportional to the sine of the beam angle. In some embodiments, processing the deconvolved signal may comprise determining a second index value for each beam response value of the deconvolved signal that is equal to beam angle. Processing may then be performed on the deconvolved signal that is indexed by beam angle to determine the angular position of the surface relative to the array. This processing may comprise performing peak analysis of the deconvolved signal indexed by beam angle.

[0046] By applying peak analysis to the deconvolved signal indexed by beam angle, it may be possible to identify the angular position of the surface at sub-sample resolution. In some embodiments, applying peak analysis may comprise using a peak finder algorithm to the deconvolved signal indexed by beam angle. It may be advantageous to use a peak finding algorithm requiring a minimum number of data points (e.g. three data points) as this may reduce the likelihood of overlapping peaks being present in the dataset to which the point finder algorithm is applied.

[0047] In some embodiments, a boundary condition is applied to the beamformed signals for surfaces located at the beam steering limits of the array (e.g. at ±TT / 2 in some embodiments), to ensure that the beam signal is periodic over the full angular range measurable by the system. While the method of the third and fourth aspects of the invention allows an angular position of the surface relative to the array to be determined, the method may be extended, in some embodiments, e.g. those in which the array is a 2D array, so as to allow a 2D position of the surface to be determined within a particular range, or a 3D position to be determined if time-of-flight information is used to determine a distance from the array. This may be achieved by performing the method along two perpendicular planes, and combining the determined angular positions for the surface in each plane to determine a 2D position of the surface relative to the array. Thus, in some embodiments, the method may further comprise applying beamforming processing to the sampled electrical signals to determine a plurality of beam response values in two perpendicular planes, e.g. to generate two sets of beam response values.

[0048] A respective index value may be determined for each set of beam response values that is proportional to the sine of the respective beam angle for the beam response value. A deconvolved signal may then be generated for each set of indexed beam response values (each deconvolved signal being associated with a respective plane), and the deconvolved signals may be processed to determine the angular position of the surface in each of the two planes. The position of the surface may thus be determined in two dimensions by combining these two angular positions.

[0049] In some embodiments, instead of performing a separate deconvolution for the signal measured in each plane, a single deconvolution step may be performed using a second template signal representative of the 2Dresponse of the array to an acoustic signal received at the array from a point source located at a predetermined beam angle on each plane. In such embodiments the beam response values determined by beamforming in each of the two perpendicular planes may be combined into a 2D array of beam response values and deconvolved with the second template signal to generate a 2D deconvolved signal. The 2D deconvolved signal may then be processed to determine the position of the surface in two- dimensions. Processing this signal may comprise performing second order polynomial fitting of the deconvolved signal to determine the position of the surface in two-dimensions. The acoustic positioning system may comprise one or more transmit elements (which may be the same as or distinct from the receive elements) and be configured to transmit the acoustic signal into the environment. It may be transmitted as an omni-directional or cardioid signal.

[0050] In some embodiments, an absolute position of the array of receive elements may be known and may be used to determine an absolute position of each of the surfaces.

[0051] Although the first to fourth aspects described above use acoustic signals, it will be understood that the methods described herein could equally be applied to other signals that may be transmitted into an environment and reflected signals analysed, such as radar signals, and further aspects provide corresponding methods and systems in which the signal is not an acoustic signal.

[0052] Further aspects the invention provides computer software (optionally stored on a non-transitory computer-readable medium, such as a solid-state memory) comprising instructions which, when executed by a processing system (e.g. of an acoustic positioning system as disclosed herein), cause the processing system to perform any or all of the processing steps of any of the methods disclosed herein (e.g. applying the receive-beamforming processing to sampled electrical signals; and processing the resulting beam response values).

[0053] The acoustic positioning system may comprise a processing system (e.g. comprising one or more processors) and a memory storing such software for execution by the processing system.

[0054] Features of any aspect or embodiment described herein may, wherever appropriate, be applied to any other aspect or embodiment described herein. Where reference is made to different embodiments or sets of embodiments, it should be understood that these are not necessarily distinct but may overlap.

[0055] BRIEF DESCRIPTION OF THE DRAWINGS

[0056] Certain preferred embodiments of this disclosure will now be described, by way of example only, with reference to the accompanying drawings, in which: FIG. 1A is a schematic diagram of an acoustic positioning system according to an embodiment of the invention;

[0057] FIG. 1B is a schematic diagram of an array of receive elements for an acoustic positioning system according to an embodiment of the invention;

[0058] FIG. 2 is a flow diagram illustrating steps of a method of determining relative positions of surfaces in an environment according to an embodiment of the invention;

[0059] FIG. 3 is a schematic representation of beam response values associated with respective beam angles determined using a beamforming process in accordance with an embodiment of the present invention;

[0060] FIG. 4 is a schematic representation of intensity values associated with respective beam angles determined by processing beam response values in accordance with an embodiment of the present invention;

[0061] FIG. 5 schematically illustrates a signal processing method according to an embodiment of the present invention;

[0062] FIG. 6 is a schematic diagram of an acoustic positioning system according to an embodiment of the invention in use;

[0063] FIG. 7 is a flow diagram illustrating steps of a method of determining the relative position of a surface in an environment according to an embodiment of the invention;

[0064] FIG. 8 is a schematic representation of intensity values associated with respective beam angles determined using a beamforming process in accordance with an embodiment of the present invention;

[0065] FIGs. 9A and 9B schematically illustrate an indexing process according to an embodiment of the present invention;

[0066] FIG. 10 is a schematic representation of a template signal used in a deconvolution process in accordance with an embodiment of the present invention; and

[0067] FIG. 11 is a schematic representation of the result of a deconvolution process in accordance with an embodiment of the present invention.

[0068] DETAILED DESCRIPTION

[0069] Figure 1A shows a simplified schematic block diagram of an ultrasound positioning system 100 according to embodiments of the invention. The system 100 may be implemented as a static device, or within a mobile device. The ultrasound positioning system 100 comprises an array 101 of ultrasonic transceivers 103. The ultrasonic transceivers 103 each comprise an ultrasonic transmitter (not shown) and a receive element for receiving acoustic signals, which in this embodiment takes the form of a microphone 104. The microphone 104 of each transceiver 103 is separated from the microphone 104 of the neighbouring transceiver(s) 103 by a distance d.

[0070] The array 101 in Figure 1A is shown as comprising 8 microphones 104 in a linear arrangement. However, it will be appreciated that different numbers and arrangements of microphones 104 may be provided in the array in other embodiments. An example of this is illustrated in Figure 1 B, which shows an alternative array 111 suitable for use in place of the array 101 in Figure 1A. The array 111 shown in Figure 1B comprises 11 transceivers 113, each comprising an ultrasonic transmitter (not shown) and a microphone 114 for receiving acoustic signals. The transceivers 113 are arranged in two linear arrays that extend in perpendicular directions in an ‘L’-shaped arrangement. In each perpendicular direction, the microphone 114 of each transceiver 113 is separated from the microphone 114 of the neighbouring transceiver(s) 113 by a distance d. An array 111 as shown in Figure 1 B may be used to determine the angular position of a surface on two perpendicular planes, allowing a 2D position of the surface relative to the array to be determined as explained in the following.

[0071] The system 100 also comprises an analogue to digital converter (ADC) 105 arranged to sample acoustic signals measured by the microphones 104, as well as a processor 107, a memory 109 and a battery 110 for powering the system. The memory 109 may store software for execution by the processor 107, which causes the system 100 to carry out any of the processing steps disclosed herein.

[0072] The system 100 is configured to transmit an ultrasound signal (not shown in Figure 1 A for simplicity of illustration) from one or more of the transmitters of the transceivers 103 into an environment in the form of a spherical wave. The transmitted signal is an 8 kHz ping having a frequency that is selected such that the wavelength, A, of the acoustic signal is approximately equal to twice the spacing, d, between the microphones 104 of the array 101. The transmitted signal is reflected from surfaces in the environment (not shown in Figure 1A), and reflected signals 102 are received at the microphones 104 from the surface within the environment. In practice, while multiple reflections may be received from different surfaces within the environment, only a single reflected wavefront is shown in Figure 1A for simplicity.

[0073] The reflected signals are received at respective ‘point source angles’ 0o defined with respect to the boresight direction (0=0°) of the array 101 , i.e. perpendicular to the face of the array 101. A positive angle 0 is defined for angles to the right (as shown in Figure 1A) of the boresight angle of the array 101, and negative angle 0 is defined for angles to the left (as shown in Figure 1 A) of the boresight angle of the array 101.

[0074] The system 100 is configured to receive reflected signals 102 at one or more of the microphones 104, to sample the received signals using the ADC 105 and to process the sampled signal 102 using the processor 107 to determine the position of the surface in the environment from which the reflected signals 102 were reflected, as will be explained in the following with reference to Figure 2.

[0075] Figure 2 is a flow diagram illustrating steps of a method of determining the relative position of surfaces in an environment using the system 100 shown in Figure 1A.

[0076] In step 201 of the method, reflected signals 102 are measured using one or more of the microphones 104 during a first time window. This time window effectively sets the range of distances for which surfaces may be identified, as the range to which reflected signals may be measured is set by the duration of the time window and the speed of sound in the vicinity of the array 101. While the method shown in Figure 2 and described below relates to a single time window (and hence a single set of distances from the array 101), it will be appreciated that in practice the method can be repeated over multiple time windows, each representative of a different set of distances from the array 101. This is explained in more detail in the following with reference to Figure 6.

[0077] In step 203, the signal measured using the microphones 104 is sampled using the ADC 105. The sampled signal is a quadrature signal, (i.e. a complex IQ signal) comprising both amplitude and phase information. Although not shown in Figure 2 for simplicity of illustration, the sampled signal is also deconvolved with the transmitted signal to remove noise associated with the transmitted signal.

[0078] The processing of raw data to IQ data involves bandpass filtering, match filtering to the transmitted signal (e.g. de-chirp), and generation of amplitude and phase (in- phase and quadrature values). There are several possibilities for these steps. Bandpass filtering can be performed by downmixing and then low-pass filtering, or the system can apply a true bandpass filter. Filtering can be applied in the time domain, or in the Fourier domain. Match filtering can be a convolution or a deconvolution. It can be performed in the Fourier domain or in the time domain. Amplitude and phase can be found by IQ-sampling or by a Hilbert transform.

[0079] In step 205, receive-beamforming processing (e.g. delay-and-sum or FFT-based) is applied to the sampled electrical signal to determine beam response values for each of a plurality (e.g. 10, 50, 100, 1000 or more) of beam angles, 0, measurable using the array 101. Each beam response value may represent an amplitude and optionally a phase for a particular time window. It may be stored as a complex number.

[0080] The beam response values are calculated based on the sampled IQ signals. A narrow-band approximation may be made such that IQ data for a single time can be used to obtain the beam response from a given distance, d from the array.

[0081] The beam angles are selected to cover a 180° span centred around the boresight direction, between 0=-9O° and 0=+9O° with respect to the boresight direction of the array 101. The “beam angles” for which beam response values are determined define respective “beam sectors”, each having a respective main lobe centred on the beam angle. At least in some embodiments, each such beam may be defined as the 3dB half-power beamwidth around the respective beam angle. The number of distinct beams for which beamforming processing is performed may thus be selected based on a required angular precision, subject to any resolution constraints due to the geometry of the array and the wavelength of the transmitted signal. The result of the beamforming processing is a series of beam response values, each associated with a respective beam angle. An example of this is schematically illustrated in Figure 3, which shows the real components 301 and the imaginary components 303 of beam response values (in arbitrary units) for sixteen beam angles, indexed from 0-15, determined by the beamforming processing of a measured acoustic signal from an environment containing multiple surfaces.

[0082] Returning to Figure 2, having determined beam response values for each of a plurality of beam angles, an iterative process is started to determine the position of surfaces in the environment of the array 101. In an initial stage of this iterative process, the beam response values are processed, in step 207, to determine a respective intensity for each of the beam angles corresponding to the determined beam response values.

[0083] In the presently described embodiment, in which surface positions are determined in terms of an angular position in one plane, this processing comprises determining the in-phase power for each of the beam angles (e.g. by calculating the magnitude of the real part of the beam response values) to determine an intensity for each of the beam angles. It will be appreciated however that an intensity for each beam angle may be determined in alternative ways while without departing from the scope of the claimed invention.

[0084] An example of the intensities determined for a plurality of beam angles is illustrated in Figure 4, which shows an illustrative plot 400 of intensity over beam angle, determined for the beam response values of the sixteen beam angles shown in Figure 3. It can be seen in Figure 4 that there are three main peaks in intensity, identified as peaks 401, 402 and 403, at beam angle indexes of 2, 8 and 14 respectively.

[0085] Once the intensity for each of the beam angles has been determined, the beam angle having the greatest intensity is identified, and its associated beam response value is processed, in step 209, to generate a model of a point source located at a beam angle within the beam angle associated with the greatest intensity. In the example shown in Figure 4, the beam response for the beam angle having the highest intensity, i.e. index 8, is thus processed first to generate a model of a point source located at a beam angle within the beam angle corresponding to index 8. In the presently described embodiment, the model of the point source is characterised by a beam angle and a complex magnitude, i.e. comprising a real magnitude value and an imaginary magnitude value.

[0086] The complex magnitude of the modelled point source may initially be set to be equal to a predetermined value, e.g. based on the determined intensity. The beam angle of the modelled point source initially be set as equal to the angle corresponding to the mid-point of the beam angle. However, in some embodiments, an improved estimate for the beam angle of the modelled point source may be determined by performing peak interpolation over the intensity values. For example, a parabola may be fitted over the intensity values closest to the maximum intensity determined from the beam response values (e.g. the intensity values associated with beam angles 7 and 9 in Figure 4) to determine an interpolated peak location in beam angle. This may allow the beam angle for which the intensity is maximum to be determined more accurately than from the beam response values alone.

[0087] Returning to Figure 2, in step 211 , the point source model is used to generate a candidate signal representative of an acoustic signal received at the array of receive elements from the beam angle of the modelled point source. The candidate signal for the modelled point source may take the form of a sine function centred at the beam angle of the modelled point source. In some embodiments however, the point source is modelled at the level of the sampled electrical signals and the candidate signal corresponds to a modelled electrical signal.

[0088] In a further step (not shown in Figure 2), the parameters of the modelled point source may be refined by performing non-linear fitting of the candidate signal against the measured signal, e.g. using the Levenberg Marquardt method or by using a non-linear optimisation.

[0089] An example of the processing of a generated candidate signal is shown in Figures 5A-5C. Figure 5A shows the initial values of the real components 501a and the imaginary components 503a of the beam response values as determined by beamforming processing of the measured signal (i.e. as shown in Figure 3). Figure 5B shows a candidate signal for a modelled point source for the beam response for the beam having the highest intensity, i.e. the beam angle of index 8. Figure 5C shows the result of processing the sampled electrical signal to subtract the candidate signal, resulting in a remainder signal representative of the difference between the received acoustic signal and the candidate signal. It can be seen in Figure 5C that contributions to the measured signal in the vicinity of the modelled point source, e.g. in beam responses represented by indexes 6-10 in Figure 5C, are substantially reduced in the remainder signal.

[0090] The embodiment shown in Figures 5A-5C shows a remainder signal generated by subtracting a candidate signal representing beam response values from the determined beam response values. However, in some other embodiments, the remainder signal may be generated by subtracting a candidate signal corresponding to a modelled electrical signal from the sampled electrical signal directly.

[0091] Once the remainder signal has been generated, it is used, in step 215, to generate updated beam response values representative of the signal received from the environment absent the contribution from the modelled point source.

[0092] At this stage, the remainder signal is analysed to determine whether the modelled point source is sufficient to account for substantially all of the received acoustic signal, or if other sources, corresponding to as-yet-unidentified surfaces in the environment, are present. To achieve this, the remainder signal is compared to a threshold signal level (e.g. 5% of the total received signal), representing an environment that is substantially absent of surfaces from which reflections of an acoustic signal are generated.

[0093] If the remainder signal is above the threshold level, it is determined that the modelled point source does not account for all of the surfaces in the environment, and steps 207-215 are repeated using the updated beam response values.

[0094] However, if the remainder signal is determined to be below the threshold level, it is determined that the modelled point source(s) account for all of the surfaces in the environment and the process proceeds to step 217. Alternatively, in the event that the threshold level is not reached after a predetermined number of iterations (e.g. 1000 iterations), the process proceeds to step 217.

[0095] In step 217, positions for each surface in the environment are determined corresponding to the positions of the modelled point sources, for example it can be determined that a surface is present at a position corresponding to the beam angle of each of the modelled point sources.

[0096] The example set out above in relation to Figure 2 describes the determination of the position of surfaces on a single plane, i.e. as a one-dimensional position in terms of a single angle. However, the method may be extended to determine surface positions in two angular directions, e.g. along two perpendicular planes, in some embodiments. In order to achieve this, the beamforming step 205 can be performed along a second, e.g. perpendicular, beamforming angular direction, provided that a 2D microphone array is used to receive the reflected signal, e.g. using an array as shown in Figure 1B.

[0097] When beamforming in two planes, the beam response, b, is the amplitude and phase representing sound from a direction given by the angles 9Xand 9y, in the two different angular directions. It is calculated from complex IQ signals, sn, by: where xnand ynare the coordinates of the microphone 104 of the array 101 from which the IQ data s„is obtained.

[0098] When beamformed along two axes in this way, the step of determining intensity for each beam angle is modified to account for intensity along both angular directions.

[0099] In one embodiment, an intensity is calculated for each combination of beam angles by calculating the outer complex product of the signal received in each of a set of beam angles along a first angular direction (zi) with the signal received in each of a set of beam angles along a second angular direction (Z2). For each combination of beam angles, an intensity value corresponding to (Re(ziZ2*)) is determined and the highest intensity value is identified. A 2D peak fit may be performed around the maximum intensity identified so as to more accurately determine the beam angles (i.e. the beam angle in each angular direction) for which a point source is to be modelled in two dimensions.

[0100] In another embodiment, intensities for beam angles are determined independently for a first angular direction and a second angular direction (e.g. in a manner equivalent to the one-dimensional case described above) and one dimensional peak finding (and fitting) of each peak in intensity is performed for each set of beams. The result of this process is a number of one-dimensional peak candidates for each set of beams. The peak candidates are then processed by taking the outer complex product of the signal received in the beams corresponding to the peak candidates for a first angular direction (zi) with the signal received in each of the beams along a second angular direction (Z2). The combination of peaks that achieves the highest signal intensity ((Re(ziZ2*)) is then selected to identify a 2D beam angle with the greatest intensity.

[0101] Regardless of which method is used to determine the 2D beam angle, a point source is modelled, and a 2D candidate signal corresponding to the modelled point source is generated, in an analogous manner to that described for the onedimensional case above. The parameters of the modelled point source may also be further refined by performing non-linear fitting of the candidate signal against the measured signal, e.g. using the Levenberg Marquardt method so as to achieve improved angular resolution.

[0102] Once the candidate signal is generated, the method proceeds in the same manner as described in relation to the one-dimensional case to identify positions of surface in two dimensions.

[0103] The method described above can also be extended to three-dimensions in some embodiments by performing the method in multiple distinct time windows. More particularly, after determining the angular position of each surface for a first time window, each of steps 201-217 can be repeated for additional time windows to determine the position of surfaces at different distances from the array 101. By repeating the process shown in Figure 2 over a plurality of time windows of different start and end times, surfaces can be identified over different ranges of distance from the array 101 based on the duration of the time window and the speed of sound in the vicinity of the array 101.

[0104] This is illustrated, for example, from Figure 6, which shows the array 101 in an environment 600. The array 101 transmits a signal 601 into the environment, where it reflects from a first object 603 and a second object 605. A first reflected signal 602a is reflected from the first object and a second reflected signal 602b is reflected from the second object. By measuring reflected signals from the environment 600 over different time windows, the distance to the surfaces from which the first reflected signal 602a and the second reflected signal 602b can be determined as explained below.

[0105] After transmitting the signal 601 into the environment 600, the microphones 104 (not shown in Figure 6) measure the reflected signal over a time period T. The measured signal is then sampled over a plurality of time windows ti-tN within the time period T, each time window corresponding to a respective range from the array 101 in which the microphones 104 are situated. For example, a first time window h may be selected to sample reflected signals from a first range, shown by the area 610a defined by the curve closest to the array 101 . A second time window t2 may be selected to sample reflected signals from a second range, located further from the array 101 , as shown by the area 610b defined by the area between the first and second closest curves to the array 101 in Figure 6. This process can be repeated for time windows ts-ts in the example shown in Figure 6, to sample reflected signals from surfaces within ranges shown by the areas 610c-610h at times t3to ts respectively. Based on these times, the distance to objects within the range can be calculated based on the speed of the transmitted signal, i.e. the speed of sound in the vicinity of the array.

[0106] By sequentially sampling signals at increasing ranges from the array 101 , the distance to surfaces within the environment can be identified. In the example shown in Figure 6, a surface will be identified, as explained above, when sampling signals in the ranges associated with the areas 61 Od and 61 Of, i.e. at times t4 and te. As the time at which the signals are sampled is known, in addition to determining the angular position of each surface, a distance to the surface can be determined based on the sampling time based on the speed of sound in the vicinity of the array. By repeating all of steps 201-217 for multiple measurement ranges, surfaces in a plurality of range windows can be identified. In this way, a two- or three-dimensional position of each surface in the environment can be determined and an ‘image’ of the environment in the vicinity of the array 101 can be generated showing all detected surfaces in two or three dimensions.

[0107] Figure 7 is a flow diagram illustrating steps of an alternative method of determining the relative position of surfaces in an environment using the system 100 shown in Figure 1A.

[0108] In step 701 of the method, the reflected signal 102 is measured using one or more of the microphones 104 during a first time window. This time window effectively sets the range of distances for which surfaces may be identified, as the range to which reflected signals may be measured is set by the duration of the time window and the speed of sound in the vicinity of the array 101.

[0109] The measured signal is then sampled using the ADC 105 in step 703. The sampled signal is a quadrature signal, (i.e. a complex IQ signal) comprising both amplitude and phase information.

[0110] In step 705 the sampled signal is deconvolved with a template of the transmitted signal (e.g. stored as data in the memory 109) to remove noise associated with the transmitted signal, e.g. to de-chirp the signal.

[0111] In step 707, beamforming processing is applied to the sampled electrical signal to determine beam response values for each of a plurality (e.g. 50, 100, 1000 or more) of beam angles, 0, measurable using the array 101 by applying delay and sum processing to the sampled electrical signals. The beam angles are selected to cover a 180° range centred around the boresight direction, between 0=-9O° and 0=+9Oowith respect to the boresight direction of the array 101. The angles may be uniformly spaced in sin(0) / d, although this is not essential.

[0112] The number of beam angles for which beamforming processing is performed is selected based on the required angular precision of surface position to be determined. The result of the beamforming processing is a series of beam response values associated with respective beam angles 0. An example of this is schematically illustrated in Figure 8, which shows the real components 801 and the imaginary components 803 of the resulting beam response values (in arbitrary units) determined by the beamforming processing of a measured signal from an environment containing multiple surfaces. In the example shown in Figure 8, beam response values are determined for sixteen beam angles, indexed as angular indices 0-15.

[0113] In step 709, the processor determines a respective index value for each of the beam response values determined by the beamforming processing. The index determined for each beam response value is proportional to the sine of the beam angle associated with the beam response value. The beam response values will be inherently indexed by this index value when the beamforming is performed at uniformly-spaced intervals of sin(0) / d. This approach can therefore be particularly efficient. This indexing process allows deconvolution of the beam response values to be performed with a single common template signal regardless of the beam angle with which the beam response value is associated.

[0114] Without this step, effective deconvolution of the beam response values is not possible as prior to indexing, the expected response of the array (the array factor, AF) is strongly dependent on the beam angle. Specifically, for an array comprising N microphones, the array factor may be given by: where 0 is the beam angle, and 0o is the point source angle, i.e. the angle from which the reflected signal is received at the array. Due to the inner sine terms in the above equation, the array factor is not invariant with point source angle. Because of this, deconvolution with a common template signal representative of a signal received at the array from 0=0 does not provide accurate results, as the template signal will not be well-matched to the response of the array for point source angles far from the boresight direction. This is illustrated in Figure 9A, which shows illustrative plots of the array factor, AF, over beam angle, 0, for each of a plurality of surfaces having point source angles, 0o, of 0, ±TT / 8, ±TT / 4, ±3TT / 8, and ±TT / 2 radians respectively. The array factor for each surface (and hence each point source angle) is shown as a separate curve (900a- 907a) for beam angles between -TT / 2 and +TT / 2 radians.

[0115] It can be seen in Figure 9A that for a point source angle 0o=O (curve 900a), the array factor is centred around 0=0, is relatively narrow (~0.4 radians at maximum width), and is symmetrical about the point source angle, i.e. around 0=0.

[0116] For point source angles 0o of ±TT / 8 (curves 901a), the array factor is centred around the point source angle 0=±TT / 8, and has a similar shape and maximum width to the response for a point source angle 0o=O. However, for point source angles of 0O=±TT / 4 (curves 903a), although the maximum value of the array factor response remains centred around the point source angle, the shape of the expected response differs from that for point source angles closer to 0o=O, being broader and asymmetric. For point source angles further from 0o=O, e.g. for 0O=±3TT / 8 (curves 905a) and 0O=±TT / 2 (curves 907a), the expected response can be seen to be significantly broader still and to be less symmetrical with greater deviation from a point source angle of 0o=O.

[0117] As the array factor, AF, varies significantly with point source angle 0o, particularly for angles far from the boresight direction (0o=O), a template signal representative of a point source located at 0o=O will not be well-matched to the response of the array for point source angles far from 0o=O, and hence deconvolution based on such a template will not provide good results for all point source angles.

[0118] The applicant has recognised, however, that by indexing the beam response proportional to the sine of the beam angle, rather than by the beam angle itself, the variation of the array factor with point source angle can be eliminated. Specifically, by plotting the array factor, AF, indexed by x = d sin(60) / A, instead of by beam angle 0, it can be seen that the expected response of the array becomes invariant with point source angle. This effect can be seen in Figure 9B, which shows illustrative plots of array factor AF over an index, x, proportional to sin of the beam angle 0 (x = d sin(0) / A in this example) for the same plurality of point sources as shown in Figure 9A, i.e. having point source angles, 0o, of 0, ±TT / 8, ±TT / 4, ±3TT / 8, and ±TT / 2 radians respectively. The array factor for each point source angle is shown as a separate curve 900b-907b, for beam angles between -TT / 2 and +TT / 2 radians, indexed over x = d sin(0) / A rather than 0. Each of curves 900b-907b in Figure 9B represent the same point source angles as curves 900a-907a in Figure 9A.

[0119] It can be seen in Figure 9B that when indexed proportional to the sine of beam angle, the array factor AF is invariant with point source angle and each of curves 900b-907b has the same shape. However, close to the beam steering limits of ±TT / 2, the beam signal is no longer measurable and hence disappears from the sample space.

[0120] This principle can be applied to the response signal sampled from the array by indexing the sampled signal proportional to the sine of the beam angle, such that the expected response of the array to the received signal is the same regardless of the position of the surface from which the received signal is reflected. As the shape of the expected response is invariant with point source angle, a single common deconvolution template can be applied across the entire beam angle range.

[0121] To ensure that deconvolution can be applied across the full angular range, the beam signal needs to be periodic over the full ±TT / 2 range. This is achieved by imposing a boundary condition for point sources located at ±TT / 2, for which a specific value, d’, is substituted for d in the indexing step, where d' = = ,

[0122] A 2n+l where n is the number of single sided beam steering angles 0.

[0123] When this boundary condition is applied, the array factor indexed by the sine of beam angle can be deconvolved with a template signal representative of a reflected signal received at the array from a beam angle of 0o=O (also indexed proportional to the sine of the beam angle) over the full range of beam angles measurable using the array 101 , i.e. between - TT / 2 and + TT / 2 radians from the boresight direction. Returning to Figure 7, having indexed the beam response values determined using beamforming processing proportional to the sine of the beam angle 0, the set of beam response values is deconvolved with a template signal representative of a reflected signal received at the array from zero beam angle in step 711.

[0124] An example of the template signal is illustrated in Figure 10, which shows the real component 11 , the imaginary component 13 and the magnitude 15 of the template signal used for deconvolution in the time domain. The deconvolution operation may be performed in any appropriate way, e.g. using Tikhonov regularized deconvolution, FFT-based deconvolution, Wiener deconvolution, etc.

[0125] In step 713, the deconvolved signal is processed to determine angular position of surfaces in the environment. An example of the deconvolved signal is provided in Figure 11, which shows a deconvolved signal 10 representative of the deconvolution of beam response values determined by beamforming processing of a measured signal from an environment containing multiple surfaces. The deconvolved values are associated with sixteen beam angles and are indexed proportional to the sine of the beam angle 0, shown as indices 0-15.

[0126] To determine the position of surfaces in the environment, a peak finder algorithm is applied to the deconvolved signal 10. In the example shown in Figure 11 , it can be seen that the deconvolved signal 10 comprises four peaks 12, 14, 16, 18. By applying a peak finder algorithm to the deconvolved signal 10, the four peaks can be identified, and for each peak an amplitude and a sub-sample position (indexed over x = d sin(0) / A) can be determined.

[0127] The position in x can be converted to a position in 0 by re-indexing to amplitude values over beam angle, 0, allowing an angular position of each surface to be identified. It will be appreciated that the deconvolved signal could be re-indexed by 0 prior to the application of the peak finder algorithm in some embodiments.

[0128] Once the angular position of each surface in the environment has been determined, the method of Figure 7 may be repeated along a second, perpendicular beamforming angular direction in some embodiments, in step 715, provided a 2D microphone array is used to receive the reflected signal, e.g. an array as shown in Figure 1 B.

[0129] The method can also be extended to three-dimensions in some embodiments, in step 717. More particularly, after determining the angular position of each surface for a first time window, each of steps 701-715 can be repeated for additional time windows to determine the position of surfaces at different distances from the array 101s. By repeating steps 701-715 over a plurality of time windows of different start and end times, surfaces can be identified over different ranges of distance from the array 101 based on the duration of the time window and the speed of sound in the vicinity of the array 101.

[0130] It will be appreciated by those skilled in the art that the present disclosure has been illustrated by describing one or more specific examples thereof, but is not limited to these examples; many variations and modifications are possible, within the scope of the accompanying claims.

Claims

CLAIMS1. A method for determining positions of a plurality of surfaces in an environment, the method comprising: transmitting an acoustic signal into the environment; receiving reflections of the acoustic signal from the plurality of surfaces at a linear or 2D array of receive elements; sampling electrical signals output by the array of receive elements in response to the received reflections; applying receive-beamforming processing to the sampled electrical signals to determine a plurality of beam response values, wherein each beam response value is associated with a beam having a different respective 1 D or 2D beam angle; for each of a plurality of iterations: processing each beam response value of the beam response values to determine a respective intensity for the beam corresponding to the beam response value; identifying a greatest intensity of the determined intensities; processing the beam response value associated with the greatest intensity to generate a model of a point source located within the beam associated with the greatest intensity; using the model of the point source to generate a candidate signal representative of an acoustic signal received at the array of receive elements from the point source; processing the sampled electrical signals to subtract the candidate signal so as to generate a remainder signal; and- when the remainder signal is above a threshold level, determining a plurality of updated beam response values for the remainder signal; ceasing iterating when the remainder signal is below the threshold level; and for each of the modelled point sources, determining a 2D or 3D position for a respective surface of the plurality of surfaces corresponding to a location of the point source.

2. The method of claim 1 , wherein determining the respective intensity for each of the beams comprises determining an in-phase power value for the beam response value associated with the respective beam.

3. The method of claim 1 or 2, wherein the receive-beamforming processing comprises determining beam response values for a first set of beam angles in a first plane and determining beam response values for a second set of beam angles in a second plane.

4. The method of claim 3, wherein processing each beam response value of the beam response values to determine a respective intensity for the beam corresponding to the beam response value comprises: determining an intensity for each beam angle of the first plane; determining an intensity for each beam angle of the second plane; and calculating the outer complex product of the intensity determined for each beam angle of the first plane with the intensity determined for each beam angle of the second plane.5 The method of claim 3, wherein processing each beam response value to determine a respective intensity for the beam corresponding to the beam response value comprises calculating the outer complex product of the beam response values for each of the beam angle ranges of the first plane and each of the beam angle ranges of the second plane.

6. The method of claim 4 or 5, wherein identifying a greatest intensity of the determined intensities comprises identifying the pair of beam response values for which the outer complex product is greatest.

7. The method of any preceding claim, wherein processing the beam response value associated with the greatest intensity to generate a model of a point source located within the beam associated with the greatest intensity comprises performing peak interpolation over the determined intensity values.

8. The method of any preceding claim, wherein the model of the point source is defined by a beam angle and a complex magnitude.

9. The method of claim 8, wherein the beam angle of the model is set based on the mid-point of the beam angle range.

10. The method of claim 8 or 9, wherein the complex magnitude of the model is set based on the determined intensity for the beam angle range.

11. The method of any of claims 8 to 10, further comprising performing nonlinear fitting of the candidate signal and updating the beam angle and complex magnitude of modelled point sources based on the results of the non-linear fitting.

12. The method of claim 11 , wherein performing non-linear fitting comprises applying a Levenberg Marquardt algorithm.

13. The method of any preceding claim, wherein the threshold level is representative of an environment that is substantially absent of surfaces from which reflections of an acoustic signal are generated.

14. The method of any preceding claim, further comprising ceasing iterating when the threshold level is not reached after a predetermined number of iterations.

15. The method of any preceding claim, comprising applying pulse shaping to the transmitted acoustic signal, and applying a corresponding deconvolution to the sampled signals prior to determining the beam response values.

16. The method of any preceding claim, wherein the receive-beamforming processing comprises performing FFT beamforming.

17. An acoustic positioning system configured to perform the method of any preceding claim.

18. Computer software comprising instructions which, when executed by a processing system, cause the processing system to determine positions of a plurality of surfaces in an environment, by: applying receive-beamforming processing to sampled electrical signals, output by a linear or 2D array of receive elements in response to receiving reflections of an acoustic signal from the plurality of surfaces, to determine a plurality of beam response values, wherein each beam response value is associated with a beam having a different respective 1 D or 2D beam angle; for each of a plurality of iterations: processing each beam response value of the beam response values to determine a respective intensity for the beam corresponding to the beam response value; identifying a greatest intensity of the determined intensities; processing the beam response value associated with the greatest intensity to generate a model of a point source located within the beam associated with the greatest intensity; using the model of the point source to generate a candidate signal representative of an acoustic signal received at the array of receive elements from the point source; processing the sampled electrical signals to subtract the candidate signal so as to generate a remainder signal; and- when the remainder signal is above a threshold level, determining a plurality of updated beam response values for the remainder signal; ceasing iterating when the remainder signal is below the threshold level; and for each of the modelled point sources, determining a 2D or 3D position for a respective surface of the plurality of surfaces corresponding to a location of the point source.