A method for adaptive filtering, computer equipment and device

By combining the current frame reference signal with the historical frame reference signal in the adaptive filtering algorithm, and updating the filter coefficients according to the preset division length, the problem of uneven calculation amount is solved, and the filtering effect and algorithm efficiency are improved.

CN112260662BActive Publication Date: 2025-04-01ZHEJIANG DAHUA TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202010968471.7
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2020-09-15
Publication Date
2025-04-01
Estimated Expiration
2040-09-15

AI Technical Summary

Technical Problem

In the adaptive filtering algorithm, the calculation amount during the filter coefficient update process is uneven, resulting in excessive system load, which may lead to algorithm failure and system crash.

Method used

By combining the current frame reference signal with the historical frame reference signal, the current frame reference signal set is formed, and the filter coefficients are updated according to the preset division length, so that the calculation amount of each filter coefficient update is equal, and the calculation amount is avoided uneven.

Benefits of technology

It effectively avoids the retention of some signal data, and the calculation amount of each filter coefficient update is uniform, which improves the efficiency and effect of the update algorithm.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN112260662B_ABST
    Figure CN112260662B_ABST
Patent Text Reader

Abstract

The present application discloses an adaptive filtering method, including: obtaining a current frame input signal, a current frame reference signal and a current frame filter coefficient; combining the current frame reference signal with a historical frame reference signal to obtain a current frame reference signal set; adaptively filtering the current frame input signal based on the current frame reference signal and the current frame filter coefficient, updating the current frame filter coefficient according to a preset division length based on the current frame reference signal set and the current frame input signal to obtain the filter coefficient of the subsequent frame; wherein the current frame reference signal set and the historical frame reference signal set contain at least two parts with the same data, and the product of the interval frame number between the historical frame and the current frame and the division length is equal to the product of the difference between the at least two parts and the length of the current frame input signal. Through the above method, the present application can avoid uneven calculation amount during filtering and improve the filtering effect.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of filtering, and in particular to an adaptive filtering method, computer equipment and device. Background Art

[0002] As we all know, audio communication has become a common method of information exchange in people's work and life. When people use mobile phones to turn on hands-free calls or video conferencing terminals for video conferencing, the sound played by the speaker will be collected by the microphone again due to the external sound, resulting in echo. The echo signal will seriously affect the communication quality and reduce the accuracy of speech recognition. Therefore, it is necessary to take effective measures to suppress the echo and improve the communication quality.

[0003] Usually, an adaptive filtering algorithm (echo cancellation algorithm) is used to filter the collected signal to eliminate the echo signal. During the long-term research and development process, the inventor of the present application found that there is a problem of uneven calculation amount in the adaptive filtering algorithm, especially in the algorithm for updating the filter coefficient, for example, the calculation amount increases sharply. When the computing system is overloaded, it is easy to cause the adaptive filtering algorithm to fail or even the system to crash. Summary of the invention

[0004] The main technical problem solved by the present application is to provide an adaptive filtering method, computer equipment and device, which can avoid uneven calculation amount during the filtering process and improve the filtering effect.

[0005] To solve the above technical problems, a technical solution adopted in the present application is: to provide an adaptive filtering method, including: obtaining a current frame input signal, a current frame reference signal and a current frame filtering coefficient; combining the current frame reference signal with a historical frame reference signal to obtain a current frame reference signal set; adaptively filtering the current frame input signal based on the current frame reference signal and the current frame filtering coefficient, and updating the current frame filtering coefficient according to a preset division length based on the current frame reference signal set and the current frame input signal to obtain filtering coefficients for subsequent frames; wherein the current frame reference signal set and the historical frame reference signal set contain at least two parts with the same data, and the product of the number of interval frames between the historical frame and the current frame and the division length is equal to the product of the difference between the at least two parts and the length of the current frame input signal.

[0006] Among them, combining the current frame reference signal with the historical frame reference signal to obtain the current frame reference signal set includes: combining the current frame reference signal with the historical frame reference signal according to a preset update signal block length to obtain multiple current frame reference signal blocks; the current frame reference signal set includes multiple current frame reference signal blocks; wherein the update signal block length is determined by the division length and the current frame input signal length.

[0007] The updated signal block length is not less than the sum of the partition length and the current frame input signal length minus 1.

[0008] The update signal block length is equal to a power of 2.

[0009] Among them, after the step of combining the current frame reference signal with the historical frame reference signal according to the preset update signal block length to obtain multiple current frame reference signal blocks, it includes: dividing the current frame filter coefficient according to the division length to obtain multiple current frame filter coefficient blocks, wherein the current frame filter coefficient blocks correspond to the current frame reference signal blocks one by one; convolving the current frame filter coefficient blocks and the corresponding current frame reference signal blocks to obtain a convolution signal; updating the current frame filter coefficient based on the difference between the current frame convolution signal and the current frame input signal to obtain the filter coefficients of subsequent frames after the current frame.

[0010] Among them, the reference signal sets of the current frame and the historical frame contain at least two reference signal blocks with the same data, namely the first reference signal block and the second reference signal block; the product of the number of interval frames between the historical frame and the current frame and the division length is equal to the product of the difference between the second reference signal block and the first reference signal block and the input signal length of the current frame.

[0011] The division length is one half of the length of each frame input signal; or the division length is twice the length of each frame input signal.

[0012] Among them, the step of combining the current frame reference signal with the historical frame reference signal according to the preset update signal block length to obtain multiple current frame reference signal blocks includes: when the current frame input signal length is 160 and the division length is 80, the current frame input reference signal and the historical frame reference signal are combined in a length of 256 to obtain multiple current frame reference signal blocks; or when the current frame input signal length is 160 and the division length is 320, the current frame input reference signal and the historical frame reference signal are combined in a length of 512 to obtain multiple current frame reference signal blocks.

[0013] In order to solve the above technical problem, another technical solution adopted by the present application is: providing a computer device, including a processor, wherein the processor is used to execute instructions to implement the above adaptive filtering method.

[0014] In order to solve the above technical problems, another technical solution adopted by the present application is: to provide a device with a storage function, the device stores a program, and when the program is executed, the above adaptive filtering method can be implemented.

[0015] The beneficial effect of the present application is that, different from the prior art, the present application provides an adaptive filtering method, which sets the division length in the update of the filter coefficient and makes the division length and the length of the current frame input signal satisfy the constraint relationship. In each update process of the reference coefficient, the current frame input signal can be fully calculated, thereby avoiding the retention of some signal data. Furthermore, the calculation amount of each filter coefficient update is equal, avoiding the problem of uneven calculation amount, and can also effectively improve the update effect of the update algorithm. BRIEF DESCRIPTION OF THE DRAWINGS

[0016] Figure 1 is a flow chart of an adaptive filtering method according to an embodiment of the present application;

[0017] Figure 2 is a flowchart of a filter coefficient updating method according to an embodiment of the present application;

[0018] Figure 3 is a flow chart of a method for determining a division length according to an embodiment of the present application;

[0019] Figure 4 is a schematic diagram of the structure of an adaptive filter according to an embodiment of the present application;

[0020] Figure 5 is a schematic diagram of the structure of a computer device according to an embodiment of the present application;

[0021] Figure 6 It is a structural schematic diagram of a device with storage function according to an embodiment of the present application. DETAILED DESCRIPTION

[0022] In order to make the purpose, technical solution and effect of the present application clearer and more specific, the present application is further described in detail below with reference to the accompanying drawings and examples.

[0023] The embodiments of the present application can be used for echo cancellation processing of audio in audio devices, wherein the audio devices may include but are not limited to mobile communication devices, computers, microphones, etc. It should be understood that the application scenarios of the system and method of the present application are only some examples or embodiments of the present application. For ordinary technicians in this field, without paying creative work, the present application can also be applied to other similar scenarios based on these drawings, such as adaptive filtering of videos or adaptive filtering of other data.

[0024] Adaptive filtering algorithms can use adaptive algorithms to change filter coefficients or structures according to changes in the environment. Among them, the filter coefficients can automatically and continuously adapt to a given signal to obtain a desired response. The update method of the filter coefficients in the adaptive filtering method may include: Least Mean Square (LMS), Recursive Least Square (RLS), Normalized Least Mean Squares (NLMS) or Affine Projection Algorithm (APA). During the update process, the filter coefficients need to be divided into multiple filter coefficient blocks before calculation.

[0025] For example, the length of each frame of input signal can be 160, and the division length of the filter coefficient is 128. Then during the update process, each time the block calculation is performed, only 128 data of the input signal are calculated, and 32 data points will be retained. When the number of retained points reaches 128, two calculations will be performed at that moment, namely the calculation of the current frame input signal and the calculation of the retained points. At this time, the amount of calculation will double. If the algorithm of the adaptive filtering method is more complex, when the budget increases sharply, it will lead to the inability to complete the calculation of all data within the specified time, resulting in algorithm failure or even system crash.

[0026] To solve the above problems, the present application discloses an adaptive filtering method. Figure 1 , Figure 1 FIG. 1 is a flow chart of an adaptive filtering method according to an embodiment of the present application. It should be noted that if there is substantially the same result, this embodiment does not necessarily use Figure 1 The process sequence shown is limited. Figure 1 As shown, the method includes:

[0027] Step S110: Obtain a current frame input signal, a current frame reference signal, and a current frame filter coefficient.

[0028] In one embodiment, the current frame input signal and the current frame reference signal may refer to an input signal and a reference signal acquired in a current time period.

[0029] The input signal can be collected and transmitted by an audio collection device. The audio transmission is generally transmitted in frames of 10ms or 20ms. For example, when the sampling rate of the input audio signal is 16k, the number of discrete points of a frame of input signal data block is 160 points or 320 points. In this case, the length of each frame of input signal can be recorded as 160.

[0030] The reference signal may be obtained from the network. The reference signal used for adaptive filtering may be different in different scenarios. For example, in echo cancellation processing, the reference signal may be the sound signal of the previous frame played by the speaker.

[0031] The filter coefficients in the adaptive filtering method are continuously updated during the filtering process. In one embodiment, the current frame filter coefficients used when processing the current frame input signal can be filter coefficients updated according to the previous frame input signal and the previous frame reference signal. The filter coefficients can be a one-dimensional matrix containing N data.

[0032] Step S120: Combine the current frame reference signal with the historical frame reference signal to obtain a current frame reference signal set.

[0033] In one embodiment, the acquired current frame reference signal is combined with the saved historical frame reference signal to obtain a current frame reference signal set. The historical frame reference signal refers to a reference signal acquired at a moment before the current frame. The historical frame may refer to a moment before the current frame, or any moment before the current frame.

[0034] Each frame of reference signal has a corresponding reference signal set.

[0035] Step S130: Adaptively filter the current frame input signal based on the current frame filter coefficient and the current frame reference signal.

[0036] In one embodiment, the filtering process may be: convolving the current frame filter coefficient with the current frame reference signal to obtain a filtered convolution signal, and subtracting the filtered convolution signal from the current frame input signal to obtain a filtered signal.

[0037] In one embodiment, the filtered signal may be transmitted to a speaker or a network terminal for output.

[0038] Step S140: based on the current frame reference signal set and the current frame input signal, the current frame filter coefficients are updated according to a preset division length to obtain filter coefficients of subsequent frames after the current frame.

[0039] In one embodiment, the filter coefficient updating method may include obtaining a partition length; and updating the filter coefficient of the current frame based on the partition length. The partition length and the length of the input signal obtained by the adaptive filtering method for each frame satisfy a constraint condition. The constraint condition may refer to a relationship that needs to be satisfied between the partition length and the length of the input signal for each frame. The partition length may be pre-set or obtained from elsewhere. Obtaining the filter coefficient of a subsequent frame after the current frame may refer to obtaining the filter coefficient at a moment after the current moment.

[0040] In one embodiment, the constraint condition may be: the current frame reference signal set and the historical frame reference signal set contain at least two parts with the same data, and the product of the number of interval frames between the historical frame and the current frame and the partition length is equal to the product of the difference between the at least two parts and the current frame input signal length. Specifically, the current frame reference signal set and the historical frame reference signal set at N moments before the current moment (for example, the previous moment, the previous two moments, etc.) contain at least two parts with the same data. The product of the partition length and N is equal to the product of the difference between the two parts and the current frame input signal length. The difference between the two parts refers to the difference in the numbers of the two parts in the corresponding reference signal set. The input signal length refers to the amount of data contained in each frame of the input signal.

[0041] The adaptive filtering method disclosed in the present application sets the division length in the update of the filter coefficient, and makes the division length and the length of the current frame input signal satisfy the constraint relationship. In each update process of the reference coefficient, the current frame input signal can be fully calculated, thereby avoiding the retention of part of the signal data. Furthermore, the calculation amount of each filter coefficient update is equal, avoiding the problem of uneven calculation amount, and can also effectively improve the update effect of the update algorithm.

[0042] The essence of the updating process of the filter coefficient is to find a finite impulse response so that the difference between the convolution signal obtained by convolving the response with the reference signal and the target echo signal is minimized. That is, the echo signal in the filtered output signal is minimized. Specifically, see formula (1):

[0043]

[0044] Where: d(i) is the input signal, x(i) is the reference signal, is the impulse response, i.e. the filter coefficient.

[0045] See also Figure 2 , Figure 2 FIG. 1 is a flow chart of a filter coefficient updating method according to an embodiment of the present application. It should be noted that if there are substantially the same results, this embodiment does not use Figure 2 The process sequence shown is limited. Figure 2 As shown, the method includes:

[0046] Step S210: Obtain the partition length.

[0047] In one embodiment, the partition length P may be preset or obtained by other modules or the network end. The partition length P may be a positive integer greater than zero. The partition length P and the length L of the input signal obtained by the adaptive filtering method for each frame meet the constraint condition.

[0048] More details on how to determine the partition length P can be found in Figure 3 and its related description.

[0049] Step S220: Obtain the update signal block length.

[0050] Each time the filter coefficient is updated, the signal block length M required to be calculated is a power of 2. In one embodiment, the update signal block length M may refer to the number of data points of the reference signal data block for update calculation, or may refer to the number of data points of the input signal data block for update calculation.

[0051] In one embodiment, the updated signal block length M may be determined based on the partition length P and the length of each frame of input data L. Specifically, the updated signal block length M needs to satisfy the condition M≥P+L-1.

[0052] Step S230: Obtain multiple reference signal blocks.

[0053] In one embodiment, the current frame reference signal and the saved historical frame reference signal may be combined according to the update signal block length M. Thus, multiple reference signal blocks for filter coefficient update calculation may be obtained, wherein the amount of data in each reference signal block is equal to the update signal block length M.

[0054] The current frame reference signal set includes multiple current frame reference signal blocks.

[0055] Step S240: Obtain multiple filter coefficient blocks.

[0056] In one embodiment, the filter coefficients may be divided based on the division length P, thereby obtaining a plurality of filter coefficient blocks. For details, see formula (2):

[0057]

[0058] in, is the filter coefficient block, and N is the length of the filter coefficient.

[0059] The larger the data volume N of the filter coefficient, the better the filtering effect. However, in the process of updating the filter coefficient, each update calculation requires convolving the filter coefficient with the reference signal and then comparing it with the input signal. Therefore, there is a limit on the data volume of the filter coefficient in the update calculation. By setting the partition length, the filter coefficient is divided into multiple filter coefficient blocks and then updated. The data volume of the filter coefficient is not subject to the above restrictions.

[0060] In one embodiment, the filter coefficient blocks correspond to the reference signal blocks one by one, that is, each filter coefficient block has a corresponding reference signal block.

[0061] Step S250: Perform Fourier transform on the filter coefficient blocks and the reference signal blocks.

[0062] In the filter coefficient updating method, the data can be first converted from the time domain to the frequency domain before calculation. The signal conversion from the time domain to the frequency domain can be achieved by Fourier transform.

[0063] In one embodiment, the filter coefficient blocks are Fourier transformed to obtain frequency domain filter coefficient blocks. Since the length of the signal block to be transformed is M, the Fourier transform matrix can be an M*M matrix. The amount of data in the filter coefficient blocks will be less than the length of the updated signal block M, so when performing Fourier transform, the amount of data in the frequency domain phase filter coefficient blocks can be supplemented by a 0 vector so that the amount of data in the frequency domain phase filter coefficient blocks meets the length of the updated signal block M. See formula (3) for details:

[0064]

[0065] Among them, w p It is the frequency domain phase filter coefficient block, F represents the M*M Fourier transform matrix, and 0 represents 1-(MP) zero vectors.

[0066] In one embodiment, the reference signal blocks are Fourier transformed, and the reference signal block vectors are converted into matrices, so that convolution calculations can be performed with the filter coefficient blocks. For details, see formula (4):

[0067] X p =diag{F[x[(n+1)L-pP-M+1],…,x[(n+1)L-pP]]} (4)

[0068] Among them, X P is the frequency domain filter coefficient block matrix; diag is the diagonal function; x[(n+1)L-pP] is the reference signal data numbered “(n+1)L-pP”.

[0069] Step S260: Obtain a convolution signal.

[0070] In one embodiment, a signal conversion matrix can be constructed to remove redundant data or erroneous data in the calculation matrix and only calculate part of the data. Specifically, the first conversion matrix is Among them I L is L*L unit vectors. By setting the first conversion matrix, part of the calculated data can be removed, thereby improving the operation efficiency.

[0071] In one embodiment, the effective filter coefficient block and the effective reference signal block can be convolved to obtain a convolution signal. In addition, the obtained convolution signal needs to be converted from the frequency domain to the time domain. Specifically, the convolution signal matrix can refer to formula (5):

[0072]

[0073] Step S270: construct input signal blocks.

[0074] In one embodiment, an input signal block with M data may be constructed by adding a 0 vector. For details, see formula (6):

[0075] d=[0 d n ] T (6)

[0076] Where d is the input signal block; d n is the nth frame input signal, see formula (7) for details

[0077] d n =[d[nL+1],…,d[(n+1)L]] (7)

[0078] Step S280: Update the filter coefficients using the convolution signal and the input signal blocks.

[0079] In one embodiment, the input signal is divided into blocks and subtracted from the convolution signal matrix to obtain a difference value e, see formula (8):

[0080] e=dy (8)

[0081] In one embodiment, the difference may be Fourier transformed, multiplied by the processed reference signal block, and then added to the current frame filter coefficient to obtain the next filter coefficient. For details, see formula (9):

[0082]

[0083] in is the next filter coefficient, is the current frame filter coefficient, F is the Fourier transform matrix, For X p The conjugate matrix of , G is the constraint transformation matrix, and Δ is the normalization coefficient. Specifically, G and Δ refer to formulas (10) and (11):

[0084]

[0085] Δ=1 / (βΔ+(1-β)|X p | 2 ) (11)

[0086] Among them, β is the smoothing parameter, which can be taken as 0.92. is the second conversion matrix. The second conversion matrix can be used to remove redundant data or erroneous data in the calculation matrix and only calculate part of the data.

[0087] From the above filter coefficient update method, it can be seen that the filter coefficient division length will directly affect the amount of calculation in the update process. Figure 3 , Figure 3 FIG. 1 is a flow chart of a method for determining a partition length according to an embodiment of the present application. It should be noted that if there are substantially the same results, this embodiment does not necessarily use Figure 3 The process sequence shown is limited. Figure 3 As shown, the method includes:

[0088] Step S310: Determine the constraint relationship.

[0089] In order to make the convolution operation effective, the condition M ≥ P + L-1 needs to be satisfied. At the same time, in order to improve the operation efficiency, the data calculated when updating the current frame reference signal (for example, X p ) is reused in subsequent reference coefficient updates, thereby reducing the amount of computation.

[0090] In one embodiment, the reference signal set of the current frame and the historical frame contains at least two reference signal blocks with the same data, which are the first reference signal block and the second reference signal block. That is, the at least two parts containing the same data in the current frame reference signal set and the historical frame reference signal set can refer to at least two reference signal blocks with the same data. The reference signal data used in the first reference signal block and the second reference signal block need to meet the conditions of formula (12) before they can be reused in the update of the filter coefficients of multiple frames.

[0091]

[0092] Wherein, n1 is the number of frames that the historical frame filter coefficient differs from the current frame filter coefficient.

[0093] Formula (12) can be understood as that the p1th reference signal when updating the filter coefficient of the current frame (ie, the n+n1th frame) is the same as the p2th reference signal when updating the filter coefficient before the n1th frame (ie, the nth frame).

[0094] At the same time, p1 and p2 also need to satisfy p1>p2.

[0095] Simplifying formula (12) can obtain the constraint relationship between the partition length and the input signal length. The constraint condition is: the product of the number of interval frames between the historical frame and the current frame and the partition length is equal to the product of the difference between the first reference signal block and the second reference signal block and the input signal length of the current frame. See formula (13):

[0096] n1L = (p1 - p2)P (13)

[0097] Step S320: Determine the reuse degree of the reference signal blocks.

[0098] In one embodiment, the reuse degree can be determined in advance according to the actual application scenario or the configuration of the computing device. Specifically, the number of frames between the historical frame with the largest number of reusable reference signal blocks and the current frame (e.g., n1), and the number of reusable reference signal blocks (e.g., the value of p1 - p2) can be determined.

[0099] Step S330: Determine the partition length and update the signal block length.

[0100] In one embodiment, substituting the determined reuse degree of the reference signal into the constraint relationship, the partition length of the filter coefficients can be obtained based on the length of the input signal. In addition, the value range of M can be determined according to the condition M ≥ P + L - 1. And since M needs to be a power of 2, the value of M can be the power of 2 closest to P + L - 1.

[0101] For example, when p1 - p2 = 2 and n1 = 1, that is, only two items of the reference signal blocks used to update the filter coefficients of the current frame are different from those used to update the filter coefficients of the previous historical frame. The length L of each frame of the input signal can be 160. Substituting the above values into the constraint relationship, L = 2P is obtained, that is, the partition length P can be 80. The value of M needs to satisfy 3P + 1 = 241 < M, and M can be 256. In summary, when the length of the input signal of the current frame is 160 and the partition length is 80, the input reference signal of the current frame and the reference signals of the historical frames are combined with a length of 256 to obtain multiple reference signal blocks of the current frame. In this scheme, the filter coefficients can be updated once by substituting all the input signals of the current frame, thus effectively solving the problem of data retention.

[0102] Another example, when p1 - p2 = 1 and n1 = 2, that is, only one item of the reference signal blocks used to update the filter coefficients of the current frame is different from those used to update the filter coefficients of the second frame before the current frame. The length L of each frame of the input signal can be 160. Substituting the above values into the constraint relationship, 2L = P is obtained, that is, P can be 320. The value of M needs to satisfy 3L - 1 = 479 < M, and M can be 512. In summary, when the length of the input signal of the current frame is 160 and the partition length is 320, the input reference signal of the current frame and the reference signals of the historical frames are combined with a length of 512 to obtain multiple reference signal blocks of the current frame. In this scheme, the filter coefficients can be updated once by substituting all the input signals of the current frame, thus effectively solving the problem of data retention. And it can reduce the computational complexity of the entire adaptive filter.

[0103] Please refer to the figure, Figure 4 4 is a schematic diagram of the structure of an adaptive filter according to an embodiment of the present application. In this embodiment, the adaptive filter 400 includes an acquisition module 410 , a combination module 420 , a filtering module 430 and an updating module 440 .

[0104] In one embodiment, the acquisition module 410 is used to acquire a current frame input signal, a current frame reference signal, and a current frame filter coefficient.

[0105] In one embodiment, the combination module 420 is used to combine the current frame reference signal with the historical frame reference signal to obtain a current frame reference signal set. The combination module 420 can also be used to combine the current frame reference signal with the historical frame reference signal to obtain the current frame reference signal set including: combining the current frame reference signal with the historical frame reference signal according to a preset update signal block length to obtain multiple current frame reference signal blocks; the current frame reference signal set includes multiple current frame reference signal blocks; wherein the update signal block length is determined by the partition length and the current frame input signal length. The update signal block length is not less than the sum of the partition length and the length of each frame input signal minus 1. The update signal block length is equal to a power of 2.

[0106] In one embodiment, the filtering module 430 is configured to perform adaptive filtering on the current frame input signal based on the current frame filtering coefficient and the current frame reference signal.

[0107] In one embodiment, the update module 440 is used to adaptively filter the current frame input signal based on the current frame reference signal and the current frame filter coefficient, and update the current frame filter coefficient according to a preset division length based on the current frame reference signal set and the current frame input signal to obtain the filter coefficient of the subsequent frame; wherein the current frame reference signal set and the historical frame reference signal set contain at least two parts with the same data, and the product of the number of interval frames between the historical frame and the current frame and the division length is equal to the product of the difference between the at least two parts and the length of the current frame input signal.

[0108] The update module 440 can also be used to divide the current frame filter coefficient according to the division length to obtain multiple current frame filter coefficient blocks, wherein the current frame filter coefficient blocks correspond to the current frame reference signal blocks one by one; convolve the current frame filter coefficient blocks and the corresponding current frame reference signal blocks to obtain the convolution signal; update the current frame filter coefficient based on the difference between the current frame convolution signal and the current frame input signal. Wherein, the reference signal set of the current frame and the historical frame contains at least two reference signal blocks with the same data, namely the first reference signal block and the second reference signal block; the product of the number of interval frames between the historical frame and the current frame and the division length is equal to the product of the difference between the second reference signal block and the first reference signal block and the current frame input signal length. Wherein, the division length is half of the length of the input signal of each frame; or the division length is twice the length of the input signal of each frame. Among them, the step of combining the current frame reference signal with the historical frame reference signal according to the preset update signal block length to obtain multiple current frame reference signal blocks includes: when the current frame input signal length is 160 and the division length is 80, the current frame input reference signal and the historical frame reference signal are combined in a length of 256 to obtain multiple current frame reference signal blocks; or when the current frame input signal length is 160 and the division length is 320, the current frame input reference signal and the historical frame reference signal are combined in a length of 512 to obtain multiple current frame reference signal blocks.

[0109] See also Figure 5 , Figure 5 5 is a schematic diagram of a computer device according to an embodiment of the present application. In this embodiment, the computer device 500 includes a processor 510 .

[0110] The processor 510 may also be referred to as a CPU (Central Processing Unit). The processor 510 may be an integrated circuit chip having signal processing capabilities. The processor 510 may also be a general-purpose processor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components. The general-purpose processor may be a microprocessor or the processor may also be any conventional processor, etc.

[0111] The computer device 500 may further include a memory (not shown) for storing instructions and data required for the processor 510 to run.

[0112] The processor 510 is used to execute instructions to implement the method provided by any embodiment of the above-mentioned adaptive filtering method and any non-conflicting combination.

[0113] See also Figure 6 , Figure 6 It is a structural schematic diagram of a device with a storage function according to an embodiment of the present application. The device 600 with a storage function in the embodiment of the present application stores instructions, and when the instructions are executed, the method provided by any embodiment of the adaptive filtering method of the present application and any non-conflicting combination is implemented. Among them, the instructions can form a program file and be stored in the above-mentioned device with a storage function in the form of a software product, so that a computer device (which can be a personal computer, a server, or a network device, etc.) or a processor (processor) executes all or part of the steps of the methods of each implementation method of the present application. The aforementioned device 600 with a storage function includes: various media that can store program codes, such as a U disk, a mobile hard disk, a read-only memory (ROM, Read-Only Memory), a random access memory (RAM, Random Access Memory), a disk or an optical disk, or a terminal device such as a computer, a server, a mobile phone, and a tablet.

[0114] In the several embodiments provided in the present application, it should be understood that the disclosed systems, devices and methods can be implemented in other ways. For example, the device embodiments described above are only schematic. For example, the division of units is only a logical function division. There may be other division methods in actual implementation. For example, multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be an indirect coupling or communication connection through some interfaces, devices or units, which can be electrical, mechanical or other forms.

[0115] In addition, each functional unit in each embodiment of the present application may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit. The above-mentioned integrated unit may be implemented in the form of hardware or in the form of software functional units.

[0116] The above description is only an implementation method of the present application, and does not limit the patent scope of the present application. Any equivalent structure or equivalent process transformation made using the contents of the present application specification and drawings, or directly or indirectly used in other related technical fields, are also included in the patent protection scope of the present application.

Claims

1. An adaptive filtering method, characterized in that: include: Obtaining a current frame input signal, a current frame reference signal, and a current frame filter coefficient; Combining the current frame reference signal with the historical frame reference signal to obtain a current frame reference signal set; Adaptively filtering the current frame input signal based on the current frame reference signal and the current frame filter coefficient, and updating the current frame filter coefficient according to a preset division length based on the current frame reference signal set and the current frame input signal to obtain filter coefficients for subsequent frames; The current frame reference signal set and the historical frame reference signal set contain two parts with the same data, and the product of the number of interval frames between the historical frame and the current frame and the division length is equal to the product of the difference between the two parts and the current frame input signal length; wherein the difference between the two parts is the difference between the numbers in the current frame reference signal set and the historical frame reference signal set; The combining the current frame reference signal with the historical frame reference signal to obtain a current frame reference signal set includes: Obtain multiple current frame reference signal blocks; Dividing the current frame filter coefficient according to the division length to obtain a plurality of current frame filter coefficient blocks, wherein the current frame filter coefficient blocks correspond one-to-one to the current frame reference signal blocks; Convolving the current frame filter coefficient block and the corresponding current frame reference signal block to obtain a convolved signal; Based on the difference between the convolution signal of the current frame and the input signal of the current frame, the filter coefficient of the current frame is updated to obtain the filter coefficient of the subsequent frame after the current frame.

2. The adaptive filtering method according to claim 1, characterized in that: The obtaining of multiple current frame reference signal blocks comprises: Combining the current frame reference signal with the historical frame reference signal according to a preset update signal block length to obtain a plurality of current frame reference signal blocks; the current frame reference signal set includes the plurality of current frame reference signal blocks; The update signal block length is determined by the division length and the current frame input signal length.

3. The adaptive filtering method according to claim 2, characterized in that: The update signal block length is not less than a value of 1 minus the sum of the partition length and the current frame input signal length.

4. The adaptive filtering method according to claim 3, characterized in that: The update signal block length is equal to a power of 2.

5. The adaptive filtering method according to claim 2, characterized in that: The reference signal sets of the current frame and the historical frame include at least two reference signal blocks with the same data, which are respectively a first reference signal block and a second reference signal block; The product of the number of interval frames between the historical frame and the current frame and the partition length is equal to the product of the difference between the second reference signal block and the first reference signal block and the length of the current frame input signal.

6. The adaptive filtering method according to claim 1, characterized in that: The division length is half of the length of each frame of the input signal; or The division length is twice the length of each frame input signal.

7. The adaptive filtering method according to claim 2, characterized in that: The step of combining the current frame reference signal with the historical frame reference signal according to a preset update signal block length to obtain a plurality of current frame reference signal blocks comprises: When the current frame input signal length is 160 and the partition length is 80, the current frame input reference signal and the historical frame reference signal are combined in a length of 256 to obtain a plurality of current frame reference signal blocks; or When the current frame input signal length is 160 and the partition length is 320, the current frame input reference signal and the historical frame reference signal are combined with a length of 512 to obtain multiple current frame reference signal blocks.

8. A computer device, characterized in that: The method comprises a processor, wherein the processor is used to execute instructions to implement the adaptive filtering method according to any one of claims 1 to 7.

9. A device with a storage function, characterized in that: The device stores a program, and when the program is executed, the adaptive filtering method according to any one of claims 1 to 7 can be implemented.

Citation Information

Patent Citations

  • Adaptive filter and filtering method used for eliminating acoustics echo

    CN104883462A

  • Method and device for tracking echo time delay

    CN105472191A