ACOUSTIC FEEDBACK CONTROL METHOD WITH ADAPTIVE FILTERING
20230224637 · 2023-07-13
Inventors
Cpc classification
H04R3/02
ELECTRICITY
G06F3/167
PHYSICS
International classification
H04R3/02
ELECTRICITY
Abstract
An acoustic feedback control adaptive method, the input signal being a function of a captured signal and an estimation of an acoustic feedback, the method including the following steps: —determining an impulse response (RI) of a filter (A) according to a partition of time blocks (b.sub.0, . . . b.sub.i, . . . , b.sub.Nb), according to the following steps of: —for each sub-block (h.sub.1,i, h.sub.2,i, . . . h.sub.j,i, . . . h.sub.Ni,i) of each block of the impulse response (RI), calculating a frequency transform (F.sub.1,i, F.sub.2,i, . . . F.sub.j,i, . . . F.sub.Ni,i); —repeating the following steps of: —applying the filter (A) to the output signal (u) using the frequency transform (F.sub.1,i, F.sub.2,i, . . . F.sub.j,i, . . . F.sub.Ni,i) of each sub-block (h.sub.1,i, h.sub.2,i, . . . h.sub.j,i, . . . h.sub.Ni,i); —updating the frequency transform (F.sub.1,i, F.sub.2,i, . . . F.sub.j,i, . . . F.sub.Ni,i) of each sub-block (h.sub.1,i, h.sub.2,i, . . . h.sub.j,i, . . . h.sub.Ni,i) as a function of the output signal and the input signal based on the same partition as that used in the step of applying the filter (A).
Claims
1. An acoustic feedback control adaptive method in an output signal (u) of a sound broadcasting device (S), the sound broadcasting device (S) receiving as input an input signal (e), the input signal (e) being a function of a signal (y) captured by a microphone and an estimation of an acoustic feedback signal (x), the captured signal (y) being equal to the sum of an acoustic source signal (s) and the acoustic feedback signal (x), the estimation
of the acoustic feedback signal (x) the method including the following steps: determining a filter (A), an impulse response (RI) of the filter (A) being partitioned into a partition comprising a plurality of blocks (b.sub.0, . . . b.sub.i, . . . , b.sub.Nb) in the time domain, each block (b.sub.0, . . . b.sub.i, . . . , b.sub.Nb) of the plurality comprising a number of samples of the impulse response, said number of samples being equal to a size of said block, each block of the plurality of blocks (bi) comprising a number (Ni) of sub-blocks (h.sub.1,i, h.sub.2,i, . . . h.sub.j,i, . . . h.sub.Ni,i), the number (Ni) of sub-blocks (h.sub.1,i, h.sub.2,i, . . . h.sub.j,i, . . . h.sub.Ni,i) being greater than or equal to one, the determination step further comprising the following steps of: for each sub-block (h.sub.1,i, h.sub.2,i, . . . h.sub.j,i, . . . h.sub.Ni,i) of each block of the impulse response (RI), calculating a frequency transform (F.sub.1,i, F.sub.2,i, . . . F.sub.j,i, . . . F.sub.Ni,i) from said sub-block (h.sub.1,i, h.sub.2,i, . . . h.sub.j,i, . . . h.sub.Ni,i); repeating the following steps of: applying the filter (A) to the output signal (u) using the frequency transform (F.sub.1,i, F.sub.2,i, . . . F.sub.j,i, . . . F.sub.Ni,i) of each sub-block (h.sub.1,i, h.sub.2,i, . . . h.sub.j,i, . . . h.sub.Ni,i) of each block of the impulse response (RI), to obtain the estimation
of the acoustic feedback signal (x); adapting the filter (A), by updating the frequency transform (F.sub.1,i, F.sub.2,i, . . . F.sub.j,i, . . . F.sub.Ni,i) of each sub-block (h.sub.1,i, h.sub.2,i, . . . h.sub.j,i, . . . h.sub.Ni,i) of each block of the impulse response (RI) as a function of the output signal (u) and the input signal (e), wherein: the adaptation of the filter (A) is carried out by an update of the frequency transform calculated and adapted based on the same partition as that determined in the determination step and used in the step of applying the filter (A).
2. The method according to claim 1, wherein the size of a block (b.sub.0, . . . b.sub.i, . . . , b.sub.N) is different from another size of at least one other block (b.sub.0, . . . b.sub.i, . . . , b.sub.Nb).
3. The method according to claim 1, wherein each sub-block (h.sub.1,i, h.sub.2,i, . . . h.sub.j,i, . . . h.sub.Ni,i) of said block has the same size (Mi) as the other sub-blocks of said block, so that the size of a block (bi) is equal to (Ni*Mi).
4. The method according to claim 1, wherein the calculation of the frequency transform of a sub-block (h.sub.1,i, h.sub.2,i, . . . h.sub.j,i, . . . h.sub.Ni,i) of a block of the impulse response (RI) includes the following steps: creating a concatenated sub-block by concatenating said sub-block (h.sub.1,i, h.sub.2,i, . . . h.sub.j,i, . . . h.sub.Ni,i) with virtual samples, such that a size of the concatenated sub-block is equal to at least twice the size of said sub-block; and calculating the frequency transform (F.sub.1,i, F.sub.2,i, . . . F.sub.j,i, . . . F.sub.Ni,i) of the concatenated sub-block created for said sub-block (h.sub.1,i, h.sub.2,i, . . . h.sub.j,i, . . . h.sub.Ni,i);
5. The method according to claim 1, wherein the output signal (u), the input signal (e), respectively comprise a plurality of samples (u(n)), (e(n)) in the time domain, each sample of said plurality (u(n)), respectively (e(n)), corresponding to one value, at successive instants (n), of the output signal (u), respectively of the input signal (e), and wherein the determination step further includes the following steps: (ET2) creating a plurality of components (B2(0), B2(1), . . . , B2(i), . . . , B2(Nb)), the plurality of components (B2(0), B2(1), . . . , B2(i), . . . , B2(Nb)) comprising a non-delayed component (B2(0)) associated with a non-delayed block of the partition, and at least one delayed component (B2(1), . . . , B2(i), . . . , B2(Nb)), the non-delayed component (B2(0)) comprising a non-delayed output buffer (w.sub.0), the at least one delayed component (B2(1), . . . , B2(i), . . . , B2(Nb)) comprising a delayed output buffer (w.sub.1, . . . , w.sub.i, . . . , w.sub.Nb); (ET3) creating a plurality of source buffers (B3(0), B3(1), . . . , B3(i), . . . , B3(Nb)), each source buffer being associated with a block of the partition; and wherein the adaptation step comprises the following steps of: (ET24c) calculating a frequency transform (S.sub.0, S.sub.1, . . . S.sub.i, . . . S.sub.Nb) of the output buffer contents (w.sub.0, w.sub.1, . . . , w.sub.i, . . . , w.sub.Nb); (ET24d) inserting the frequency transform S.sub.i in a ring buffer (U.sub.i) configured to contain a history of the frequency transforms (U.sub.0,i, U.sub.2,i, . . . , U.sub.j,i, . . . , U.sub.Ni,i) calculated in step (E24c) during the Ni last iterations of step (E24c), for a number of iterations (Ni) determined according to the number of sub-blocks of the block associated with the component (B2(0), B2(1), . . . , B2(i), . . . , B2(Nb)); (ET33) for each source buffer of the plurality of source buffers (B3(0), B3(1), . . . , B3(i) . . . , B3(Nb)), calculating a frequency transform (E.sub.0, E.sub.1, . . . , E.sub.i, . . . E.sub.Nb) from said source buffer (B3(0), B3(1), . . . , B3(i), . . . , B3(Nb)); (ET4) updating the frequency transform (F.sub.1,i, F.sub.2,i, . . . F.sub.j,i, . . . F.sub.Ni,i) of each sub-block (h.sub.1,i, h.sub.2,i, . . . h.sub.j,i, . . . h.sub.Ni,i) of each block (b.sub.1, . . . b.sub.i, . . . , b.sub.Nb) of the impulse response (RI) from the ring buffer, obtained in step (ET2), and from the frequency transform (E.sub.0, E.sub.1, . . . , E.sub.i, . . . E.sub.Nb) calculated from the source buffers in step (ET33).
6. The method according to claim 5, wherein the non-delayed component (B2(0)) comprises a first non-delayed buffer (u.sub.0) and a second non-delayed buffer (v.sub.0), the at least one delayed component (B2(1), . . . , B2(i), . . . , B2(Nb)) comprising a first delayed buffer (u.sub.1, . . . , u.sub.i, . . . , u.sub.Nb), and a second delayed buffer (v.sub.1, . . . , v.sub.i, . . . , v.sub.Nb), and wherein the method includes the following steps: (ET1) creating a plurality of FIFO buffers (B1(1), . . . , B1(i), . . . , B1(Nb)), each FIFO buffer (B1(1), . . . , B1(i), . . . , B1(Nb)) being associated with a block (b.sub.1, . . . b.sub.i, . . . , b.sub.Nb) of the partition, and having a depth (R.sub.1, R.sub.2, . . . , R.sub.i, . . . R.sub.Nb) equal to the size of said block of the partition, the depth (R.sub.1, R.sub.2, . . . , R.sub.i, . . . R.sub.Nb) defining a number of samples (u(n)) of the output signal (u) which may be backed up in said FIFO buffer, the at least one delayed component (B2(1), . . . , B2(i), . . . , B2(Nb)) being associated with a FIFO buffer and with the partition block associated with said FIFO buffer; and wherein the adaptation step comprises the following steps, carried out before step (ET24c), of: (ET21) at each instant (n), backing up the corresponding sample (u(n)) of the output signal (u) in the first non-delayed buffer (u.sub.0) of the non-delayed component (B2(0)), until the first non-delayed buffer (u.sub.0) is full; (ET22) in each FIFO buffer (B1(1), . . . , B1(i), . . . , B1(Nb)) of the first plurality of FIFO buffers, and for each instant (n), backing up the samples (u(n)) of the output signal (u), until said buffer is full, with at least one last sample (u(n)) backed up in said buffer and the delayed sample (u(n-Ri)) backed up first in said buffer; (ET23) for each delayed component of the plurality of components (B2(1), . . . , B2(i), . . . , B2(Nb)), at each instant (n) following the instant when the FIFO buffer associated with said delayed component is full, backing up the delayed sample (u(n-Ri)) of said FIFO buffer in the first delayed buffer (u.sub.1, . . . , u.sub.i, . . . , u.sub.Nb) of said delayed component (B2(1), . . . , B2(i), . . . , B2(Nb)), until said first delayed buffer (u.sub.1, . . . , u.sub.i, . . . , u.sub.Nb) is full; (ET24) for each component of the plurality of components (B2(0), B2(1), . . . , B2(i), . . . , B2(Nb)): (ET24a) when the first buffer (u.sub.0, u.sub.1, . . . , u.sub.i, . . . , u.sub.Nb) is full, if the second buffer (v.sub.1, . . . , v.sub.i, . . . , v.sub.Nb) of said component is empty, copying said first buffer (u.sub.0, u.sub.1, . . . , u.sub.i, . . . , u.sub.Nb) in the second buffer (v.sub.1, . . . , v.sub.i, . . . , v.sub.Nb) of said component, and repeating the steps (ET1), (ET2), (ET3), (ET4) until the first buffer (u.sub.0, u.sub.1, . . . , u.sub.i, . . . , u.sub.Nb) is full again; (ET24b) if the second buffer (v.sub.1, . . . , v.sub.i, . . . , v.sub.Nb) of said component is not empty, forming the output buffer (w.sub.0, w.sub.1, . . . , w.sub.i, . . . , w.sub.Nb) by concatenating the first and second buffers of said component (B2(0), B2(1), . . . , B2(i), . . . , B2(Nb)) so that wi=[vi ui];
7. The method according to claim 5, wherein the adaptation step further includes the following steps: (ET31) for each source buffer of the plurality of source buffers (B3(0), B3(1), . . . , B3(i), . . . , B3(Nb)), at each instant (n), backing up the corresponding sample e(n) of the input signal (e) in said source buffer (B3(0), B3(1), . . . , B3(i), . . . , B3(Nb)), until said source buffer (B3(0), B3(1), . . . , B3(i), . . . , B3(Nb)) is full; (ET32) for each source buffer of the plurality of source buffers (B3(0), B3(1), . . . , B3(i), . . . , B3(Nb)), creating a concatenated source buffer by concatenating virtual source samples having the same virtual source sample value with said source buffer (B3(0), B3(1), . . . , B3(i), . . . , B3(Nb)), so that a size of the concatenated source buffer is equal to twice the size of said source buffer (B3(0), B3(1), . . . , B3(i), . . . , B3(Nb)); and wherein the calculation (ET33) of a frequency transform (E.sub.0, E.sub.1, . . . , E.sub.i, . . . E.sub.Nb) from said source buffer (B3(0), B3(1), . . . , B3(i), . . . , B3(Nb)) is carried out from the concatenated source buffer created for each source buffer of the plurality of source buffers (B3(0), B3(1), . . . , B3(i), . . . , B3(Nb)).
8. The method according to claim 1, wherein the frequency transform is a Fourier transform.
9. A computer program comprising a set of instructions executable by a computer processor, the set of instructions being configured to implement the steps of the method according to claim 1 when the set of instructions is executed by the computer processor.
10. A computer-readable medium, comprising a set of instructions executable by a computer processor, the set of instructions being configured to implement the steps of the method according to claim 1, when the set of instructions is executed by the computer processor.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0057] For a better understanding thereof, an embodiment and/or an implementation of the disclosure is described with reference to the attached drawings representing, by way of non-limiting example, an embodiment or an implementation respectively of a device and/or a method according to the disclosure. The same references in the drawings refer to similar elements or elements whose functions are similar.
[0058]
[0059]
[0060]
[0061]
DETAILED DESCRIPTION OF THE DRAWINGS
[0062] An acoustic feedback control system is often also called AFC system according to the Anglo-Saxon terminology referring to an Acoustic Feedback Cancellation or anti-feedback system. The general principle of an AFC system is shown in
[0063] Hereinafter, s(n) refers to the value of the signal s at the instant t=nΔt, Δt being the sampling period common to all the signals. Thus, in of x(n), which is subtracted from y(n). The resulting signal e(n) output from the AFC algorithm is an estimation of the direct contribution of the source s(n).
[0064] The system according to the disclosure further comprises an adapter B configured to update in real-time the estimation of the transfer function {circumflex over (F)} of the acoustic feedback from the signals u(n) and e(n), and to transmit it to A.
[0065]
[0066] The algorithm is based on a partitioning of the impulse response RI, a partitioning which is schematically represented in
[0067] The impulse response is divided along the time axis into main blocks b.sub.0, . . . b.sub.i, . . . , b.sub.Nb of variable sizes N.sub.0*M.sub.0, N.sub.1*M.sub.1, . . . , N.sub.i*M.sub.i, . . . , N.sub.Nb*M.sub.Nb.
[0068] Each main block of index i is divided in turn into N.sub.i blocks of the same size M.sub.i.
[0069] h.sub.ji refers to the impulse response portion corresponding to the jth block of the ith size M.sub.i.
[0070] For each portion h.sub.ji of RI with a size M.sub.i, said portion is concatenated with M.sub.i zeros, so that the size of the concatenated portion is 2Mi; then a Fourier transform F.sub.ji of the concatenated portion is calculated.
[0071] Hereinafter, F.sub.i refers to the array of dimension N.sub.i×2M.sub.i which contains the Fourier transforms F.sub.1i, F.sub.2i, . . . , F.sub.N.sub.
[0072] The encoding of the impulse response RI described above must necessarily be performed before a low-latency fast convolution algorithm can be applied, as described in the literature. It must therefore be applied each time the impulse response RI is modified.
[0073] The disclosure with which the claim is concerned consists of an adaptive method which allows directly updating the blocks F.sub.ji, thus avoiding having to perform the above-described encoding steps at each update, as would be required by a conventional algorithm.
[0074] In other words, according to one implementation and with reference to
[0081] the method 100 being characterized in that the adaptation 103 of the filter A being carried out directly by an update of the Fourier transform based on the same partition as that determined in the determination step 101, and used in the application step 102 of the filter A.
[0082] The adaptive method thus involves two main components:
[0083] The component or filter A filters the signal u(n) by applying a fast convolution algorithm with non-uniform partitioning of the impulse response.
[0084] The component or adapter B updates the estimation of the transfer function of the acoustic feedback from the signals u(n) and e(n), and transmits it to A.
[0085] The adapter B can for example comprise the following components, created according to one implementation, during the determination step 101, which comprises for example the following steps, described with reference to
[0089] According to one implementation, the steps of adapting 103 the filter A by the adapter B are described in detail below with reference to
[0102] According to one implementation, the step ET4 of updating the Fourier transform of each sub-block of each block of the impulse response from the first ring buffer obtained in step ET2 and from the buffer obtained in step ET33, is carried out by applying an adaptive method in the frequency domain.
[0103] This operation is performed every M.sub.i samples, when the data blocks U.sub.i and E.sub.i respectively from the components B2[i] and B3[i] are full. The adaptation can for example be performed by the Fast Block LMS algorithm:
[0104] Loop on j=1 to N.sub.i:
[0105] Calculation of the product of the conjugate of E.sub.i and the j.sup.th element U.sub.ji of U.sub.i
[0106] Calculation of the inverse FFT, zero setting of the M.sub.i last elements, calculation of the FFT
[0107] Multiplication by 2μ.sub.i (step size). The result is denoted ΔF.sub.ji
[0108] Addition of ΔF.sub.ji to the j.sup.th element of F.sub.i:F.sub.ji+ΔF.sub.ji.fwdarw.F.sub.ji
[0109] Other more advanced adaptive algorithms can be applied (for example NLMS, with or without regularization).
[0110] The principle consisting in using different block sizes, common to the convolution and the adaptation, supposes choosing adaptation parameter sets, including in particular the parameter μ.sub.i, specific to each size M.sub.i while ensuring the consistency of the estimation.
[0111] Several steps can be followed in choosing these parameter sets; it is possible to obtain a different convergence speed at the beginning and the end of the response, which can be favourable in practice.
[0112] The suggested acoustic feedback control algorithm is thus of the PBFDAF type, i.e. according to the Anglo-Saxon terminology “Partitioned Block Frequency Domain Adaptive Filter”. However, unlike existing methods, its particularity is to perform the convolution and adaptation processing operations with the same non-uniform partition of the impulse response of the acoustic feedback. The use of a non-uniform partition allows significantly reducing the complexity compared to existing PBFDAF algorithms, with equivalent latency and filter order. Unlike an UN-PBDAF-type algorithm, in which only the convolution is performed on a non-uniform partitioning, adopting the same partitioning for the convolution and the adaptation makes it possible to avoid having to explicitly calculate the impulse response in the time domain, which reduces complexity.
[0113] According to another aspect, the disclosure concerns a computer program comprising a set of instructions executable by a computer processor, the set of instructions being configured to implement the steps of the method according to any one of the preceding claims when the set of instructions is executed by the computer processor.
[0114] According to yet another aspect, the disclosure concerns a computer-readable medium, comprising a set of instructions executable by a computer processor, the set of instructions being configured to implement the steps of the method according to any one of the implementations described above, when the set of instructions is executed by the computer processor.