METHOD FOR APPLYING A DISCRETE FOURIER TRANSFORM, DFT, TO A SEQUENCE OF SAMPLES OF A SENSOR SIGNAL, PROCESSOR CIRCUIT FOR PERFORMING THE METHOD, RADAR SENSOR AND MOTOR VEHICLE
20250383384 · 2025-12-18
Assignee
Inventors
- Mario SCHUEHLER (Effeltrich, DE)
- Burak SAHINBAS (REGENSBURG, DE)
- Lars Weisgerber (Regensburg, DE)
- Thomas Kötter (Regensburg, DE)
Cpc classification
B60W30/0956
PERFORMING OPERATIONS; TRANSPORTING
B60W30/09
PERFORMING OPERATIONS; TRANSPORTING
B60W50/00
PERFORMING OPERATIONS; TRANSPORTING
B60W2050/0012
PERFORMING OPERATIONS; TRANSPORTING
International classification
B60W30/09
PERFORMING OPERATIONS; TRANSPORTING
B60W30/095
PERFORMING OPERATIONS; TRANSPORTING
B60W50/00
PERFORMING OPERATIONS; TRANSPORTING
Abstract
A method for applying a Discrete Fourier Transform (DFT) to a sequence of N samples of a sensor signal, with N>2. The resulting DFT spectral coefficients are updated iteratively whenever a new one of the samples or a sub-group of consecutive new samples, comprising a predefined number J of samples, with 1<J<N, is received.
Claims
1. A method for applying a P-dimensional discrete Fourier transform (DFT) to a sequence of N samples of a sensor signal, with P, N>2, comprising: receiving one of the samples at a time at a processor circuit; and performing the following in response to receiving a new one of the samples or a group of consecutive new samples, comprising a predefined number J of samples, with 1<J<N providing, for each new sample x.sub.n, an order index n indicating which one of the 1 to N samples has been received, wherein n in 1, . . . , N, proving, for each new sample, a corresponding DFT vector {right arrow over (d)}.sup.(n), wherein the DFT vector {right arrow over (d)}.sup.(n) is selected or generated depending on the order index n of the sample, wherein the DFT vector {right arrow over (d)}.sup.(n) comprises P phasor values that are derived from frequency points f.sub.p of the P-dimensional DFT by S*exp(i 2 f.sub.p t.sub.n) with p in 1, . . . , P the index of the phasor value in the DFT vector {right arrow over (d)}.sup.(n) and S a scaling factor and t.sub.n the sampling time of the new sample x.sub.n and i the imaginary unit with i.sup.2=1; applying the respective new sample x.sub.n as a multiplication factor to its corresponding DFT vector {right arrow over (d)}.sup.(n) for generating a respective spectral contribution vector {right arrow over (y)}.sup.(n)={right arrow over (d)}.sup.(n) x.sub.n; adding the respective spectral contribution vector {right arrow over (y)}.sup.(n) to an accumulation vector {right arrow over (y)}.sup.(n)={right arrow over (y)}.sup.(n)+{right arrow over (y)}.sup.(n-1), when for all N samples their corresponding resulting contribution vector has been added to the accumulation vector, providing the accumulation vector {right arrow over (y)}.sup.(N) as DFT spectral coefficients of the N samples.
2. The method according to claim 1, further comprising deleting the respective new sample when the corresponding contribution vector for that sample is calculated and deleting the respective contribution vector after adding it to the accumulation vector, such that at no point in time all N samples x.sub.n, with n in 1, . . . , N, nor their resulting contribution vector {right arrow over (y)}.sup.(n) are stored together in the processor circuit.
3. The method according to claim 1, further comprising: generating at least some or all of the samples at sampling times with constant sampling period t.sub.0, resulting in t.sub.n=t.sub.n-1+t.sub.0 for n in 2, . . . N and t.sub.1 an initial time value, in particular t.sub.1=0; and generating the respective DFT vector {right arrow over (d)}.sup.(n) for the respective sample x.sub.n of order index n using a P-dimensional base DFT vector {right arrow over (d)}.sup.(0) and the DFT vector {right arrow over (d)}.sup.(n-1) by applying an element-wise multiplication {right arrow over (d)}.sup.(n)=diag{{right arrow over (d)}.sup.(0)}{right arrow over (d)}.sup.(n-1), if n>1 and diag{} the diagonal matrix, wherein {right arrow over (d)}.sup.(0) comprises phasor elements exp(i 2 f.sub.p t.sub.0) with p in 1, . . . , P.
4. The method according to claim 1, further comprising: generating at least some or all of the samples at non-equidistant sampling times t.sub.n; providing a rasterized time pattern by defining a minimum time step width {circumflex over (t)}.sub.0; and generating the respective DFT vector {right arrow over (d)}.sup.(n) for the respective sample of order index n using a P-dimensional base DFT vector {right arrow over ({circumflex over (d)})}.sup.(0) and the DFT vector {right arrow over (d)}.sup.(n-1) by applying a element-wise multiplication, wherein {right arrow over ({circumflex over (d)})}.sup.(0) comprises phasor elements exp(i 2 f.sub.p {circumflex over (t)}.sub.0) with p in 1, . . . , P and a time difference t.sub.nt.sub.n-1 of sampling time of the last sample x.sub.n and the preceding sample x.sub.n-1 is expressed as the integer multiple or the next larger integer multiple or the next smaller integer multiple
5. The method according to claim 1, further comprising: generating at least some or all of the samples at non-equidistant sampling times t.sub.n; and keeping stored M>1 pre-calculated vectors diag{{right arrow over ({circumflex over (d)})}.sup.(m)} for different time values {{circumflex over (t)}.sub.1, . . . , {circumflex over (t)}.sub.M} are kept stored in memory as {right arrow over ({circumflex over (d)})}.sup.(m), m=1 . . . M, with phasor elements exp(i 2 f.sub.p {circumflex over (t)}.sub.m), p=1, . . . , P, and for a given sample x.sub.n at sampling time t.sub.n the vector for index m=arg min|{t.sub.nt.sub.n-1{circumflex over (t)}.sub.m}| with the closest time-difference is applied by element-wise multiplication to the preceding DFT vector for providing the DFT vector {right arrow over (d)}.sup.(n)=diag{{right arrow over ({circumflex over (d)})}(m)}{right arrow over (d)}.sup.(n-1) for n>1.
6. The method according to claim 1, further comprising receiving the new sample x.sub.n from a first channel .sub.1 giving a new first-channel sample x(t.sub.n, .sub.1) and receiving together with this new first-channel sample at least one further new sample x(t.sub.n, .sub.c) for at least one further channel c, such that overall a respective new sample of C channels are received and transforming the new samples x(t.sub.n, .sub.c), c=1, . . . , C, together for each channel, c=1, . . . , C.
7. The method according to claim 1, further comprising: generating at least some or all of the samples at non-equidistant sampling times t.sub.n; and providing for M>1 a set of possible time step widths
8. The method according to claim 1, further comprising: generating at least some or all of the samples at non-equidistant sampling times t.sub.n; and successively approximating the respective time difference t.sub.nt.sub.n-1 of two consecutive samples x.sub.n-1 and x.sub.n, wherein for a maximum time difference max {t.sub.nt.sub.n-1}={circumflex over (t)} for the respective order index n and a time difference resolution of M bits, a minimum time step becomes
9. The method according to claim 1, further comprising providing the DFT as a IIR filter-bank implementation of the sample-wise DFT.
10. The method according to claim 1, further comprising: providing the radar signal by a radar sensor; and providing, by the processor circuit, the DFT spectral coefficients to a assistance system that controls driving motions of a vehicle and that detects at least one object in an environment of the vehicle based on the DFT spectral coefficients.
11. A processor circuit for applying a P-dimensional discrete Fourier transform (DFT) to a sequence of N samples of a sensor signal, with P, N>2, and configured to: receive one of the samples at a time; and perform the following in response to receiving a new one of the samples or a group of consecutive new samples, comprising a predefined number J of samples, with 1<J<N provide, for each new sample x.sub.n, an order index n indicating which one of the 1 to N samples has been received, wherein n in 1, . . . , N, prove, for each new sample, a corresponding DFT vector {right arrow over (d)}.sup.(n), wherein the DFT vector {right arrow over (d)}.sup.(n) is selected or generated depending on the order index n of the sample, wherein the DFT vector {right arrow over (d)}.sup.(n) comprises P phasor values that are derived from frequency points f.sub.p of the P-dimensional DFT by S*exp(i 2 f.sub.p t.sub.n) with p in 1, . . . , P the index of the phasor value in the DFT vector {right arrow over (d)}.sup.(n) and S a scaling factor and t.sub.n the sampling time of the new sample x.sub.n and i the imaginary unit with i.sup.2=1; apply the respective new sample x.sub.n as a multiplication factor to its corresponding DFT vector {right arrow over (d)}.sup.(n) for generating a respective spectral contribution vector {right arrow over (y)}.sup.(n)={right arrow over (d)}.sup.(n)x.sub.n; and add the respective spectral contribution vector {right arrow over (y)}.sup.(n) to an accumulation vector {right arrow over (y)}.sup.(n)={right arrow over (y)}.sup.(n)+{right arrow over (y)}.sup.(n-1), when for all N samples their corresponding resulting contribution vector has been added to the accumulation vector, provide the accumulation vector {right arrow over (y)}.sup.(N) as DFT spectral coefficients of the N samples.
12. A RADAR device, comprising: a sensor for generating a sensor signal; and a processor circuit for applying a P-dimensional discrete Fourier transform (DFT) to a sequence of N samples of the sensor signal, with P, N>2, and configured to receive one of the samples at a time, and perform the following in response to receiving a new one of the samples or a group of consecutive new samples, comprising a predefined number J of samples, with 1<J<N provide, for each new sample x.sub.n, an order index n indicating which one of the 1 to N samples has been received, wherein n in 1, . . . , N, prove, for each new sample, a corresponding DFT vector {right arrow over (d)}.sup.(n), wherein the DFT vector {right arrow over (d)}.sup.(n) is selected or generated depending on the order index n of the sample, wherein the DFT vector {right arrow over (d)}.sup.(n) comprises P phasor values that are derived from frequency points f.sub.p of the P-dimensional DFT by S*exp(i 2 f.sub.p t.sub.n) with p in 1, . . . , P the index of the phasor value in the DFT vector {right arrow over (d)}.sup.(n) and S a scaling factor and t.sub.n the sampling time of the new sample x.sub.n and i the imaginary unit with i.sup.2=1; apply the respective new sample x.sub.n as a multiplication factor to its corresponding DFT vector {right arrow over (d)}.sup.(n) for generating a respective spectral contribution vector {right arrow over (y)}.sup.(n)={right arrow over (d)}.sup.(n) x.sub.n; and add the respective spectral contribution vector {right arrow over (y)}.sup.(n) to an accumulation vector {right arrow over (y)}.sup.(n)={right arrow over (y)}.sup.(n)+{right arrow over (y)}.sup.(n-1), when for all N samples their corresponding resulting contribution vector has been added to the accumulation vector, provide the accumulation vector {right arrow over (y)}.sup.(N) as DFT spectral coefficients of the N samples.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0055] In the following an exemplary implementation of the invention is described. The figures show:
[0056]
[0057]
[0058]
[0059]
[0060]
[0061]
[0062]
[0063]
[0064]
[0065]
[0066]
[0067]
DETAILED DESCRIPTION
[0068] In the embodiment described below, the described components of the embodiment each represent individual features which are to be considered independently of each other and which each develop the disclosure also independently of each other and thereby are also to be regarded as a component of the disclosure in individual manner or in another than the shown combination. Furthermore, the described embodiment can also be supplemented by further features of the disclosure already described.
[0069] In the figures elements that provide the same function are marked with identical reference signs.
1. General Setup
[0070]
[0071]
[0074] This is repeated as long as all time samples 1, 2, . . . , N of consideration are processed to obtain the DFT-transformed signal for the period t.sub.1, t.sub.2, . . . , t.sub.N.
2. Description: From DFT to Streaming DFT
[0075] A signal sampled at time instants t.sub.1, . . . , t.sub.N as given by vector
shall be transformed over the given period via a DFT. With the DFT matrix
with N the number of time samples, t.sub.1, . . . , t.sub.N the sampling time instants, P the number of frequencies and f.sub.1, . . . , f.sub.p the frequency points, the DFT of {right arrow over (x)}(1) follows from
This, however, requires the full vector {right arrow over (x)}, i.e., all signal samples have to be stored until the last sample N is available before invoking the DFT computation.
[0076] In lieu of capturing firstly all time samples, the contribution of each sample to the DFT spectrum can be computed per each time instant separatelyor per subset of all time samples as discussed later. The individual samples Sample 1 to Sample N of a signal sampled in time are consecutively fed to an outer-product component. It consecutively multiplies each sample x.sub.n=x(t.sub.n) with the respective DFT vector
with n=1, . . . , N. The DFT vector {right arrow over (d)}.sup.(n) corresponds with the n-th column of the DFT matrix {tilde over (D)}(2). The output vector
is then added to the spectrum {right arrow over (y)}.sup.(n-1) that has been obtained for the period t.sub.1 . . . t.sub.n-1. Thus
yields the spectrum for the period t.sub.1 . . . t.sub.n with {right arrow over (y)}.sup.(0)={right arrow over (0)}.
[0077]
in (4).
[0078] Equation (6) can be considered a difference equation of an infinite impulse response (IIR) filter bank. Each frequency point f.sub.p corresponds with an IIR filter that comprises an adaptive filter coefficient in the forward branch. For each element in
represents a frequency point of the spectrum, the p-th frequency point is obtained from
[0079]
which reduce to a single adaptive coefficient and the feedback coefficients read
[0080]
[0081] The implementation of the vector difference equation (6) as an adaptive IIR filter bank is depicted in
(9).
3. Algorithmic Implementation
[0082] for DFT matrix {tilde over (D)} and DFT vectors {right arrow over (d)}.sup.(n),
for {right arrow over (x)} and
for the spectral vectors {right arrow over (y)}.sup.(n), {right arrow over (y)}.sup.(0) and {right arrow over (y)}.sup.(n) with p=1, . . . , P and n=1, . . . , N.
[0083] The data flow of an embodiment of the streaming DFT algorithm is portrayed in
[0095] The advantage of a step-wise DFT computation lies in the reduced memory consumption needed for the signal samples x.sub.1, . . . , x.sub.N. As the spectral contribution of each sample is computed upon its availability, only a single value x.sub.n needs to be stored. Yet the total memory consumption is still high for storing PN elements of the DFT matrix.
[0096] The memory usage can be further reduced if an equi-distant sampling is given, i.e.,
with t.sub.0 the sampling period. Then, the DFT vector {right arrow over (d)}.sup.(n) for a certain time instant t.sub.n can be obtained from the previous DFT vector {right arrow over (d)}.sup.(n-1) for the previous time instant t.sub.n-1 by
with {right arrow over (d)}.sup.(1) the initial DFT vector and the phasor's vector
diag{} denotes the diagonal matrix. {right arrow over (d)}.sup.(n) (12) basically follows from {right arrow over (d)}.sup.(n-1) by element-wise multiplication with {right arrow over (d)}.sup.(0) or
[0097] The initial or 1st DFT vector {right arrow over (d)}.sup.(1) can be set for an arbitrary time instant t.sub.1.
[0098] for DFT vectors {right arrow over (d)}.sup.(n),
for {right arrow over (x)} and
for the spectral vectors {right arrow over (y)}.sup.(n), {right arrow over (y)}.sup.(0) and {right arrow over (y)}.sup.(n) with p=1, . . . , P and n=1, . . . , N.
[0099]
[0100] The algorithm works as follows: [0101] t=t.sub.1: Select the initial DFT vector {right arrow over (d)}.sup.(1) for an arbitrary time t.sub.1. For example,
{right arrow over (y)}.sup.(N) can then be used as the DFT of {right arrow over (x)}.
[0115]
[0116]
4. Application to Sequences of Channel Impulse Responses
[0117] Let the input signal be a matrix
with channel index c=1, . . . , C. In the following, without lack of generality, {tilde over (x)} is considered a matrix of sampled channel impulse responses. .sub.c hence is the delay of the c-th path in a multipath environment. Each row of {tilde over (x)}
represents the channel impulse response at time instant t.sub.n.
[0118] The spectrum of {tilde over (x)} along the time dimension t follows from
which is the equivalent to (3) in matrix notation with D given by (2). The sample-wise DFT per time instant t.sub.n can therefore computed by means of {right arrow over (d)}.sup.(n) (4) and the matrix' equivalent to (5) and (6):
For an equidistant sampling with period t.sub.0 along t, {right arrow over (d)}.sup.(n) in (19) is obtained from (12) and (13).
[0119] {tilde over (y)}.sup.(n) (19) represents the spectrum of {tilde over (x)} for the period t.sub.1, . . . , t.sub.N with {tilde over (y)}.sup.(0)={tilde over (0)} for all path delays .sub.1, . . . , .sub.c. As {tilde over (x)} is considered a matrix of channel impulse responses, {tilde over (y)} becomes the path-delay Doppler spectrum, which is also known as scattering function or range-Doppler map. Nevertheless, the sample-wise DFT can be applied to any other signal matrix.
5. Algorithmic Implementation: Matrix
[0120] for DFT vectors {right arrow over (d)}.sup.(0) and {right arrow over (d)}.sup.(n),
for {tilde over (x)} and
and for the spectral matrices {tilde over (y)}.sup.(n) and {tilde over (y)}.sup.(n) with p=1, . . . , P, n=1, . . . , N and j=1, . . . , J.
[0121] The data flow of an embodiment of the streaming DFT algorithm applied to a signal matrix is portrayed in
{tilde over (y)}.sup.(N) can then be used as the column-wise DFT of {tilde over (x)}.
6. Consideration of Multiple Samples in Time
[0136] for DFT phasor {right arrow over (d)}.sup.(0),
for initial DFT matrix {tilde over (D)}.sup.(1) and
for the spectral matrices {right arrow over (y)}.sup.(n) and {tilde over (y)}.sup.(n) with p=1, . . . , P, n=1, . . . , {circumflex over (n)} and j=1, . . . , J.
[0137] A generalisation of the streaming DFT as discussed in Sec. 2, 3 and 4 can be done for a time period of more than one sample. That is, not of single but multiple rows of {tilde over (x)}(15) are selected to compute their contribution to the spectrum {tilde over (y)}(17).
[0138] Let {circumflex over (n)} be the window size, i.e., the number of consecutive samples. Then the input signal matrix (15) can written as
with
N is assumed to be an integral multiple of {circumflex over (n)}.
[0139] The contribution of each {tilde over (x)}.sub.l to the spectrum is obtained by
Assuming an equidistant sampling with period t.sub.0, the DFT matrices {tilde over (D)}.sup.(l) can be computed from an initial matrix
and the phasor's vector {right arrow over (d)}.sup.(0) (13). With (25) and (13), the l-th DFT matrix reads
or in recursive form
The spectrum at l-th time window therefore becomes with (22)
with {tilde over (y)}.sup.(1)={tilde over (D)}.sup.(1) {tilde over (x)}.sub.1.
[0140]
[0152] {tilde over (y)}.sup.(L) can then be used as the column-wise DFT of {tilde over (x)}.
7. Implementation for Non-Equidistant Sampling
The DFT matrix as defined by {tilde over (D)}(2) does not imply an equidistant sampling, i.e., in general
For a given period t.sub.1 to t.sub.N the full DFT matrix has to be stored in memory.
[0153] Alternatively, the DFT vector {right arrow over (d)}.sup.(n) (4) can be computed based on its predecessor {right arrow over (d)}.sup.(n-1) as pointed out for the equidistant case in Sec. 3. This can basically be done in two ways: [0154] A minimum step width {circumflex over (t)}.sub.0 is set and {right arrow over (d)}.sup.(n) is obtained from
with
the integer multiple of the time difference t.sub.nt.sub.n-1 over the step width {circumflex over (t)}.sub.0; [] denotes the rounding operator. As a consequence of rounding, the time step {circumflex over (t)}.sub.0, can differ from the actual time difference t.sub.nt.sub.n-1, leading to computation errors in the DFT. {circumflex over (t)}.sub.0, is therefore assumed to be a little fractional of the minimum time difference expected, for example,
[0155] Whilst in this case {right arrow over ({circumflex over (d)})}.sup.(0) (32) is the only DFT vector to be permanently stored in memory, the computation effort can become high for large . [0156] For reduced computation effort, a set of possible step width
can be put. Then
with
[0157] Descriptively speaking, it is taken that time step {circumflex over (t)}.sub.m that is closest to the time difference t.sub.nt.sub.n-1 of two consecutive samples.
[0158] Compared to the former cases, M DFT vectors need to be permanently stored in memory in favour of reduced computation effort.
[0159] Also combinations of both abovementioned approaches can be applied.
[0160] A certain implementation is based on a successive approximation to the time difference t.sub.nt.sub.n-1 of two consecutive samples. Suppose a maximum time difference
and a time difference resolution of M bits, i.e., the minimum time step becomes
[0161] For a certain time difference t.sub.n-t.sub.n-1<{circumflex over (t)}, a combination of predefined time steps can be obtained.
t.sub.n is to be quantised with M bits. m=1 represents the most significant bit, m=M the least significant bit. [0163] The approximations starts with a time difference of .sub.1=t.sub.n. [0164] The quantisation level is defined by
For m=1, it becomes
with
the quantised time difference. denotes the floor operator. For m=1,
with w.sub.m{0,1} for m=1, . . . , M.
[0167] For a set of possible step widths (35) following from (41)
the quantised time difference follows from
This can be mapped to the sub-set of predefined DFT vectors (37) needed to obtain the DFT vector {right arrow over (d)}.sup.(n) for the current time instant t.sub.n:
That is, only those predefined vectors {right arrow over ({circumflex over (d)})}.sup.(m) are selected for which w.sub.m=1.
[0168] An implementation for dynamically DFT coefficient calculations for non-equidistant sampling is depicted in
[0169]
[0170]
[0171]
[0172] Whenever the processor circuit 20 receives a new sample 19, a timestamp may be associated with the sample 19 indicating, e.g., the time of reception or generation. The processor circuit 20 can transform the samples 19 into DFT coefficients 21 using one or more of the described procedures thus applying the SDFT.
[0173] An assistance system 22, e.g. an autonomous driving function or a driver assistance system, can use the DFT coefficients 21 for detecting the objects 12 and/or for analyzing the relative distance and/or velocity of the objects 12 with regard to the sensor 16. Using the DFT coefficients 21 and by a procedure known from the prior art the assistance system 22 can calculate a driving trajectory 23 for avoiding a collision with the objects 12. For controlling the vehicle 10 such that it follows the trajectory 23, the assistance system 22 can generate control commands 24 that control or influence at least one actuator 25 of the vehicle 10, e.g. a brake and/or a steering and/or an engine.
[0174] Overall, the example shows how an implementation of a Streaming Discrete Fourier Transform, SDFT, is provided by the invention.
REFERENCE SIGNS
[0175] 10 vehicle [0176] 11 environment [0177] 12 objects [0178] 13 sensor device [0179] 14 emitted radar waves [0180] 15 received radar waves [0181] 16 sensor [0182] 17 sensor signal [0183] 18 analog-to-digital conversion [0184] 19 sample [0185] 20 processor circuit [0186] 21 DFT coefficients [0187] 22 assistance system [0188] 23 driving trajectory [0189] 24 control commands [0190] 25 actuator