Signal processing device, signal processing method, and non-transitory storage medium

CN122996679APending Publication Date: 2026-10-27TDK CORP
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202480090016.8
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-03-26
Publication Date
2026-10-27

AI Technical Summary

Benefits of technology

[0009]根据本发明的一种实施方式的信号处理装置、信号处理方法和非暂态存储介质,能够提高实时性。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122996679A_ABST
    Figure CN122996679A_ABST
Patent Text Reader

Abstract

The signal processing device of one embodiment of the present application includes a data set generation circuit that can generate a plurality of first data sets by extracting a first predetermined number of data from a first time-series data with a second predetermined number of shift each time, a Fourier transform circuit that can generate a plurality of second data sets by performing Fourier transform on each of the plurality of first data sets, a filter processing circuit that can generate a plurality of third data sets by performing FIR filter processing on each of the plurality of second data sets using a filter coefficient data set, an inverse Fourier transform circuit that can generate a plurality of fourth data sets by performing inverse Fourier transform on each of the plurality of third data sets, and a data splicing circuit that can generate second time-series data by splicing the latest second predetermined number of data of each of the plurality of fourth data sets.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to a signal processing apparatus and method that uses an FIR filter for processing, as well as a non-transient storage medium storing software that uses an FIR filter for processing. Background Technology

[0002] Signal processing devices include those for processing audio signals. For example, Patent Document 1 discloses a technique for processing audio signals using a decimator and an interpolator filter. [Prior art literature][Patent literature]

[0003] Patent Document 1: International Publication No. 2019 / 089845 Summary of the Invention

[0004] In signal processing devices that process audio signals, it is desirable for processing to be performed in real time, and there is a desire to further improve its real-time performance.

[0005] It is desirable to provide a signal processing apparatus, signal processing method, and non-transient storage medium that can improve real-time performance.

[0006] One embodiment of the signal processing apparatus of the present invention includes a dataset generation circuit, a Fourier transform circuit, a filtering circuit, an inverse Fourier transform circuit, and a data concatenation circuit. The dataset generation circuit generates multiple first datasets sequentially by extracting a first predetermined number of data points from first time-series data, with each offset less than a first predetermined number and a second predetermined number of data points. The Fourier transform circuit performs Fourier transforms on each of the multiple first datasets to generate multiple second datasets corresponding to the multiple first datasets. The filtering circuit performs FIR filtering on each of the multiple second datasets using a filter coefficient dataset to generate multiple third datasets corresponding to the multiple second datasets. The inverse Fourier transform circuit performs inverse Fourier transforms on each of the multiple third datasets to generate multiple fourth datasets, each corresponding to the multiple third datasets and containing a first predetermined number of data points. The data concatenation circuit concatenates the latest second predetermined number of data points from each of the multiple fourth datasets to generate second time-series data corresponding to the first time-series data.

[0007] One embodiment of the signal processing method of the present invention includes: generating a plurality of first datasets by extracting a first predetermined number of data points at each offset of less than a first predetermined number based on first time-series data; generating a plurality of second datasets corresponding to the plurality of first datasets by performing Fourier transform on each dataset in the plurality of first datasets; generating a plurality of third datasets corresponding to the plurality of second datasets by performing FIR filtering on each dataset in the plurality of second datasets using a filter coefficient dataset; generating a plurality of fourth datasets corresponding to the plurality of third datasets and each containing a first predetermined number of data points by performing inverse Fourier transform on each dataset in the plurality of third datasets; and generating second time-series data corresponding to the first time-series data by concatenating the latest second predetermined number of data points from each of the plurality of fourth datasets.

[0008] According to one embodiment of the present invention, a non-transitory storage medium stores software that enables a processor to perform processing. The processing includes: generating multiple first datasets sequentially by extracting a first predetermined number of data points at each offset less than a first predetermined number, based on first time-series data; performing Fourier transforms on each dataset in the multiple first datasets to generate multiple second datasets corresponding to the multiple first datasets; performing FIR filtering on each dataset in the multiple second datasets using a filter coefficient dataset to generate multiple third datasets corresponding to the multiple second datasets; performing inverse Fourier transforms on each dataset in the multiple third datasets to generate multiple fourth datasets corresponding to the multiple third datasets and each containing a first predetermined number of data points; and concatenating the latest second predetermined number of data points from each of the multiple fourth datasets to generate second time-series data corresponding to the first time-series data.

[0009] The signal processing apparatus, signal processing method, and non-transient storage medium according to one embodiment of the present invention can improve real-time performance. Attached Figure Description

[0010] [ Figure 1 ] Figure 1 This is a block diagram illustrating a configuration example of a signal processing apparatus according to one embodiment of the present invention. [ Figure 2 ] Figure 2 It means Figure 1 The diagram illustrates an example of an action in the dataset generation section. [ Figure 3 ] Figure 3 It means as Figure 1 An illustrative diagram illustrating an example of the composition of the tapped coefficients dataset of the original data in the filter coefficients dataset shown. [ Figure 4 ] Figure 4 It means Figure 1 An explanatory diagram illustrating an example of RFFT processing, FIR filtering processing, and IRFFT processing performed by the signal processing device shown. [ Figure 5 ] Figure 5 It means Figure 1 The diagram illustrates an example of an action of the data splicing section. [ Figure 6 ] Figure 6 It means Figure 1 An explanatory diagram illustrating an example of the operation of the signal processing device shown. [ Figure 7 ] Figure 7 This is a block diagram illustrating a configuration example of a modified signal processing device. [ Figure 8 ] Figure 8 This is a block diagram illustrating one configuration example of a signal processing device with other variations. [ Figure 9 ] Figure 9 It means Figure 8 An explanatory diagram illustrating an example of the operation of the signal processing device shown. [ Figure 10 ] Figure 10 This is a block diagram illustrating a configuration example of a signal processing device used in an application. [ Figure 11 ] Figure 11 It means Figure 10 The diagram illustrates an example of an action in the dataset generation section. [ Figure 12 ] Figure 12 It means Figure 10 The diagram illustrates an example of a dataset generated by the computation unit. Detailed Implementation

[0011] The embodiments of the present invention will now be described in detail with reference to the accompanying drawings. The description will proceed in the following order. 1. Implementation Method 2. Application Examples of Adaptive Filters

[0012] <1. Implementation Method> [Structure Example] Figure 1This section illustrates an example configuration of a signal processing apparatus (signal processing apparatus 1) according to one embodiment of the present invention. The signal processing apparatus 1 is configured to perform audio processing, such as echo processing and equalization processing, on a signal generated by a microphone, and output the processing result from a speaker. The signal processing apparatus 1 includes: a microphone 11, an AD (Analog to Digital) conversion unit 12, a dataset generation unit 13, an RFFT (Real-valued Fast Fourier Transformation) processing unit 14, a storage unit 15, an FIR (Finite Impulse Response) filtering processing unit 16, an IRFFT (Inverse Real-valued Fast Fourier Transformation) processing unit 17, a data splicing unit 18, a DA (Digital to Analog) conversion unit 19, and a speaker 20. The signal processing apparatus 1 is configured, for example, to include a processor and a memory, and to perform processing by executing a program.

[0013] Microphone 11 is configured to convert sound into an analog signal as an electrical signal.

[0014] The AD converter 12 is configured to perform AD conversion based on the analog signal provided by the microphone 11, thereby generating a signal S12. The AD converter 12 generates multiple bits of data D by performing one AD conversion. The AD converter 12 generates multiple data D arranged in a time sequence by repeatedly performing AD conversion at a processing frequency f. Furthermore, the AD converter 12 outputs this series of data D as the signal S12.

[0015] The dataset generation unit 13 is configured to generate a dataset DS1, which is a unit of data processed in the signal processing device 1, based on a series of data D contained in the signal S12.

[0016] Figure 2 This represents an example of an operation of the dataset generation unit 13. The signal S12 provided to the dataset generation unit 13 contains multiple data Ds sequentially provided by the AD conversion unit 12 in a time-ordered manner. Whenever the dataset generation unit 13 receives 32 data Ds, it generates a dataset DS1 based on the latest 4096 data Ds, including these 32 data Ds. The dataset DS1 is a time-domain dataset. That is, the 4096 data Ds contained in the dataset DS1 correspond to data from different times.

[0017] Specifically, the dataset generation unit 13 generates dataset DS1 by extracting 4096 data points D from the multiple data points D contained in signal S12 during the period from time t1 to t4. Then, the dataset generation unit 13 generates the next dataset DS1 by extracting 4096 data points D from the multiple data points D contained in signal S12 during the period from time t2 to t5. Next, the dataset generation unit 13 generates the next dataset DS1 by extracting 4096 data points D from the multiple data points D contained in signal S12 during the period from time t3 to t6.

[0018] For example, signal S12 contains 32 data points D during time t1 to t2. The same applies during time t2 to t3, time t4 to t5, and time t5 to t6. The dataset generation unit 13 generates multiple datasets DS1 sequentially by shifting 32 data points from the multiple data points D contained in signal S12 and extracting 4096 data points D each time.

[0019] In this example, the dataset DS1 contains 4096 data points D, but it is not limited to this. For example, it can contain various powers of 2 data points D. Specifically, the dataset DS1 could contain, for example, 2048 data points D, or it could contain 8192 data points D.

[0020] Furthermore, in this example, multiple datasets DS1 are generated sequentially by offsetting 32 data points D at a time, but this is not a limitation. For example, it is possible to offset various numbers of data points D. Specifically, it is possible to generate multiple datasets DS1 sequentially by offsetting 16 data points D at a time, or by offsetting 64 data points D at a time.

[0021] RFFT processing unit 14 ( Figure 1 The signal processing unit 1 is configured to perform RFFT processing on dataset DS1 to generate dataset DS2. RFFT processing is a fast Fourier transform process that can be performed on real-valued data. By performing RFFT processing, the signal processing unit 1 can perform Fourier transforms with less computation than FFT processing. Dataset DS2 contains 2049 data points D. Dataset DS2 is a frequency domain dataset. That is, the 2049 data points D contained in dataset DS2 correspond to data at different frequencies.

[0022] Storage unit 15 is configured to store the filter coefficient dataset DF used in the FIR filter processing unit 16. In this example, storage unit 15 is a non-volatile storage unit. The filter coefficient dataset DF contains 2049 data points D. The filter coefficient dataset DF is a frequency domain dataset.

[0023] The filter coefficient dataset DF is generated by RFFT processing based on the time-domain tapped coefficient dataset DT and is pre-stored in storage unit 15. The tapped coefficient dataset DT corresponds to the tapped coefficients of the FIR filter operating in the time domain. Figure 3 As shown, the tap coefficient dataset DT was generated by appending 32 zeros (0) to the 4064 tap coefficients of the FIR filter that operates in the time domain, as shown in the shaded area.

[0024] That is, in this example, such as Figure 2 As shown, the dataset generation unit 13 generates multiple datasets DS1 sequentially by offsetting 32 data points each time and extracting 4096 data points D. In other words, the newly generated dataset DS1 includes the 4064 data points D contained in the previous dataset DS1, as well as 32 new data points D not included in the previous dataset DS1. Correspondingly, as... Figure 3 As shown, the tap coefficient dataset DT comprises 4064 tap coefficients of an FIR filter operating in the time domain, as shown in the shaded area, and 32 zeros (0). As described above, the tap coefficient dataset DT is expanded to a form with 4096 data points D by appending 32 zeros (0) to the 4064 tap coefficients. Furthermore, the filter coefficient dataset DF is generated based on the aforementioned tap coefficient dataset DT through RFFT processing.

[0025] The FIR filtering processing unit 16 is configured to perform FIR filtering on the dataset DS2 using the filter coefficient dataset DF to generate the dataset DS3. The dataset DS3 contains 2049 data points D. The dataset DS3 is a frequency domain dataset.

[0026] The IRFFT processing unit 17 is configured to perform IRFFT processing on dataset DS3 to generate dataset DS4. IRFFT processing is an inverse fast Fourier transform (IFFT) that performs the inverse of RFFT processing, and this RFFT processing can be performed on real-valued data. By performing IRFFT processing, the signal processing device 1 can perform the inverse Fourier transform with less computation than IFFT processing. Dataset DS4 contains 4096 data points D. Dataset DS4 is a time-domain dataset.

[0027] Figure 4 This is an example of IFFT processing, FIR filtering processing, and IRFFT processing in signal processing device 1.

[0028] like Figure 4As shown, the RFFT processing unit 14 performs RFFT processing on the dataset DS1 with 4096 data points D, thereby generating a frequency domain dataset DS2 with 2049 data points D. That is, in this example, because the signal processing device 1 performs RFFT processing, the number of data points D in the dataset DS2 can be reduced by about half.

[0029] like Figure 4 As shown, the FIR filtering processing unit 16 performs FIR filtering on the dataset DS2, which also contains 2049 data points D, using the filter coefficient dataset DF, which contains 2049 data points D, to generate a dataset DS3 with 2049 data points D. Specifically, the FIR filtering processing unit 16 multiplies two data points D corresponding to the same frequency in both datasets DS2 and DF, thereby generating dataset DS3. For example, the FIR filtering processing unit 16 multiplies the data points D of the first frequency in dataset DS2 with the data points D of the first frequency in the filter coefficient dataset DF to generate the data points D of the first frequency in dataset DS3. The FIR filtering processing unit 16 multiplies the data points D of the second frequency in dataset DS2 with the data points D of the second frequency in the filter coefficient dataset DF to generate the data points D of the second frequency in dataset DS3. The same applies to other frequencies. Through the above processing, the FIR filtering processing unit 16 can generate a dataset DS3 containing 2049 data points D.

[0030] As described above, the FIR filtering processing unit 16 performs processing in the frequency domain, and therefore performs filtering by multiplying two data D corresponding to the same frequency. That is, the FIR filter operating in the time domain performs filtering by performing convolution operations, while the FIR filter operating in the frequency domain performs filtering by multiplying two data D corresponding to the same frequency.

[0031] like Figure 4 As shown, the IRFFT processing unit 17 performs IRFFT processing on the dataset DS3 with 2049 data points D, thereby generating a time-domain dataset DS4 with 4096 data points D. That is, because the signal processing device 1 performs RFFT processing and IRFFT processing, it is possible to restore the number of data points D in the dataset DS4 to the same number of data points D as in the dataset DS1, which is 4096.

[0032] Data splicing section 18 ( Figure 1 The signal S18 is configured to generate a series of data D by splicing together multiple datasets DS4 provided by the IRFFT processing unit 17.

[0033] Figure 5 This represents an example of an action performed by the data stitching unit 18. Multiple datasets DS4 are sequentially provided to the data stitching unit 18 by the IRFFT processing unit 17. These datasets DS4 correspond to multiple datasets DS1 sequentially generated by the dataset generation unit 13. Figure 2 Each time the data stitching unit 18 receives a dataset DS4, it extracts the latest 32 data points D from the dataset DS4, which has 4096 data points D, and discards the remaining 4064 data points D. Furthermore, the data stitching unit 18 stitches the extracted 32 data points D together with the previously extracted data points D. The data stitching unit 18 outputs this series of data points D as a signal S18.

[0034] The DA converter 19 is configured to perform DA conversion based on signal S18 to generate an analog signal. Signal S18 contains multiple data D arranged in a time sequence. Based on these data D, the DA converter 19 generates an analog signal by performing DA conversion in a time sequence.

[0035] The speaker 20 is configured to convert the analog signal provided by the DA converter 19 into sound.

[0036] Here, the dataset generation unit 13 corresponds to a specific example of a "dataset generation circuit" according to an embodiment of this disclosure. The RFFT processing unit 14 corresponds to a specific example of a "Fourier transform circuit" according to an embodiment of this disclosure. The FIR filtering processing unit 16 corresponds to a specific example of a "filtering processing circuit" according to an embodiment of this disclosure. The IRFFT processing unit 17 corresponds to a specific example of an "inverse Fourier transform circuit" according to an embodiment of this disclosure. The data splicing unit 18 corresponds to a specific example of a "data splicing circuit" according to an embodiment of this disclosure. The storage unit 15 corresponds to a specific example of a "storage circuit" according to an embodiment of this disclosure. The series of data D contained in the signal S12 corresponds to a specific example of "first timing data" according to an embodiment of this disclosure. The dataset DS1 corresponds to a specific example of a "first dataset" according to an embodiment of this disclosure. The dataset DS2 corresponds to a specific example of a "second dataset" according to an embodiment of this disclosure. The dataset DS3 corresponds to a specific example of a "third dataset" according to an embodiment of this disclosure. The dataset DS4 corresponds to a specific example of a "fourth dataset" according to an embodiment of this disclosure. The filter coefficient dataset DF corresponds to a specific example of a "filter coefficient dataset" in one embodiment of this disclosure. The series of data D contained in signal S18 corresponds to a specific example of "second timing data" in one embodiment of this disclosure.

[0037] [Actions and Functions] Next, the operation and function of the signal processing device 1 in this embodiment will be explained.

[0038] [Overall Action Summary] First, refer to Figure 1 This section describes the overall operation of the signal processing device 1. Microphone 11 converts sound into an analog signal, which is then an electrical signal. The AD conversion unit 12 performs AD conversion based on the analog signal provided from microphone 11, thereby generating signal S12. The dataset generation unit 13 generates a dataset DS1, which serves as a unit of data processed in the signal processing device 1, based on a series of data D contained in signal S12. The RFFT processing unit 14 performs RFFT processing on dataset DS1, thereby generating dataset DS2. The storage unit 15 stores the filter coefficient dataset DF used in the FIR filtering processing unit 16. The FIR filtering processing unit 16 performs FIR filtering on dataset DS2 using the filter coefficient dataset DF, thereby generating dataset DS3. The IRFFT processing unit 17 performs IRFFT processing on dataset DS3, thereby generating dataset DS4. The data splicing unit 18 generates a signal S18 containing a series of data D by splicing multiple datasets DS4 provided from the IRFFT processing unit 17. The DA conversion unit 19 performs DA conversion on signal S18, thereby generating an analog signal. The speaker 20 converts the analog signal provided by the DA converter 19 into sound.

[0039] [Detailed Actions] Next, refer to Figure 2 , Figure 4 and Figure 5 The operation of the dataset generation unit 13, RFFT processing unit 14, FIR filtering processing unit 16, IRFFT processing unit 17, and data splicing unit 18 is described in detail. Multiple data D arranged in time sequence are sequentially provided to the dataset generation unit 13.

[0040] like Figure 2 As shown, whenever the dataset generation unit 13 receives 32 data D, it generates dataset DS1 based on the latest 4096 data D.

[0041] like Figure 4 As shown, the RFFT processing unit 14 performs RFFT processing on the dataset DS1 with 4096 data points D to generate a frequency domain dataset DS2 with 2049 data points D.

[0042] like Figure 4As shown, the FIR filtering processing unit 16 uses the filter coefficient dataset DF with 2049 data points D to perform FIR filtering processing on the dataset DS2 with 2049 data points D, thereby generating a dataset DS3 with 2049 data points D.

[0043] like Figure 4 As shown, the IRFFT processing unit 17 performs IRFFT processing on the dataset DS3 with 2049 data points D to generate a time-domain dataset DS4 with 4096 data points D.

[0044] like Figure 5 As shown, the data splicing unit 18 generates a signal S18 containing a series of data D by splicing data D based on multiple datasets DS4 provided by the IRFFT processing unit 17.

[0045] As described above, in signal processing apparatus 1, using the overlapping storage method, whenever 32 data Ds are received, a dataset DS1 is generated based on the latest 4096 data Ds containing those 32 data Ds, and processing is performed based on this dataset DS1. Therefore, in signal processing apparatus 1, the processing delay time can be shortened. That is, for example, if processing is performed whenever 4096 data Ds, the same number as the number of data Ds in the tap coefficient dataset DT, are received, the processing time is longer because it requires waiting for the accumulation of these data Ds. Since signal processing apparatus 1 can perform processing whenever 32 data Ds are received, where the number of these 32 data Ds is much smaller than the number of data Ds in the tap coefficient dataset DT, the processing delay time can be shortened.

[0046] Furthermore, in signal processing apparatus 1, RFFT processing is used for Fourier transform, and IRFFT processing is used for inverse Fourier transform. Therefore, in signal processing apparatus 1, for example, compared to the case of using FFT processing for Fourier transform and IFFT processing for inverse Fourier transform, the number of data D in the frequency domain can be reduced by approximately half. That is, in the case of performing FFT and IFFT processing, the number of data D in the frequency domain is 4096, while in this embodiment, by using RFFT and IRFFT processing, the number of data D in the frequency domain can be reduced to 2049. Therefore, the computational load can be reduced in signal processing apparatus 1.

[0047] Furthermore, in signal processing apparatus 1, frequency domain FIR processing is performed whenever 32 data Ds are received, where the number of 32 data Ds is much smaller than the number of data Ds in the tap coefficient dataset DT. Therefore, compared to performing FIR processing in the time domain, signal processing apparatus 1 can reduce the computational load.

[0048] The following section details the operation performed using the overlapping storage method whenever 32 data points D, which are much smaller than the number of data points D in the tap coefficient dataset DT, are received.

[0049] Figure 6 This represents a processing example of a dataset DS1 generated by the dataset generation unit 13.

[0050] like Figure 2 As shown, whenever the dataset generation unit 13 receives 32 data points D, it generates dataset DS1 based on the latest 4096 data points D. Therefore, dataset DS1 includes the 4064 data points D contained in the previous dataset DS1, as well as the 32 new data points D not included in the previous dataset DS1. Figure 6 In the dataset DS1, the new 32 data points D are shaded. That is, in dataset DS1, the 32 shaded data points D are the data points D that are actually processed. The RFFT processing unit 14 performs RFFT processing on the dataset DS1 to generate a dataset DS2 containing 2049 data points D.

[0051] The filter coefficient dataset DF is generated by performing a Fourier transform on the tapped coefficient dataset DT in the time domain and is pre-stored in storage unit 15. The tapped coefficient dataset DT is as follows: Figure 3 As shown, this contains 4064 tap coefficients and 32 zeros (0) of an FIR filter operating in the time domain. Figure 6 In the diagram, the 4064 tap coefficients D in the tap coefficient dataset DT are shaded. That is, the 4064 shaded data D in the tap coefficient dataset DT are the data D that are actually processed. The filter coefficient dataset DF is generated by performing RFFT processing on the aforementioned tap coefficient dataset DT. The filter coefficient dataset DF contains 2049 data D.

[0052] like Figure 6 As shown, the FIR filtering processing unit 16 performs FIR filtering on the dataset DS2, which contains 2049 data points D, using the filter coefficient dataset DF, which contains 2049 data points D, to generate the dataset DS3. Specifically, the FIR filtering processing unit 16 generates the dataset DS3 by multiplying two data points D corresponding to the same frequency contained in the two datasets, based on the 2049 data points D in the dataset DS2 and the 2049 data points D in the filter coefficient dataset DF, which also contain multiple frequencies.

[0053] The IRFFT processing unit 17 performs IRFFT processing on the dataset DS3 with 2049 data points D to generate a dataset DS4 with 4096 data points D.

[0054] The data stitching unit 18 extracts the latest 32 data points D from the dataset DS4, which has 4096 data points D, and discards the remaining 4064 data points D. Furthermore, the data stitching unit 18 stitches the extracted 32 data points D together with previously extracted data points D. Figure 6 In the diagram, the latest 32 data points D in dataset DS4 are shaded. That is, in dataset DS4, the 32 shaded data points D are the actual processing results.

[0055] As described above, in signal processing apparatus 1, an overlapping storage method is employed. Whenever 32 data points D are received, a dataset DS1 is generated based on the latest 4096 data points D containing those 32 data points, and processing is performed based on this dataset DS1. Furthermore, in signal processing apparatus 1, the latest 32 data points D are extracted from the dataset DS4 containing 4096 data points D, and the remaining 4064 data points D are discarded. That is, in signal processing apparatus 1, only the portions where the calculation results of linear convolution and circular convolution are identical are extracted. Therefore, in signal processing apparatus 1, the processing result of FIR filtering in the frequency domain can be made consistent with the processing result of FIR filtering in the time domain.

[0056] As described above, the signal processing apparatus 1 includes: a dataset generation circuit (dataset generation unit 13) capable of generating multiple first datasets (datasets DS1) sequentially by extracting a first predetermined number of data D from first time-series data (a series of data D contained in signal S12) with each offset less than a first predetermined number (4096 in this example) and a second predetermined number (32 in this example); a Fourier transform circuit (RFFT processing unit 14) capable of performing Fourier transforms on each dataset in the multiple first datasets (datasets DS1) to generate multiple second datasets (datasets DS2) corresponding to the multiple first datasets (datasets DS1); and a filtering processing circuit (FIR filtering processing unit 16) capable of processing the multiple second datasets (datasets DS1) using a filter coefficient dataset DF. 2) Each dataset in the first step undergoes FIR filtering to generate multiple third datasets (datasets DS3) corresponding to multiple second datasets (datasets DS2); the inverse Fourier transform circuit (IRFFT processing unit 17) performs inverse Fourier transform on each dataset in the multiple third datasets (datasets DS3) to generate multiple fourth datasets (datasets DS4) corresponding to the multiple third datasets (datasets DS3) and each containing a first predetermined number (4096 in this example); and the data splicing circuit (data splicing unit 18) splices the latest second predetermined number (32 in this example) of data D from each of the multiple fourth datasets (datasets DS4) to generate second time-series data (a series of data D contained in signal S19) corresponding to the first time-series data. Therefore, in signal processing device 1, processing can be performed whenever 32 data D are received, thus shortening the processing delay time. As a result, real-time performance can be improved in signal processing device 1.

[0057] Furthermore, in signal processing apparatus 1, the Fourier transform circuit (RFFT processing unit 14) can perform Fourier transform by executing RFFT processing. Each of the multiple second datasets (dataset DS2) contains a third predetermined number of data D (2049 in this example) less than a first predetermined number. Each of the multiple third datasets (dataset DS3) contains a third predetermined number of data D. The inverse Fourier transform circuit (IRFFT processing unit 17) can perform inverse Fourier transform by executing IRFFT processing. Therefore, in signal processing apparatus 1, for example, compared to performing Fourier transform using FFT processing and inverse Fourier transform using IFFT processing, the amount of data D in the frequency domain can be reduced by approximately half, thus reducing the computational load. As a result, in signal processing apparatus 1, because the processing burden is reduced, real-time performance can be improved.

[0058] Furthermore, the signal processing apparatus 1 also includes a storage circuit (storage unit 15) for storing the filter coefficient dataset DF. As a result, in the signal processing apparatus 1, for example, it is not necessary to calculate the filter coefficient dataset DF based on the tap coefficient dataset DT, thus reducing the amount of computation.

[0059] [Effect] As described above, this embodiment includes: a dataset generation circuit capable of generating multiple first datasets sequentially by extracting a first predetermined number of data points with an offset less than a first predetermined number each time based on first time-series data; a Fourier transform circuit capable of performing Fourier transforms on each dataset in the multiple first datasets to generate multiple second datasets corresponding to the multiple first datasets; a filtering processing circuit capable of performing FIR filtering on each dataset in the multiple second datasets using a filter coefficient dataset to generate multiple third datasets corresponding to the multiple second datasets; an inverse Fourier transform circuit capable of performing inverse Fourier transforms on each dataset in the multiple third datasets to generate multiple fourth datasets corresponding to the multiple third datasets and each containing a first predetermined number of data points; and a data concatenation circuit capable of concatenating the latest second predetermined number of data points from each of the multiple fourth datasets to generate second time-series data corresponding to the first time-series data. Therefore, real-time performance can be improved.

[0060] In this embodiment, the Fourier transform circuit can perform a Fourier transform by performing RFFT processing. Multiple second datasets each contain a third predetermined number of data points less than a first predetermined number. Multiple third datasets each contain a third predetermined number of data points D. The inverse Fourier transform circuit can perform an inverse Fourier transform by performing IRFFT processing. This improves real-time performance.

[0061] In this embodiment, because a storage circuit for storing the filter coefficient dataset is also included, the amount of computation can be reduced.

[0062] [Modification 1] In the above embodiment, the signal processing apparatus 1 employs RFFT and IRFFT processing capable of performing real-valued data, but is not limited thereto. Alternatively, for example, it may be as follows: Figure 7 As shown in the signal processing apparatus 1A, it performs FFT processing and IFFT processing. The signal processing apparatus 1A includes an FFT processing unit 14A and an IFFT processing unit 17A.

[0063] The FFT processing unit 14A is configured to perform FFT processing on dataset DS1 to generate dataset DS2. Specifically, the FFT processing unit 14A first performs FFT processing on the time-domain dataset DS1, which has 4096 data points D, to generate a frequency-domain dataset with 4096 data points D. Then, the FFT processing unit 14A removes the data points D corresponding to negative frequencies from the generated frequency-domain dataset to generate dataset DS2 with 2049 data points D. That is, because dataset DS1 is a real-valued dataset, the data points D corresponding to positive frequencies and the data points D corresponding to negative frequencies in the dataset generated by the FFT processing are symmetrical. Therefore, the FFT processing unit 14A utilizes this symmetry of the Fourier transform to generate dataset DS2 by removing the data points D corresponding to negative frequencies from the dataset generated by the FFT processing.

[0064] The IFFT processing unit 17A is configured to perform IFFT processing on dataset DS3 to generate dataset DS4. Specifically, the IFFT processing unit 17A supplements the frequency domain dataset DS3, which has 2049 data points D, with additional data points D by utilizing the symmetry of the Fourier transform, thereby generating a frequency domain dataset with 4096 data points D. Furthermore, the IFFT processing unit 17A performs IFFT processing on the generated frequency domain dataset to generate dataset DS4 containing 4096 data points D.

[0065] [Modification 2] In the above embodiment, the FIR filtering processing unit 16 performs FIR processing based on data D across all frequency bands, but the present invention is not limited thereto. Alternatively, for example, the FIR filtering processing unit 16 may perform FIR processing based on data D across only a portion of the frequency bands. Hereinafter, this modification will be described in detail.

[0066] Figure 8 This describes one configuration example of the signal processing apparatus 1B involved in this modification. The signal processing apparatus 1B includes a frequency band setting unit 21B, a frequency band processing unit 24B, a frequency band processing unit 25B, and a supplementary processing unit 27B.

[0067] The frequency band setting unit 21B is configured, for example, to set the processing frequency band in the FIR filter processing unit 16 according to instructions from the user. It should be noted that the present invention is not limited thereto, and the processing frequency band may also be preset according to the application.

[0068] The frequency band processing unit 24B is configured to generate a dataset DS2B by extracting multiple data D corresponding to the processing frequency band from the 2049 data D contained in the frequency domain dataset DS2 according to the instruction from the frequency band setting unit 21B.

[0069] The frequency band processing unit 25B is configured to generate a filter coefficient dataset DFB by extracting multiple data D corresponding to the processing frequency band from the 2049 data D contained in the filter coefficient dataset DF in the frequency domain, according to the instruction from the frequency band setting unit 21B.

[0070] The FIR filtering processing unit 16B is configured to perform FIR filtering on the dataset DS2B using the filter coefficient dataset DFB to generate the dataset DS3B. Since the dataset DS2B contains multiple data points D corresponding to the processing frequency band, and the filter coefficient dataset DFB also contains multiple data points D corresponding to the processing frequency band, the dataset DS3B also contains multiple data points D corresponding to the processing frequency band.

[0071] The supplementary processing unit 27B is configured to generate a dataset DS3 containing 2049 data points D by performing supplementary processing on a dataset DS3B containing multiple data points D corresponding to the processing frequency band.

[0072] Figure 9 This illustrates an example of processing in the signal processing device 1B. In this example, the frequency band setting unit 21B sets the low-frequency band among all frequency bands as the processing frequency band.

[0073] The frequency band processing unit 24B generates a dataset DS2B by extracting data D corresponding to the low-frequency band from the frequency domain dataset DS2. In this example, the frequency band processing unit 24B extracts 43 data D from the low-frequency side shown in part W1 from the 2049 data D contained in the dataset DS2, thereby generating the dataset DS2B.

[0074] The frequency band processing unit 25B generates a filter coefficient dataset DFB by extracting data D corresponding to the low-frequency band from the filter coefficient dataset DF in the frequency domain. In this example, the frequency band processing unit 25B extracts 43 data D from the low-frequency side shown in part W2 from the 2049 data D contained in the filter coefficient dataset DF, thereby generating the filter coefficient dataset DFB.

[0075] The supplementary processing unit 27B performs supplementary zero (0) processing on the high-frequency side of the frequency domain dataset DS3B to generate dataset DS3. Specifically, in this example, the supplementary processing unit 27B configures the 43 data D contained in the dataset DS3B on the low-frequency side of the dataset DS3, and configures 2006 zeros (0) on the high-frequency side of the dataset DS3.

[0076] Here, the frequency band processing unit 24B corresponds to a specific example of the "first extraction circuit" in one embodiment of the present disclosure. The frequency band processing unit 25B corresponds to a specific example of the "second extraction circuit" in one embodiment of the present disclosure. The supplementary processing unit 27B corresponds to a specific example of the "supplementary circuit" in one embodiment of the present disclosure.

[0077] As described above, the signal processing apparatus 1B further includes: a first extraction circuit (bandwidth processing unit 24B) that extracts multiple data D set at predetermined data positions from multiple data D contained in each of the multiple second datasets (datasets DS2) generated by the Fourier transform circuit (RFFT processing unit 14), thereby correcting the multiple second datasets (datasets DS2); a second extraction circuit (bandwidth processing unit 25B) that extracts multiple data D set at predetermined data positions from multiple data D contained in the filter coefficient dataset DF, thereby correcting the filter coefficient dataset (filter coefficient dataset DF); and a supplementation circuit (supplementation processing unit 27B) that supplements each dataset in the multiple third datasets (datasets DS3B) generated by the filtering processing circuit (FIR filtering processing unit 16B), so that the number of data contained in each of the multiple third datasets (datasets DS3B) is the same as the number of data contained in each of the multiple second datasets (datasets DS) generated by the Fourier transform circuit (RFFT processing unit 14), thereby correcting the multiple third datasets (datasets DS3, DS3B). Therefore, in the signal processing apparatus 1B, the processing frequency band can be set by selecting the data D used in the dataset DS2 and the filter coefficient dataset DF. As a result, real-time performance can be improved in the signal processing apparatus 1B. That is, for example, in time-domain processing, when a low-frequency band is set as the processing frequency band using a low-pass filter, a delay is generated due to the convolution processing of the low-pass filter. In this case, there is a possibility of reduced real-time performance. On the other hand, in the signal processing apparatus 1B, the processing frequency band is set by selecting the data D used in the dataset DS2 and the filter coefficient dataset DF. Therefore, in the signal processing apparatus 1B, since processing can be performed without generating delay, real-time performance can be improved.

[0078] Furthermore, by selecting the data D used in the dataset DS2 and the filter coefficient dataset DF in the manner described above, the signal processing device 1B can perform calculations using only the data D corresponding to the processing frequency band. Therefore, the computational load can be reduced in the signal processing device 1B.

[0079] [Other variations] Alternatively, two or more of these variations can be combined.

[0080] <2. Application Examples of Adaptive Filters> The technology described above can also be applied to applications employing adaptive filters. Below, we will provide a detailed explanation of application examples of adaptive filters.

[0081] Figure 10 This section presents an example configuration of a signal processing apparatus 2 involved in an application example. The signal processing apparatus 2 is configured to perform AEC (Acoustic Echo Cancellation) processing. The signal processing apparatus 2 can be applied, for example, to a speakerphone. A series of data D related to the voice of the other party in the call is input to the signal processing apparatus 2 as a signal Sin. The signal processing apparatus 2 includes a D / A conversion unit 31, a speaker 32, a microphone 33, an AD conversion unit 34, a data set generation unit 43, an RFFT processing unit 44, an FIR filtering processing unit 46, an IRFFT processing unit 47, a data concatenation unit 48, a subtraction unit 51, a data set generation unit 52, an RFFT processing unit 53, a conjugate complex number conversion unit 54, a multiplication unit 55, an IRFFT processing unit 56, an arithmetic unit 57, an RFFT processing unit 58, and a filter coefficient update unit 59.

[0082] The DA converter 31 performs DA conversion based on the signal Sin to generate an analog signal. The speaker 32 converts the analog signal provided by the DA converter 31 into sound. A portion of the sound output by the speaker 32 is input to the microphone 33. The microphone 33 converts the sound into an analog signal as an electrical signal. The AD converter 34 performs AD conversion based on the analog signal provided by the microphone 33 to generate the signal S34.

[0083] The dataset generation unit 43, RFFT processing unit 44, FIR filtering processing unit 46, IRFFT processing unit 47, and data splicing unit 48 correspond to the dataset generation unit 13, RFFT processing unit 14, FIR filtering processing unit 16, IRFFT processing unit 17, and data splicing unit 18 in the above embodiments, respectively. The data splicing unit 48 generates a signal S48 containing a series of data D.

[0084] Subtraction unit 51 generates signal S51 by subtracting data D contained in signal S48 from data D contained in signal S34. Data set generation unit 52 generates data set DS11 based on a series of data D contained in signal S51.

[0085] Figure 11 This represents an example of an operation of the dataset generation unit 52. The dataset generation unit 52 generates a dataset DS11 whenever it receives 32 data points D. The dataset DS11 contains 4096 data points D. The dataset generation unit 52 generates dataset DS11, which contains 32 data points D extracted from the series of data points D contained in signal S51, and 4064 zeros (0).

[0086] The RFFT processing unit 53 performs RFFT processing on dataset DS11 to generate dataset DS12 containing 2049 data points D. The conjugate complex transformation unit 54 performs conjugate complex transformation on dataset DS2 to generate dataset DS13 containing 2049 data points D. The multiplication unit 55 performs multiplication processing on datasets DS12 and DS13 to generate dataset DS14. Specifically, the multiplication unit 55 multiplies two data points D corresponding to the same frequency in datasets DS12 and DS13 to generate dataset DS14 containing 2049 data points D. The IRFFT processing unit 56 performs IRFFT processing on dataset DS14 to generate dataset DS15 containing 4096 data points D. The computation unit 57 performs computation processing for calculating gradient constraints on dataset DS15 to generate dataset DS16 containing 4096 data points D. Dataset DS16, etc. Figure 12 As shown, it contains 4064 data points D representing filter coefficients and 43 zeros (0). This is consistent with... Figure 11 The dataset DS11 shown contains 4064 zeros (0) and corresponds to 32 data D extracted from a series of data D contained in signal S51. The RFFT processing unit 58 performs RFFT processing based on the dataset DS17 to generate a dataset DS17 containing 2049 data D. The filter coefficient update unit 59 updates the filter coefficient dataset DF containing 2049 data D based on the dataset DS17.

[0087] The dataset generation unit 52, RFFT processing unit 53, multiplication unit 55, IRFFT processing unit 56 and arithmetic unit 57 correspond to the dataset generation unit 13, RFFT processing unit 14, FIR filtering processing unit 16, IRFFT processing unit 17 and data splicing unit 18 in the above embodiments, respectively.

[0088] In signal processing device 2, since a portion of the sound output from speaker 32 is input to microphone 33, signal S34 contains data D corresponding to the voice of the other party in the call. In signal processing device 2, a negative feedback operation is performed so that the data D contained in signal S48 is the same as the data D contained in signal S34. That is, signal S51 generated by subtraction unit 51 corresponds to the error signal. In signal processing device 2, by performing the above-described negative feedback operation, the filter coefficient dataset DF is adaptively set.

[0089] The present invention has been described above in conjunction with embodiments, modifications, and application examples. However, the present invention is not limited to these embodiments and various modifications can be made.

[0090] For example, in the above implementation, the number of data D contained in each of the datasets DS1 and DS4 (4096 in this example), the number of data D contained in each of the datasets DS2, DS3 and the filter coefficient dataset DF (2049 in this example), and the number of data D extracted from signal S12 and configured in dataset DS1 (block size) (32 in this example) are only examples and can be set appropriately as needed.

[0091] The effects described in this specification are merely illustrative, and the effects of this disclosure are not limited to those described herein. Therefore, other effects can also be obtained with this disclosure.

[0092] This disclosure can also be implemented in the following ways. (1) A signal processing device comprising: The dataset generation circuit is capable of generating multiple first datasets sequentially based on first time-series data, with each offset being less than a first predetermined number and a second predetermined number of data extracted. The Fourier transform circuit is capable of performing Fourier transforms on each of the plurality of first datasets, thereby generating a plurality of second datasets corresponding to the plurality of first datasets respectively; The filtering circuit is capable of performing FIR filtering on each of the plurality of second datasets using a filter coefficient dataset to generate a plurality of third datasets corresponding to the plurality of second datasets respectively. The inverse Fourier transform circuit is capable of performing an inverse Fourier transform on each of the plurality of third datasets, thereby generating a plurality of fourth datasets that correspond to the plurality of third datasets and each contains the first predetermined number of data; and The data splicing circuit is capable of splicing the latest second predetermined number of data from each of the plurality of fourth datasets to generate second time-series data corresponding to the first time-series data. (2) The signal processing device described in (1), wherein, The Fourier transform circuit can perform the Fourier transform by performing RFFT processing. Each of the plurality of second datasets contains a third predetermined number of data that is less than the first predetermined number. Each of the plurality of third datasets contains the third predetermined number of data, and The inverse Fourier transform circuit can perform the inverse Fourier transform by performing IRFFT processing. (3) The signal processing apparatus of (1) or (2), wherein, It also has: The first extraction circuit is capable of correcting the plurality of second datasets by extracting multiple data set at predetermined data positions from the multiple data contained in each of the plurality of second datasets generated by the Fourier transform circuit. The second extraction circuit is capable of correcting the filter coefficient dataset by extracting multiple data points set at predetermined data positions from multiple data points contained in the filter coefficient dataset; and The supplementary circuit can supplement each of the plurality of third datasets generated by the filtering circuit so that the number of data contained in each of the plurality of third datasets is the same as the number of data contained in each of the plurality of second datasets generated by the Fourier transform circuit, thereby correcting the plurality of third datasets. (4) The signal processing apparatus according to any one of (1) to (3), wherein, It also has a storage circuit for storing the filter coefficient dataset. (5) The signal processing apparatus according to any one of (1) to (4), wherein, It also has a generation circuit capable of generating the filter coefficient dataset. (6) A signal processing method, comprising: Based on the first time series data, each offset is less than the first predetermined number of a second predetermined number, and the first predetermined number of data is extracted, thereby generating multiple first datasets in sequence; Fourier transform is performed on each of the multiple first datasets to generate multiple second datasets corresponding to the multiple first datasets respectively; By using the filter coefficient dataset, each of the multiple second datasets is subjected to FIR filtering to generate multiple third datasets corresponding to the multiple second datasets respectively; Inverse Fourier transforms are performed on each of the plurality of third datasets to generate a plurality of fourth datasets, each corresponding to the plurality of third datasets and each containing the first predetermined number of data; and By concatenating the latest second predetermined number of data from each of the plurality of fourth datasets, second time-series data corresponding to the first time-series data is generated. (7) A non-transitory storage medium storing software that enables a processor to perform operations. The process includes: Based on the first time series data, each offset is less than the first predetermined number of a second predetermined number, and the first predetermined number of data is extracted, thereby generating multiple first datasets in sequence; Fourier transform is performed on each of the multiple first datasets to generate multiple second datasets corresponding to the multiple first datasets respectively; By using the filter coefficient dataset, each of the multiple second datasets is subjected to FIR filtering to generate multiple third datasets corresponding to the multiple second datasets respectively; Inverse Fourier transforms are performed on each of the plurality of third datasets to generate a plurality of fourth datasets, each corresponding to the plurality of third datasets and each containing the first predetermined number of data; and By concatenating the latest second predetermined number of data from each of the plurality of fourth datasets, second time-series data corresponding to the first time-series data is generated.

Claims

1. A signal processing apparatus, comprising: The dataset generation circuit is capable of generating multiple first datasets sequentially based on first time-series data, with each offset being less than a first predetermined number and a second predetermined number of data extracted. The Fourier transform circuit is capable of performing Fourier transforms on each of the plurality of first datasets, thereby generating a plurality of second datasets corresponding to the plurality of first datasets respectively; The filtering circuit is capable of performing FIR filtering on each of the plurality of second datasets using a filter coefficient dataset to generate a plurality of third datasets corresponding to the plurality of second datasets respectively. The inverse Fourier transform circuit is capable of performing inverse Fourier transform based on each of the plurality of third datasets, thereby generating a plurality of fourth datasets that correspond to the plurality of third datasets and each contains the first predetermined number of data. as well as The data splicing circuit is capable of splicing the latest second predetermined number of data from each of the plurality of fourth datasets to generate second time-series data corresponding to the first time-series data.

2. The signal processing apparatus according to claim 1, wherein, The Fourier transform circuit can perform the Fourier transform by performing RFFT processing. Each of the plurality of second datasets contains a third predetermined number of data that is less than the first predetermined number. Each of the plurality of third datasets contains the third predetermined number of data, and The inverse Fourier transform circuit can perform the inverse Fourier transform by performing IRFFT processing.

3. The signal processing apparatus according to claim 1, wherein, It also has: The first extraction circuit is capable of correcting the plurality of second datasets by extracting multiple data set at predetermined data positions from the multiple data contained in each of the plurality of second datasets generated by the Fourier transform circuit. The second extraction circuit can correct the filter coefficient dataset by extracting multiple data points set at the predetermined data positions from the multiple data points contained in the filter coefficient dataset. as well as The supplementary circuit can supplement each of the plurality of third datasets generated by the filtering circuit so that the number of data contained in each of the plurality of third datasets is the same as the number of data contained in each of the plurality of second datasets generated by the Fourier transform circuit, thereby correcting the plurality of third datasets.

4. The signal processing apparatus according to claim 1, wherein, It also has a storage circuit for storing the filter coefficient dataset.

5. The signal processing apparatus according to claim 1, wherein, It also has a generation circuit capable of generating the filter coefficient dataset.

6. A signal processing method, comprising: Based on the first time series data, each offset is less than the first predetermined number of a second predetermined number, and the first predetermined number of data is extracted, thereby generating multiple first datasets in sequence; Fourier transform is performed on each of the multiple first datasets to generate multiple second datasets corresponding to the multiple first datasets respectively; By using the filter coefficient dataset, each of the multiple second datasets is subjected to FIR filtering to generate multiple third datasets corresponding to the multiple second datasets respectively; Inverse Fourier transform is performed on each of the plurality of third datasets to generate a plurality of fourth datasets that correspond to the plurality of third datasets and each contains the first predetermined number of data. as well as By concatenating the latest second predetermined number of data from each of the plurality of fourth datasets, second time-series data corresponding to the first time-series data is generated.

7. A non-transitory storage medium storing software that enables a processor to perform processing. The process includes: Based on the first time series data, each offset is less than the first predetermined number of a second predetermined number, and the first predetermined number of data is extracted, thereby generating multiple first datasets in sequence; Fourier transform is performed on each of the multiple first datasets to generate multiple second datasets corresponding to the multiple first datasets respectively; By using the filter coefficient dataset, each of the multiple second datasets is subjected to FIR filtering to generate multiple third datasets corresponding to the multiple second datasets respectively; Inverse Fourier transform is performed on each of the plurality of third datasets to generate a plurality of fourth datasets that correspond to the plurality of third datasets and each contains the first predetermined number of data. as well as By concatenating the latest second predetermined number of data from each of the plurality of fourth datasets, second time-series data corresponding to the first time-series data is generated.

Citation Information

Patent Citations

  • Low delay decimator and interpolator filters

    WO2019089845A1