Patent Description:
<CIT> describes a radar system including a controller that is operable to receive a first signal from a first antenna and a second signal from a second antenna arising from the reflection of the first pulse by an object located in the radar field-of-view. The controller is also operable to calculate, before reception of the reflection of the second pulse by the object is finished, a first transformation of the first signal and the second signal to determine range-data based on the reflection of the first pulse, wherein the range-data includes a phase-component and an amplitude-component.

<CIT> describes a cascaded radar system that includes a first radar system-on-a-chip (SOC) operable to perform an initial portion of signal processing for object detection on digital beat signals generated by multiple receive channels of the radar SOC, a second radar SOC operable to perform the initial portion of signal processing for object detection on digital beat signals generated by multiple receive channels in the radar SOC, and a processing unit coupled to the first radar SOC and the second radar SOC to receive results of the initial portion of signal processing from each radar SOC, the processing unit operable to perform a remaining portion of the signal processing for object detection using these results.

<CIT> describes a radar system that includes a frame generation circuit and a frame processing circuit. The frame generation circuit is configured to receive radar signals, to convert the radar signals to at least one frame having a camera interface format, to receive the at least one frame via a camera interface, and to process the at least one frame.

This document describes techniques and systems for interleaving range and Doppler radar processing. A method includes maintaining, in a memory of a radar system, a data cube of sufficient size to store processed radar data obtained for a single look period and obtaining, during the single look period, multiple samples of radar returns corresponding to multiple chirps transmitted across multiple channels into an environment outside a vehicle. The method further includes performing, based on the multiple samples, range processing interleaved with Doppler processing by range processing the multiple samples for a current look period while finishing the Doppler processing for a previous look period, the Doppler processing for the previous look period finishing during processor idle times that occur between successive chirps of the current look period. The method further includes outputting, from the radar system, an indication of the data cube for use by a function of the vehicle.

These and other described techniques may be performed by hardware or a combination of hardware and software executing thereon. For example, a computer-readable storage media (CRM) may have instructions stored thereon and that when executed configure a processor to perform the described techniques. A system may include means for performing the described techniques. A processor or processor unit may be part of a system that is configured to execute the methods and techniques described herein.

Through implementation of these and other examples contemplated by this disclosure, fast and efficient radar range and Doppler processing can be achieved to estimate objects more accurately and/or quickly than from using traditional radar processing techniques, which condition Doppler processing on completion of range processing. This Summary introduces simplified concepts for interleaving range and Doppler radar processing, for example, vehicles (e.g., trucks, automobiles) equipped with radar or other components configured to interleave range and Doppler radar processing, as further made clear from the Detailed Description and Drawings. This Summary is not intended to identify essential features of the claimed subject matter, nor is it intended for use in determining the scope of the claimed subject matter.

The details of interleaving range and Doppler radar processing is described in this document with reference to the Drawings that may use same numbers to reference like features and components, and hyphenated numbers to designate variations of these like features and components. The Drawings are organized as follows:.

An amount of memory needed to maintain a data cube, which stores range FFT results derived from processing multiple samples of successive chirps on multiple channels, can be large; a low cost radar system with less capable computing resources cannot afford to allocate large amounts of memory for preserving data cubes from one look period to the next, and often only maintain one data cube at a time. Because of how memory allocated for a data cube is addressed, range processing and Doppler processing traditionally occur sequentially, during non-overlapping phases. After range processing and addressing memory to fill rows of the data cube with range FFT results for successive chirps, the memory is accessed differently. Doppler processing retrieves the range FFT results for successive ranges by addressing columns of the data cube from the memory. These transpose memory operations cause Doppler processing to be delayed until range processing is finished.

In addition, traditional radar processing may underutilize computing resources. A chirping time can dominate a look period, in some cases, consuming more than half the time allocated for radar processing. During range processing, range FFT results for a chirp can be computed much faster than a chirping pulse repetition time. Range processing may keep a processor in an idle state while waiting for another chirp to arrive. Control over processing resources may only be relinquished after all range processing finishes, at which time, only a fraction of the look period is left for Doppler processing.

These, as well as other factors, unnecessarily restrict Doppler processing to a small window of time, before range processing for a successive look period begins. As more chirps are added to a radar waveform, this window becomes shorter. Look periods may need to be lengthened to allow Doppler processing to occur, which diminishes performance.

In contrast, described are techniques for interleaving range and Doppler radar processing. A data cube is memory accessed differently, from one look period to the next, which allows Doppler processing for a current look period to happen in parallel with range processing for a next look period. Range processing for a first look period writes to rows of the data cube; Doppler processing reads from and empties its columns. But before Doppler processing can finish, a second look period begins. Rather than re-writing to the rows, range processing in the second look period writes to the columns just emptied by the ongoing Doppler processing. Doppler processing for the first look period is allowed to finish by executing during processing idle times in the second period, e.g., in-between chirps. With better processor utilization, Doppler processing is afforded more time to do its complex operations, while keeping look periods as short as possible.

<FIG> illustrates an example environment <NUM> for interleaving range and Doppler radar processing, for example, by a vehicle <NUM>. Although illustrated as a passenger truck, the vehicle <NUM> can represent other types of motorized vehicles (e.g., a car, motorcycle, bus, tractor, semi-trailer truck), non-motorized vehicles (e.g., a bicycle), railed vehicles (e.g., a train), watercraft (e.g., a boat), aircraft (e.g., an airplane), spacecraft (e.g., satellite), and the like. The depicted environment <NUM> includes the vehicle <NUM> traveling on a roadway.

The vehicle <NUM> is equipped with a radar system <NUM> for detecting an object <NUM> (or other like it) present on or near the roadway, which can impact how or whether the vehicle <NUM> can continue to travel. A region of interest associated with the radar system <NUM> at least partially surrounds the vehicle <NUM> and is referred to as a field of view <NUM> (also referred to as an instrumented field of view). Careful selection and/or positioning of components of the radar system <NUM> cause the field of view <NUM> to have a particular shape or size. Components of the radar system <NUM> can be installed on, mounted to, or integrated with any part of the vehicle <NUM>, such as in a front, back, top, bottom, or side portion of the vehicle <NUM>, a bumper, a side mirror, part of a headlight and/or taillight, or at any other interior or exterior location of the vehicle <NUM>.

Although not shown, the vehicle <NUM> includes other vehicle systems that are operatively and/or communicatively coupled to the radar system <NUM> using wired and/or wireless links that act as interconnections, paths, or busses for vehicle components. These other vehicle systems use outputs from the radar system <NUM> to perform vehicle-based functions, which in addition to other functions may include functions for vehicle control. Any conceivable device, apparatus, assembly, module, component, subsystem, routine, circuit, processor, controller, or the like, can be configured as a vehicle system that uses radar data to act on behalf of the vehicle <NUM>. As some non-limiting examples, the other vehicle systems may include a system for autonomous control, a system for safety, a system for localization, a system for vehicle-to-vehicle communication, a system for use as an occupant interface, and a system for use as a radar or multi-sensor tracker.

The radar system <NUM> includes a monolithic microwave integrated circuit (MMIC) <NUM>, a processor <NUM>, and a CRM <NUM>. Through the MMIC <NUM>, the processor <NUM> is operatively coupled to an interface of a multiple-input-multiple-output (MIMO) array (not shown). The MMIC <NUM>, the processor <NUM>, and/or the CRM <NUM> may be operatively and/or communicatively coupled via wired or wireless links (not shown), and may be part of a radar chip, which may be referred to as a system on chip. Other devices, antennas, and other radar components may be used by the radar system <NUM>. The radar system <NUM> includes an antenna array, such as a multiple-input-multiple-output (MIMO) array capable of transmitting multiple chirps across a range of frequencies, on multiple channels.

The MMIC <NUM> accumulates radar data from the MIMO array on behalf of the processor <NUM>. The radar data includes information about position and movement of objects in the field of view <NUM>, such as positions and range-rates of radar detections that reflect off the object <NUM>. The MMIC <NUM> receives instructions from the processor <NUM> to indicate characteristics (e.g., timing, phase, frequency range, channels) of radar signals <NUM>-<NUM> and their corresponding radar returns <NUM>-<NUM>. The MMIC <NUM> causes the radar signals <NUM>-<NUM> to be transmitted via the MIMO array and into the environment <NUM> and then, causes the corresponding radar returns <NUM>-<NUM> to be received.

The processor <NUM> processes the radar data generated by the MMIC <NUM>, and outputs the processed radar data in a form usable by the other vehicle systems of the vehicle <NUM>. A data cube <NUM> is an example of processed radar data generated by the processor <NUM> from radar data obtained by the MMIC <NUM>. The data cube <NUM> is generated from performing various functions, including interleaving range and Doppler radar processing, in accordance with the techniques of this disclosure. The processor <NUM> may include a controller, a control circuit, a microprocessor, its own chip, its own system, its own system-on-chip, a device, a processing unit, a digital signal processing unit, a graphics processing unit, or a central processing unit. The processor <NUM> may include multiple processors or cores, embedded memory storing executable software or firmware, internal/dedicated/secure cache or any other computer element that enables the processor <NUM> to execute machine-readable instructions for generating radar outputs.

In some examples, at least the CRM <NUM> and the processor <NUM> are a single component, such as an embedded system or system on chip. At least a portion of the CRM <NUM> is configured as a dedicated storage for the processor <NUM>. The CRM <NUM> may include portions of storage (e.g., memory) reserved by the processor <NUM> to maintain the data cube <NUM> after interleaving range and Doppler radar processing. Access to the CRM <NUM> may be shared by other components of the radar system <NUM>. The CRM <NUM> may also store machine-readable instructions for executing radar operations, including functions of a range estimator <NUM>, a Doppler estimator <NUM>, and an angle estimator <NUM>. For purposes of this disclosure, the functions performed by the processor <NUM> are described primarily for generation of the data cube <NUM>. It should be understood that generating the data cube <NUM> using interleaving of range and Doppler radar processing, can also lead to efficient performance of other radar based functions, including application of other functions to the data cube, localization, object detection, object classification, and/or object tracking. The data cube <NUM> and information (e.g., tracks) derived therefrom can be communicated from the radar system <NUM>, to other vehicle systems of the vehicle <NUM> and/or other vehicles and systems. Communication of the data cube <NUM> within the radar system <NUM> is also possible to enable functions of other radar components (e.g., other processors, other circuits), which for simplicity of the drawings are not shown in <FIG>.

In performing the functions of the range estimator <NUM>, and the Doppler estimator <NUM>, portions of the data cube <NUM> are written or read from the CRM <NUM>. The range estimator <NUM> can cause the processor <NUM> to write to the CRM <NUM> to fill rows of the data cube <NUM> with range processing results. The Doppler estimator <NUM> can cause the processor <NUM> to empty portions of the data cube <NUM> by reading from the CRM <NUM> and utilize columns of the range processing results in performing Doppler processing. A unique addressing function is used by the processor <NUM> to manage access to the data cube <NUM> maintained at the CRM <NUM>. With this addressing function the data cube <NUM> can be simultaneously filled and emptied to enable parallel writes to the data cube <NUM> with range processing results and reads from the data cube <NUM> of the range processing results to perform Doppler processing.

Consider the example shown in <FIG>. The object <NUM> is in the travel path of the vehicle <NUM>. The radar system <NUM> detects the object <NUM> and reports its position and movement by capturing radar data from a portion of the environment <NUM> that is captured by the field of view <NUM>. For example, the processor <NUM> is operatively coupled to the MMIC <NUM> and an interface of the MIMO array. The processor <NUM> obtains radar data from the MMIC <NUM> including multiple samples of the radar returns <NUM>-<NUM> corresponding to multiple chirps transmitted across multiple channels into the environment <NUM> outside the vehicle <NUM>.

Based on the multiple samples of the radar returns <NUM>-<NUM>, the processor <NUM> calls on the range estimator <NUM> and the Doppler estimator <NUM> to perform range processing interleaved with Doppler processing. For example, the CRM <NUM> includes a portion of memory where the processor <NUM> maintains the data cube <NUM>. The memory allocated to the data cube <NUM> is of sufficient size to store processed radar data for a single look period of the radar system <NUM>. The range estimator <NUM> writes range results to the data cube <NUM> and the Doppler estimator <NUM> reads the range results from the data cube <NUM> to perform Doppler processing. Unlike traditional radar processing, however, the Doppler estimator <NUM> is not restricted to finishing the Doppler processing before a next look period begins. The range estimator <NUM> can range process the multiple samples for a current look period while the Doppler estimator <NUM> finishes the Doppler processing for a previous look period. The Doppler processing for the previous look period is allowed to finish during processor idle times of the processor <NUM>, that occur between range processing, the range estimator <NUM>, and successive chirps of the current look period. In other words, rather than retain control over the processor <NUM> during the entire range processing phase of a look period, the range estimator <NUM> relinquishes the processor <NUM> to the Doppler estimator <NUM> to finish Doppler processing for a previous look.

To do this, addressing the data cube <NUM> within the CRM <NUM> is carefully managed from one look period to the next. The processor <NUM> configures the range estimator <NUM> and the Doppler estimator <NUM> to alternate how the data cube <NUM> is filled and emptied, from one look period to the next. For example, a first look period includes the range estimator <NUM> writing range FFT results to the rows of the data cube <NUM>, and further includes the Doppler estimator <NUM> reading the range FFT results from the columns of the data cube <NUM>. Then, a subsequent look period includes the range estimator <NUM> writing the range FFT results to the columns of the data cube <NUM>, instead of the rows. The Doppler estimator <NUM> reads the range FFT results from the rows of the data cube <NUM>, instead of the columns.

In the end, the data cube <NUM> is used to infer estimates of range, Doppler, and (in response to the angle estimator <NUM> processing the radar data) angle for each of the detections identified from the radar data. The processor <NUM> is configured to output an indication of the data cube <NUM> (e.g., actual data or a pointer to the actual data stored at the CRM <NUM>) for use by a function of the vehicle <NUM> or a function of the radar system <NUM>. For example, the angle estimator <NUM> can use the data cube <NUM> to determine an angle or an angle of arrival for detections inferred from the data cube <NUM>. The angle estimator <NUM> may access the channel dimension of the data cube <NUM>, unlike during Doppler or range processing.

With Doppler processing allowed to continue into the subsequent look period, better overall hardware utilization is achieved by the processor <NUM>, and the Doppler estimator <NUM> during is afforded more time to do its complex operations. In addition, not only is the processor <NUM> utilization improved, but memory utilization can also be kept in check even as more chirps are used; the described techniques for interleaving range and Doppler radar processing are compatible with low cost systems where storage allocated for radar processing is limited to portions of memory that can store only one data cube at a time.

<FIG> illustrates a timing diagram <NUM>-<NUM> of example radar returns. The radar returns conveyed by the timing diagram <NUM>-<NUM> are an example of the radar returns <NUM>-<NUM>. The radar signals <NUM>-<NUM> are transmitted during each look period. The radar returns <NUM>-<NUM> are obtained by the MMIC <NUM> as the radar signals <NUM>-<NUM> reflect back from objects in the field of view <NUM>. In the example shown in <FIG>, the radar returns <NUM>-<NUM> are sampled during each look period <NUM> to include, for each chirp interval <NUM>, multiple samples of chirps <NUM>-<NUM> and <NUM>-<NUM> (collectively referred to as multiple chirps <NUM>), across multiple channels (e.g., frequencies).

<FIG> illustrates a timing diagram <NUM>-<NUM> for performing sequential range and Doppler radar processing of the radar returns from <FIG>. The timing diagram <NUM>-<NUM> represents a traditional way of radar processing the multiple samples of the multiple chirps <NUM>. The multiple samples of the multiple chirps <NUM> are obtained from the MMIC <NUM> during two of the chirp intervals <NUM>. The chirps <NUM> are sampled and processed for range, Doppler, and other estimates, during a radar processing phase <NUM>-<NUM>, <NUM>-<NUM>,. , <NUM>-k, which are referred to collectively as radar processing phases <NUM>. Each of the radar processing phases <NUM> is temporally divided into two sequential periods: a range processing period <NUM>-<NUM>, <NUM>-<NUM>,. , <NUM>-k, which are referred to collectively as range processing periods <NUM>, and a Doppler processing period <NUM>-<NUM>, <NUM>-<NUM>,. , <NUM>-k, which are referred to collectively as Doppler processing periods <NUM>. In contrast to <FIG> shows that the Doppler processing period <NUM>-<NUM> is not allowed to begin until the range processing period <NUM>-<NUM> completes. In this traditional example, the chirp intervals <NUM> and the range processing periods <NUM> consume more than half of the look period <NUM>. But Doppler processing calculations require much more time than range processing calculations. It is desirable to allow each of the Doppler processing periods <NUM> to extend into the range processing periods <NUM> of subsequent look periods <NUM>, during processor idle times.

This is not possible with traditional data cube storage and addressing schemes with no option for retaining multiple data cubes for buffering. Existing data cube addressing functions can organize the data cube <NUM> according to groups of range, chirp, and channel that are accessed at separate variable memory addresses. However, when using the same address mapping for each look period, the data cube <NUM> columns cannot be emptied until all the rows are filled. A next look period waits for Doppler processing to empty all columns before range processing can fill the rows again.

<FIG> illustrates a timing diagram <NUM>-<NUM> for performing interleaving range and Doppler radar processing of the radar returns from <FIG>. In contrast to <FIG> shows that the Doppler processing periods <NUM> are allowed to finish executing during processing idle times of the range processing periods <NUM> of subsequent look periods. Unlike traditional data cube storage and addressing schemes, the processor <NUM> is configured to process the radar returns <NUM>-<NUM> by filling and emptying the data cube <NUM> differently, from one look period to the next.

Per the timing diagram <NUM>-<NUM>, the processor <NUM> is configured to perform range processing of a first chirp for a current look period, and while waiting for a second chirp for the current look period, the processor <NUM> is further configured to complete a portion of the Doppler processing for a previous look period. For example, during the range processing period <NUM>-<NUM>, the Doppler processing period <NUM>-<NUM> for the previous look period is allowed to execute during processor idle times. The Doppler processing period <NUM>-<NUM> is initiated after the range processing period <NUM>-<NUM> is finished. Execution of the Doppler processing period <NUM>-<NUM> is allowed to continue into the range processing period <NUM>-<NUM>, e.g., during processor idle times when waiting between two of the chirps <NUM>.

In comparing the timing diagrams <NUM>-<NUM> and <NUM>-<NUM> side by side, the Doppler processing periods <NUM> of the traditional radar processing scheme are much shorter in duration than the Doppler processing periods <NUM> of the timing diagram <NUM>-<NUM>, which shows better utilization of available computing resources to finish a complex task.

Doppler processing is not the only function that can be allowed to utilize idle processing time of each of the range processing periods <NUM>. For example, the radar system <NUM> may apply other radar functions to the data cube <NUM> during the processor idle times that occur between successive chirps of a current look period. Some examples of these other functions can include angle estimation, interference mitigation, and the like. Programmable direct memory addressing (PDMA) operations are also supported during the processor idle times, to synchronize or otherwise enable output of the data cube <NUM> (e.g., to a data stream for use by other components of the radar system <NUM> and/or the vehicle <NUM>).

Execution of other functions, including Doppler processing, during otherwise idle times during range processing, may be supported if certain conditions are satisfied. For example, a condition to range processing is that chirp data is available. A condition to Doppler processing is that range results for a particular group of ranges is available. Blocking operations that retain control of the processor <NUM> (e.g., during range processing) when waiting for data may not be permitted; time is not wasted waiting to test any of the conditions, and independent activities can continue.

Polling can be used to manage control of the processor <NUM> between range processing and Doppler processing. However, to achieve the above, the polling is set to occur at a minimum rate. This means that longer activities like Doppler processing are broken into small steps that can occur within time allowed by the minimum polling rate. After each step of the Doppler processing, control of the processor <NUM> is returned to a main polling loop to allow higher priority activities like range processing to occur in the middle of Doppler processing. The minimum polling rate is determined by real-time constraints like chirp pulse repetition period. This is required, for example, so that the MMIC <NUM> can process radar data before overwriting that radar data by later chirp data. Each activity (e.g., range processing, Doppler processing, PDMA operations) returns to the main polling loop when it is in a known state with its context (e.g., register values, variable values, program counter) saved. Other activities may occur before resuming an activity, but when the activity is resumed, the context is known.

<FIG> illustrates a conceptual diagram for writing and reading a data cube to a shared location of a CRM during the interleaving range and Doppler radar processing illustrated in <FIG>. As mentioned in the previous section using a same memory map for the data cube <NUM> from one look period to the next does not allow a single data cube to be used in parallel both by range and Doppler processing without causing conflict between range processing writes to the rows and Doppler processing reads from the columns. To interleave range and Doppler processing, the processor <NUM> accesses the data cube <NUM> and the CRM <NUM> using two separate address mapping functions for successive looks, which prevents row and column conflicts.

<FIG> shows the data cube <NUM> in different example scenarios <NUM>-<NUM> to <NUM>-<NUM>. For simplicity of the drawings, the channel dimension of the data cube <NUM> is not shown. In each of these, the CRM <NUM> is accessed during interleaved range and Doppler processing to write to the data cube <NUM> or read from the data cube <NUM>. Each of the cross-hatch shaded cells is filled with range FFT results, and each non-shaded cell is empty. In this example, a horizontal read or write works linearly across a row of the data cube <NUM>, then down to a next row. A vertical read or write to the data cube <NUM> fills with jumps down a column, then right to a next column.

Referring to the scenario <NUM>-<NUM>, the range processing period <NUM>-<NUM> may include the range estimator <NUM> causing each row of the data cube <NUM> to be filled (e.g., in a sequential order). As soon as the range processing period <NUM>-<NUM> is finished, the Doppler processing period <NUM>-<NUM> can begin with the Doppler estimator <NUM> reading from columns of the data cube <NUM>.

The scenario <NUM>-<NUM> shows the Doppler estimator <NUM> emptying columns of the data cube <NUM> during the Doppler processing period <NUM>-<NUM>. The Doppler processing period <NUM>-<NUM> is interleaved with the range processing period <NUM>-<NUM>, and to maximize processor utilization before a subsequent look period, is initiated as soon as the range processing period <NUM>-<NUM> finishes. A portion of the data cube <NUM> is emptied in response to initiating the Doppler processing period <NUM>-<NUM>, before a subsequent look period and subsequent range processing period can begin. For example, this portion of the data cube <NUM> may be less than half of the data cube size (e.g., several columns, a quarter of the columns) or at least half of the data cube size (e.g., two thirds of the columns).

To prevent conflicts between the Doppler processing period <NUM>-<NUM> and subsequent range processing periods that follow, an alternating write and read scheme is used by the processor <NUM> to manage access to the data cube <NUM> from one look period to the next. The Doppler processing period <NUM>-<NUM> is allowed to empty range FFT results from columns of the data cube <NUM> during processor idle times (e.g., between chirps), when the range processing period <NUM>-<NUM> is waiting for new radar data from the MMIC <NUM> for a current look period. The Doppler processing period <NUM>-<NUM> finishes executing during one or more idle processor times, before the range processing period <NUM>-<NUM> finishes.

In the scenario <NUM>-<NUM>, the Doppler processing period <NUM>-<NUM> is initiated as soon as the range processing period <NUM>-<NUM> finishes to maximize processor utilization and further prevent conflicts. Instead of reading columns, the Doppler processing period <NUM>-<NUM> includes reading range FFT results from columns of the data cube <NUM>. During a next look period, range processing period <NUM>-<NUM> can begin by filling the rows of the data cube <NUM>, similar to the scenario <NUM>-<NUM>. After the data cube <NUM> is filled with rows of range FFT results, the above process is repeated similar for all subsequent look periods by Doppler processing columns and then writing range FFT results to columns instead of rows.

<FIG> illustrates a flow diagram of an example process <NUM> for interleaving range and Doppler radar processing. For ease of description, the process <NUM> is described primarily in the context of being performed by the radar systems <NUM> using the processor <NUM> with access to the CRM <NUM>. For example, the range estimator <NUM> can write to portions of the CRM <NUM> to fill the data cube <NUM>. When executed in parallel with the range estimator <NUM>, the Doppler estimator <NUM> can read from portions of the CRM <NUM> to empty the data cube <NUM>. Operations (also referred to as steps) of the process <NUM> are numbered in this example from <NUM> to <NUM>. However, this numbering does not necessarily imply a specific order of operations. The steps of the process <NUM> may be rearranged, skipped, repeated, or performed in different ways than the specific way it is shown in the diagram of <FIG>.

At step <NUM>, a data cube of sufficient size to store processed radar data for a single look period is maintained in a memory of a radar system. For example, the processor <NUM> allocates a portion of the CRM <NUM> as the data cube <NUM> to store range FFT results from the range estimator <NUM> as the range estimator <NUM> fills and writes to the data cube <NUM>.

At <NUM>, multiple samples of radar returns corresponding to multiple chirps transmitted across multiple channels into an environment outside a vehicle are obtained. For example, the MMIC <NUM> obtains radar data corresponding to the radar returns <NUM>-<NUM> that reflect off objects in the field of view <NUM>. The processor <NUM> obtains the radar data from the MMIC <NUM> to process the radar data into the data cube <NUM>.

At <NUM>, based on the multiple samples, range processing interleaved with Doppler processing is performed by range processing the multiple samples for a current look period while finishing the Doppler processing for a previous look period. The Doppler processing for the previous look period finishes during processor idle times that occur between successive chirps of the current look period.

The processor <NUM> can accomplish interleaving range and Doppler processing by following an alternating read and write scheme that is different than traditional radar processing. For each look period, the processor <NUM> may alternate between:.

For example, during a current look period, rows of data cube <NUM> are filled with range FFT results. After the data cube <NUM> is filled for the current look period, Doppler processing can take over and columns of the data cube <NUM> are emptied by the Doppler estimator <NUM>. During a next look period, the range estimator <NUM> fills empty columns of the data cube <NUM>, which from the Doppler processing, are emptied by the Doppler estimator <NUM>. The range estimator <NUM> is prevented from filling the columns of the data cube <NUM> until sufficient Doppler processing occurs, and at least a portion of the data cube <NUM> is empty. For example, the range estimator <NUM> may delay writing range FFT results for a current look period until the Doppler estimator <NUM> is far enough along in Doppler processing the previous look period range FFT results to prevent collisions between the range estimator <NUM> and the Doppler estimator <NUM> trying to read and write to a same column. For a next look period, the Doppler processing reads from the rows of the data cube <NUM>, and range processing for a subsequent look period alternates back to writing to the rows of the data cube <NUM> having been emptied by the Doppler estimator <NUM>. Further details of step <NUM> are described in context of the process shown in <FIG>.

At step <NUM>, an indication of the data cube is output by the radar system for use by a function of the vehicle. For example, the radar system <NUM> outputs an indication of the data cube <NUM> including range and Doppler estimates for potential objects in the environment <NUM>.

<FIG> illustrates a flow diagram of a process <NUM>-<NUM> for enabling interleaving range and Doppler radar processing by range processing multiple samples while simultaneously performing Doppler processing. The process <NUM>-<NUM> is an example of the step <NUM> from the process <NUM>-<NUM>. For example, the radar system <NUM> uses the processor <NUM> with access to the CRM <NUM> to perform the step <NUM>, for filling and emptying the data cube <NUM> using interleaving range and Doppler processing. The steps of the process <NUM>-<NUM> are numbered, however, like with the process <NUM>-<NUM>, this numbering does not necessarily imply a specific order of operations. The steps of the process <NUM>-<NUM> may be rearranged, skipped, repeated, or performed in different ways than the specific way it is shown in the diagram of <FIG>.

Consider an example where range processing for a previous look period has already occurred, which causes the range estimator <NUM> to fill each row of the data cube <NUM> with range FFT results. Then, with the data cube <NUM> filled, the Doppler estimator <NUM> can begin emptying the data cube <NUM>, one column at a time. The Doppler estimator <NUM> initiates Doppler processing for the previous look period, by reading columns of the data cube <NUM>.

At step <NUM>, multiple samples for a current look period are range processed for a current chirp. For example, instead of writing to a row like the previous look period, the range estimator <NUM> writes a column of range FFT results for each chirp.

At step <NUM>, the process <NUM>-<NUM> waits to obtain multiple samples for a next chirp for the current look period. For instance, while the range estimator <NUM> is waiting for additional radar data from the MMIC <NUM>, the range estimator <NUM> relinquishes control of the processor <NUM> so other processes can execute thereon.

At <NUM>, while waiting for the next chirp, whether Doppler processing for the previous look period is complete is determined. For example, the Doppler estimator <NUM> determines whether it is finished processing the range FFT results for an entire look period of range FFT results. If not, then the process <NUM>-<NUM> can enter step <NUM> to finish Doppler processing.

At step <NUM>, Doppler processing range FFT results for the previous look period resumes. The Doppler estimator <NUM> obtains control over the processor <NUM> and finishes reading one row of the data cube <NUM> at a time to finish Doppler processing for a previous look period, before the range estimator <NUM> can fill the empty rows with range FFT results for the current look period. In this way, the radar system <NUM> can complete a portion of the Doppler processing for the previous look period, while waiting between chirps of a current look period. The Doppler estimator <NUM> benefits from otherwise idle times of the processor <NUM> that can occur with other radar systems, where a range estimator is allowed to retain control over a processor until all range processing is finished.

At step <NUM>, multiple samples for the current look period are range processed for the next chirp. For example, the range estimator <NUM> continues range processing for the current look period by writing range FFT results for the next chirp to another column of the data cube <NUM>.

At <NUM>, whether range processing for the current look period is complete is determined. For example, the range estimator <NUM> determines whether it is finished filling the columns of the data cube <NUM> with range FFT results for the current look period. If the range processing is not complete, the process <NUM>-1returns to step <NUM> to wait for another chirp of the current look period. Steps <NUM>, <NUM>, and <NUM> are repeated in response.

At <NUM>, when the range processing for the current look period is finished, Doppler processing the range FFT results for the current look period can initiate. For example, because the data cube <NUM> is written with range FFT results column by column, the Doppler estimator <NUM> reads from rows of the data cube <NUM> to Doppler process the range FFT results for different ranges.

At <NUM>, before the Doppler processing at step <NUM> finishes, the current look period is set to be the previous look period and a next look period is set to be the current look period. Then the process <NUM>-<NUM> repeats starting at step <NUM>, for the new current look period.

<FIG> and <FIG> illustrates conceptual diagrams of example memory accesses for interleaving range and Doppler radar processing. The <FIG> and <FIG> show the mappings of range, chirp and odd and even channel groups, mapped to physical addresses and memory for two memory maps. Use of odd and even chirps is not required. This is just an example for the use case of eight receive channels, four hundred twenty range bins, and one thousand twenty four chirps (e.g., five hundred twelve odd chirps and five hundred twelve even chirps.

As mentioned previously, the processor <NUM> can utilize several variables in address mapping to portions (e.g., rows or columns of cells) of the data cube <NUM>. A variable involved in address mappings includes chirp quantity, which is a total number of chirps in a look period, and must be a power of two (e.g., five hundred twelve). Another variable for address mappings includes channel group quantity, which is a total number of channel groups (e.g., two for odd and even chirps). A third variable is a quantity of channels per channel group (e.g., one, multiple channels compressed together), and a fourth variable used in addressing mappings includes a quantity of range bins used (e.g., four hundred twenty, may be less than ranges given by range FFT results). A last variable used for address mappings includes a number of possible ranges from the range FFT results (e.g., five hundred twelve), and must be a power of two. The quantity of range bins used may be different than the number of possible ranges. The first is the number of ranges written in range processing and the number of ranges processed in Doppler processing. The second is also a power of two and is used to calculate starting addresses during range and Doppler processing.

As such, address mappings can be defined using spans of bits or bytes of memory (e.g., the CRM <NUM>) depending on which chirp, group, range, and channel. Consider the examples of <FIG> and <FIG>; the address mappings alternate between a first address mapping for range processing rows and Doppler processing columns, and a second address mapping for range processing columns and Doppler processing rows.

For the first address mapping, the processor <NUM> accesses the data cube <NUM> stored by the CRM <NUM> using an addressing function that arranges cells of the data cube <NUM> according to chirp, group, and range. A first sum is used, including a chirp number (e.g., unique number for each in the chirp quantity) multiplied by the channel group quantity and added to a group number (e.g., a unique number for each channel group). This first sum is multiplied by the number of possible ranges and added to a range number (e.g., unique for each range bin) to derive a second sum. The second sum is multiplied by a third sum of the channels per channel group and a channel number (e.g., unique number for each possible channel). Range processing steps to a next address by increasing the address by the quantity of channels per group. Doppler processing steps through addresses by increasing the address by steps corresponding to a product of the quantity of channels per group, the number of possible ranges, and the quantity of channels per channel group.

For the second address mapping, the processor <NUM> accesses the data cube <NUM> stored by the CRM <NUM> using a different addressing function that arranges cells of the data cube <NUM> according to chirp, group, and range. A first sum is used, including a range number multiplied by a channel group quantity added to a group number. The first sum is multiplied by the chirp quantity and added to the chirp number to generate a second sum. The second sum is multiplied by a third sum of the quantity of channels per group and the channel number.

Range processing steps through addresses by increasing the address by steps corresponding to a product of the quantity of channels per group, the number of possible ranges, and the quantity of channels per channel group. Doppler processing steps to a next address by increasing the address by the quantity of channels per group.

As such, the 'range' and 'chirp' variables swap roles in the different address mappings. Other address mapping schemes may be used, so long as they define address mappings that are consistent with the characteristic transpose that happens between range and Doppler processing. This allows range processing to fill locations of the data cube <NUM> that Doppler processing is emptying. The quantity of chirps can be the same or different than the number of possible ranges, or they may be the same. For example, range processing may fill two chirps worth of range FFT results to the data cube <NUM> after Doppler processing empties only one range bin worth of range FFT results.

To this end, an efficient way of handling processor idle time and memory usage allows the radar system <NUM> to include more complex signal processing routines like interference mitigation, coherent integration, and the like, within the time budget allocated to a look period. For example, with Doppler processing allowed to continue into a next look period, time for interference mitigation is afforded, before the range FFT results are written. In addition, similar to Doppler processing, the angle estimator <NUM> can estimate angles or directions of arrival based on the data cube <NUM> during processing idle times of a subsequent look. This may allow key performance index values for the radar system <NUM>, like quantity of chirps, quantity of samples, quantity of possible range bins, and detection count to be increased significantly to meet different applications without increasing memory or computing resources. This concept is portable to different radar variants, enabling reuse for current and future generation of radars. In fact, a radar's computational capability to process more radar data with the same number of resources compared to previous radar designs is improved. In some cases, without this range Doppler interleaving approach, it may not be feasible to implement radar processing on an automobile or other cost sensitive application.

Some examples for interleaving range and Doppler radar processing are provided below.

Example <NUM>: A method comprising: maintaining, in a memory of a radar system, a data cube of sufficient size to store processed radar data obtained for a single look period; obtaining, during the single look period, multiple samples of radar returns corresponding to multiple chirps transmitted across multiple channels into an environment outside a vehicle; performing, based on the multiple samples, range processing interleaved with Doppler processing by range processing the multiple samples for a current look period while finishing the Doppler processing for a previous look period, the Doppler processing for the previous look period finishing during processor idle times that occur between successive chirps of the current look period; and outputting, from the radar system, an indication of the data cube for use by a function of the vehicle.

Example <NUM>: The method of any preceding example, wherein the data cube comprises rows and columns, and performing range processing interleaved with Doppler processing based on the multiple samples comprises, for each look period, alternating between: range processing the multiple samples for that look period by writing range FFT results to the rows of the data cube and Doppler processing the multiple samples for that look period by reading the range FFT results from the columns of the data cube; and range processing the multiple samples for that look period by writing the range FFT results to the columns of the data cube and Doppler processing the multiple samples for that look period by reading the range FFT results from the rows of the data cube.

Example <NUM>: The method of any preceding example, wherein performing range processing interleaved with Doppler processing based on the multiple samples comprises: initiating, during the previous look period, Doppler processing of the multiple samples for the previous look period in response to range processing the multiple samples for the previous look period.

Example <NUM>: The method of any preceding example, further comprising: applying other radar functions to the data cube during the processor idle times that occur between successive chirps of the current look period, wherein applying other radar functions to the data cube comprises estimating angles or angle of arrivals from the data cube.

Example <NUM>: The method of any preceding example, wherein range processing the multiple samples for a current look period while finishing the Doppler processing for a previous look period comprises: range processing a first chirp for the current look period; and while waiting for a second chirp for the current look period, completing a portion of the Doppler processing for the previous look period.

Example <NUM>: The method of any preceding example, further comprising: emptying a portion of the data cube in response to initiating the Doppler processing for the previous look period; and filling the data cube starting with the empty portion in response to range processing the multiple samples for the current look period.

Example <NUM>: The method of any preceding example, wherein the portion of the data cube comprise less than half of the data cube.

Example <NUM>: The method of any preceding example, wherein the portion of the data cube comprise at least half of the data cube.

Example <NUM>: The method of any preceding example, wherein range processing the multiple samples for a current look period while finishing the Doppler processing for a previous look period comprises: writing, to an order of rows of the data cube, range processing results for the previous look period; reading, from an order of columns of the data cube, the range processing results for the previous look period to initiate Doppler processing for the previous look period; writing, to the order of columns of the data cube, range processing results for the current look period; and reading, from the order of rows of the data cube, the range processing results for the current look period to initiate Doppler processing for the current look period.

Example <NUM>: A system comprising: a radar system with.

Example <NUM> : A computer-readable storage media comprising instructions that, when executed, cause a processor of a radar system to perform the method of any preceding example.

Claim 1:
A method comprising:
maintaining, in a memory of a radar system (<NUM>), a data cube (<NUM>) of sufficient size to store processed radar data obtained for a single look period;
obtaining, during the single look period, multiple samples of radar returns (<NUM>-<NUM>) corresponding to multiple chirps transmitted across multiple channels into an environment (<NUM>) outside a vehicle (<NUM>);
performing, based on the multiple samples, range processing interleaved with Doppler processing by range processing the multiple samples for a current look period while finishing the Doppler processing for a previous look period, the Doppler processing for the previous look period finishing during processor idle times that occur between successive chirps of the current look period; and
outputting, from the radar system (<NUM>), an indication of the data cube (<NUM>) for use by a function of the vehicle (<NUM>).