Tools and methods for designing feedforward filters for use in active noise cancelling systems
11404040 · 2022-08-02
Assignee
Inventors
Cpc classification
G10K11/17881
PHYSICS
G10K2210/509
PHYSICS
G10K2210/3028
PHYSICS
G10K2210/1081
PHYSICS
International classification
Abstract
A method of automated feedforward filter design comprising designing a feedforward filter for a system implementing active noise cancelling is described. The method includes designing the feedforward filter by determining a filter transfer function of the feedforward filter. Optionally, the filter transfer function is determined using a least square method. The method also includes determining the filter transfer function by defining a target transfer function of the feedforward filter and applying the least square method using the target transfer function to determine a filter expression for the filter transfer function. Optionally, the least square method is a weighted least square method.
Claims
1. A computer implemented method of designing a feedforward filter for an active noise cancelling system prior to physically implementing physical circuit components and parameters of the feedforward filter within the active noise cancelling system, the method comprising: automatically determining, by a processor, a filter transfer function of the feedforward filter that is achievable using the physical circuit components and parameters; wherein the filter transfer function is determined using a least square method, and determining the filter transfer function comprises: defining a target transfer function of the feedforward filter; determining a filter expression for the filter transfer function comprising: determining a first filter expression, the first filter expression comprising a first numerator polynomial and a first denominator polynomial; and determining the first filter expression by applying the least square method using the target transfer function to determine the roots of the first denominator polynomial.
2. The method of claim 1, wherein determining the filter transfer function comprises: defining a target transfer function of the feedforward filter; and applying the least square method using the target transfer function to determine a filter expression for the filter transfer function.
3. The method of claim 1, wherein the least square method is a weighted least square method.
4. The method of claim 2, wherein determining the filter transfer function comprises: defining an error function that is dependent on the target transfer function and the filter transfer function; and applying the least square method using the error function to determine the filter expression for the filter transfer function that either: i) reduces the error function to a sufficiently small value that is indicative of the filter transfer function being sufficiently close to the target transfer function; and/or ii) minimizes the error function.
5. The method of claim 4, wherein the error function is dependent on the difference between the target transfer function and the filter transfer function.
6. The method of claim 4, wherein the least square method is a weighted least square method such that the error function is dependent on a weighting vector.
7. The method of claim 6, wherein the error function is approximately equal to the magnitude squared of a first expression, the first expression being equal to the square root of the weighting vector multiplied by the difference between the filter transfer function and the target transfer function.
8. The method of claim 6, wherein the weighting vector is multiplied by a weighting factor.
9. The method of claim 8, comprising: a) updating the weighting factor thereby updating the error function; b) applying the least squares method using the error function to determine an alternative expression for the filter transfer function that either: i) reduces the error function to a sufficiently small value that is indicative of the filter transfer function being sufficiently close to the target transfer function; and/or ii) minimizes the error function; c) updating the filter expression to the alternative expression if the error function after updating is smaller than the error function prior to updating; and; d) repeating the steps a) to c) until: a number of repetitions of the steps a) to c) exceed a limit; and/or the error function is less than a threshold value.
10. The method of claim 8, wherein the weighting vector is multiplied by the weighting factor in a frequency range having a minimum frequency and a maximum frequency.
11. The method of claim 6, wherein the weighting vector is approximately equal to one divided by the magnitude of the target transfer function squared.
12. The method of claim 2, wherein, defining the target transfer function comprises: i) modelling an active noise cancelling headset comprising: a first signal path from an ambient noise source to a user's ear; a second signal path from the ambient noise source to a feedforward microphone; a third signal path from the feedforward microphone to a speaker driver; and a fourth signal path from the speaker driver to the user's ear; ii) determining a transfer function of each of the first, second and fourth signal paths, wherein the transfer function of a signal path represents a gain and a phase change of the signal path; iii) defining the target transfer function as the negative of the transfer function of the first signal path, divided by the dot product of the transfer function of the second and fourth signal paths.
13. The method of claim 12, wherein the transfer function of the third signal path is the filter transfer function to be determined.
14. The method of claim 12, wherein determining the transfer function of each of the first, second and fourth signal paths, comprises measuring the transfer functions and/or by deriving simulation results.
15. The method of claim 1, wherein the feedforward filter is designed within a frequency range having a maximum frequency and a minimum frequency.
16. The method of claim 4, wherein: the target transfer function comprises a gain that is dependent on frequency; and applying the least square method comprises prioritizing reduction or minimization of the error function for frequencies where the gain exceeds an upper limit.
17. The method of claim 1 wherein determination of the roots of the first denominator polynomial is performed in a warped frequency domain.
18. The method of claim 1, wherein determining the first filter expression comprises applying the least square method using the target transfer function to determine the roots of the first numerator polynomial after the roots of the first denominator polynomial have been determined.
19. The method of claim 18, wherein the first filter expression is updated using the roots of the first denominator polynomial prior to determination of the roots of the first numerator polynomial.
20. The method of claim 18, wherein determining the filter expression comprises: determining a second filter expression, the second filter expression comprising a second numerator polynomial and a second denominator polynomial, the roots of the second denominator polynomial being equal to the roots of the first numerator polynomial; and determining the second filter expression by applying the least square method using the target transfer function to determine the roots of the second numerator polynomial.
21. The method of claim 20, wherein determining the filter expression comprises: evaluating which of the first filter expression and the inverse of the second filter expression best meets a design specification; setting the filter expression as the one of the first filter expression and the inverse of the second filter expression that best meet the design specification.
22. The method of claim 21, wherein the at least one design specification comprises one or more of: adaptive noise cancelling performance; attenuation gain; and/or overshoot characteristics.
23. A computer system comprising a module configured as an automated feedforward filter design tool configured to design a feedforward filter for an active noise cancelling system prior to physically implementing physical circuit components and parameters of the feedforward filter within the active noise cancelling system by automatically determining, by a processor, a filter transfer function of the feedforward filter that is achievable using the physical circuit components and parameters; wherein the filter transfer function is determined using a least square method, and determining the filter transfer function comprises: defining a target transfer function of the feedforward filter; determining a filter expression for the filter transfer function comprising: determining a first filter expression, the first filter expression comprising a first numerator polynomial and a first denominator polynomial; and determining the first filter expression by applying the least square method using the target transfer function to determine the roots of the first denominator polynomial.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1) The disclosure is described in further detail below by way of example and with reference to the accompanying drawings in which:
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
DETAILED DESCRIPTION
(13) The design of an FF ANC headset typically includes the following steps: 1. Design and fabricate a headphone enclosure that will facilitate ANC operation. 2. Conduct specific acoustical measurements in order to define the appropriate system transfer functions. 3. Use the measurements of step 2 in order to design a suitable FF filter for achieving the desired ANC performance. 4. Confirm ANC performance after applying the designed filters on the device, with acoustical measurements.
(14) In the present disclosure, the terms headphone and headset may be used interchangeably. It will be clear to the skilled person that the present disclosure may be applied to automated filter design for either headphones or headsets.
(15) The present disclosure relates to methods and apparatus for designing a suitable FF filter for achieving the desired ANC performance, as seen for example at step 3 in the above design process.
(16) Designing the feedforward filter may comprise determining a filter transfer function H.sub.FF of the feedforward filter at a step 204. The filter transfer function H.sub.FF may be determined using a least square method. The feedforward filter may be designed within a frequency range having a maximum frequency and a minimum frequency. This frequency range (in Hz) may be the frequency range over which ANC is desirable. The least square method may be referred to as the least square approximation.
(17) The method 200 describes an algorithmic sequence for calculating the infinite impulse response (IIR) transfer function of the filter transfer function H.sub.FF.
(18)
(19) Determining the filter transfer function H.sub.FF may comprise defining an error function Err that is dependent on the target transfer function H.sub.T and the filter transfer function H.sub.FF, at a step 208. Applying the least square method in step 210 may comprise using the error function Err to determine the filter expression for the filter transfer function H.sub.FF that either reduces the error function Err to a sufficiently small value that is indicative of the filter transfer function H.sub.FF being sufficiently close to the target transfer function H.sub.T and/or minimizes the error function Err.
(20) The target transfer function H.sub.T represents the gain and phase characteristics of the feedforward microphone 102 in an idealized ANC system that would provide optimum noise cancellation characteristics. To provide this optimum functionality, it is necessary to determine the filter expression for the filter transfer function H.sub.FF that matches, or is sufficiently close to, the gain and phase change characteristics represented by the target transfer function H.sub.T.
(21) The target transfer function H.sub.T may not be a system measured response but a combination of the measured transfer functions derived for optimal FF ANC performance.
(22) The filter expression for the filter transfer function H.sub.FF that is derived will be achievable using physical circuit components and parameters, such that the designed feedforward filter can be implemented using these circuit components and parameters to provide the optimal ANC functionality that is represented by the target transfer function H.sub.T.
(23) The filter expression of the filter transfer function H.sub.FF is a mathematical expression and may be a polynomial, where the coefficients of the filter expression can be written in corresponding registers of an integrated circuit (IC) implementing digital signal processing (DSP) for ANC. The filter expression derived for the filter transfer function H.sub.FF preferably minimizes the error between the filter transfer function H.sub.FF and the target transfer function H.sub.T. The error is represented by the error function Err.
(24) The filter expression of the filter transfer function H.sub.FF may be described by a fraction having a numerator polynomial and a denominator polynomial. The highest order of the two polynomials determines the filter order.
(25) A polynomial of Nth order is determined by N+1 coefficients. For example, a 2nd order IIR filter may be expressed by the expression:
(26)
(27) A detailed and complicated frequency response requires a very high filter order for its polynomial representation. Poles are the roots of the denominator polynomial and zeros are the roots of the numerator polynomial. Also, it is possible to calculate coefficients from given poles and vice versa from standard equations.
(28) The error function Err is a measure of how close the filter expression for the filter transfer function H.sub.FF matches the target transfer function H.sub.T. It is desirable for the filter transfer function H.sub.FF to match the target transfer function H.sub.T exactly, which would yield an error function Err equal to zero. However, in a practical implementation that uses physically implementable circuits and parameters, it is not feasible to match the filter transfer function H.sub.FF exactly to the target transfer function H.sub.T. As such, it is desirable that the error function Err is of a sufficiently small value that is indicative of the filter transfer function H.sub.FF providing the necessary functionality within an application-dependent tolerance range. For example, in an ANC system, it will be less relevant to provide optimal noise cancelling outside the range of human hearing, and the system may compromise in this area. Preferably, the error function Err is minimized.
(29) In the present embodiment the error function Err is dependent on the difference between the target transfer function and the filter transfer function, and may be expressed as follows:
Err=|H.sub.FF−H.sub.T|.sup.2 (2)
(30) In a further embodiment, the least square method may be a weighted least square method such that the error function Err is dependent on a weighting vector W, as follows:
Err=|√{square root over (W)}(H.sub.FF−H.sub.T)|.sup.2 (3)
(31) As shown in equation (3) the error function Err in the present embodiment is equal to the magnitude squared of a first expression, given by the square root of the weighting vector W, multiplied by the difference between the filter transfer function H.sub.FF and the target transfer function H.sub.T.
(32) The weighting vector W is preferably a vector with appropriate weight values to minimize errors between the target transfer function H.sub.T and the filter transfer function H.sub.FF in specific frequency ranges. For example, for high performance ANC, it may be essential that the target transfer function H.sub.T and the filter transfer function H.sub.FF match very closely over a first frequency range, whilst the transfer functions H.sub.T, H.sub.FF can differ largely over a second frequency range. The weighting vector W can be used to weight the importance of the matching of the transfer functions H.sub.FF, H.sub.T over the different frequency ranges, which can simplify and/or speed up the design process.
(33) The weighting vector W may have two functions, namely: reducing the distance, represented by the value of the error function Err, between H.sub.FF and H.sub.T in the ANC range (the first frequency range) and increasing the distance elsewhere (the second frequency range). The increase in the error function Err value in the second frequency range is necessary for reducing overshoots.
(34) The target transfer function H.sub.T that is representative of the filter transfer function H.sub.FF that would provide the optimum ANC performance. The target transfer function H.sub.T can be defined by modelling an ANC headset and evaluating the desired filter transfer function H.sub.FF in terms of the transfer functions of the remaining signal paths in the ANC system.
(35) For example, and with reference to the ANC headset 100 of
(36) It will be appreciated that the user's ear 110 is simply representative of an audio output of the ANC headset 100 and physically a user's ear need not be present to model the ANC headset 100.
(37) The transfer function of a signal path is representative of the gain and phase change of the signal path, as discussed previously. Defining the target transfer function H.sub.T comprises a step of determining the transfer functions H.sub.AFF, H.sub.AE, H.sub.DE.
(38) The transfer functions H.sub.AFF, H.sub.AE, H.sub.DE can be determined by making measurements and/or by deriving simulations results of the transfer functions of the relevant signal paths in an ANC headset. In mass production, the transfer functions H.sub.AFF, H.sub.AE, H.sub.DE can have minor variations between different samples of ANC headsets of the same acoustic design. Therefore, to provide the best data for each ANC headset, the transfer functions H.sub.AFF, H.sub.AE, H.sub.DE can be measured for each unit in a production line.
(39) The transfer functions H.sub.AFF, H.sub.AE, H.sub.DE may be measured used a spectrum analyser. For measurement of the transfer functions H.sub.AFF, H.sub.AE, H.sub.DE the spectrum analyser may drive an input signal to the ambient noise source 108 or the speaker driver 106 and make a measurement of an output signal.
(40) Alternatively, the transfer functions H.sub.AFF, H.sub.AE, H.sub.DE may be measured for a subset of the ANC headsets in production. This can provide transfer functions H.sub.AFF, H.sub.AE, H.sub.DE that are indicative of the transfer functions of all the units in the production line, thereby reducing measurement time prior to designing the feedforward filter. The measured data may also be supplemented using one or more reference unit measurements.
(41) Measuring the transfer functions H.sub.AFF, H.sub.AE, H.sub.DE enables the algorithms provided by the methods of the present disclosure to take into account specific acoustic measurements to approximate the target transfer function H.sub.T that produces an optimum anti-noise signal from the speaker driver 106 to the user's ear 110.
(42) With reference to the ANC system 100 and for FF operation, the following formula holds for optimum operation of ANC:
H.sub.AFF.Math.H.sub.FF.Math.H.sub.DE+H.sub.AE.fwdarw.0 (4)
(43) Solving equation (4) for the filter transfer function H.sub.FF yields the following:
(44)
(45) Therefore, we may define the right hand side of equation (5) as the target transfer function H.sub.T such that:
(46)
and for optimum ANC operation:
H.sub.FF.fwdarw.H.sub.T (7)
(47) Equation (6) defines the target transfer function H.sub.T as the negative of the transfer function of the first signal path (H.sub.AE), divided by the dot product of the transfer function of the second signal path (H.sub.AFF) and fourth signal paths (H.sub.DE). The filter transfer function H.sub.FF of the feedforward filter for the feedforward microphone 102 should approximate the target transfer function H.sub.T as expressed by equation (6).
(48) A measure of the ANC performance (FFANC) of the feedforward microphone 102 may be described by the following equation:
(49)
(50) It can be observed from equation (8) that FFANC tends to zero as the filter transfer function H.sub.FF tends to the target transfer function H.sub.T.
(51) In a further embodiment, the weighting vector W of equation (3) may be multiplied by a weighting factor. The weighting vector W may be multiplied by the weighting factor in a frequency range having a minimum frequency and a maximum frequency.
(52) The weight factor may be applied in a frequency range over which it is desirable to apply ANC. Generally, higher weight values minimize the error function Err value in the least square method.
(53)
(54) In the present embodiment and after the step 210, the method 200 further comprises updating the weighting factor at a step 300. Updating of the weighting factor means that the error function Err will also be updated.
(55) After step 300, the least squares method is applied using the error function Err to determine an alternative expression for the filter transfer function H.sub.FF, at a step 302. At the step 302 the error function Err corresponds to the updated error function resulting from the step 300.
(56) In the step 302, the alternative expression for the filter transfer function is an expression that reduces the error function Err to a sufficiently small value that is indicative of the filter transfer function H.sub.FF being sufficiently close to the target transfer function and/or minimizes the error function Err.
(57) At a step 304, it is necessary to determine if the error function Err after application of the least square method at step 302 is smaller than prior to updating of the error function Err at the step 300. If the error function Err after updating is smaller, then the filter expression of the filter transfer function H.sub.FF is updated to the alternative expression at a step 306. Otherwise the filter expression remains unchanged.
(58) The steps 300, 302, 304 (with the updating as provided by step 306 if required) is repeated until either one or both of the following conditions are met: the number of repetitions of the steps 300, 302, 304, (and 306 depending on the outcome of the step 304) exceeds a limit as indicated by steps 308 and 310, and/or the error function Err is less than a threshold value as indicated by steps 312 and 314.
(59) Repetition of the steps 300, 302, 304 (with step 306 if required) acts to increase the approximation accuracy of the least square method by multiplying the weighting vector W with the weight factor that varies with each repetition. The weighting vector W may be multiplied by the weighting factor in a frequency range having a minimum frequency fmin and a maximum frequency fmax (for example, fmin≤f≤fmax, where f is a frequency within the frequency range). The method may act to iterate the values of the weight factor (wf) within a range such that wfmin≤wf≤wfmax, where wfmax is an upper limit of the weight factor range and wfmin is a lower limit of the weight factor range. The error function Err will be minimized when the weighting factor has a value that provides best performance of the ANC system and low overshoot level.
(60) The weighting vector W may be equal to one divided by the magnitude of the target transfer function H.sub.T squared, as represented by the following equation:
(61)
(62) The weighting vector W provided by equation (9) can act to minimize overshoots in ANC performance which can result in non-optimum ANC that can result in undesired ambient noise being audible to the user of the ANC headset implementing the system.
(63) Equation (8) may be rewritten as follows:
H.sub.FF.Math.H.sub.in=H.sub.out (10)
where
(64)
and
H.sub.out=FFANC−1 (12)
(65) As shown by equations (2) and (3), the method 200 aims to minimize the error between an idealised transfer function profile (provided by the target transfer function H.sub.T) and a mathematical expression describing a physically implementable transfer function (provided by the filter transfer function H.sub.FF).
(66) The target transfer function H.sub.T exhibits how gain and phase varies over frequency. A signal passing through a filter or similar (in this case the feedforward filter) having this transfer function will experience the gain and phase change characterised by the transfer function in providing the output signal.
(67) An aim of the present disclosure is to provide the method 200 to design a feedforward filter that provides the idealised performance of the target transfer function H.sub.T. This is achieved by finding the filter transfer function H.sub.FF that is represented by a mathematical expression that follows the gain and phase profile of the target transfer function H.sub.T within a suitable tolerance range represented by the error function Err.
(68)
(69) In the example presented in
(70)
(71) The computer system 500 may comprise a processor 504, a storage device 506, RAM 508, ROM 510, a data interface 512, a communications interface 514, a display 516, and an input device 518. The computer system 500 may comprise a bus 520 to enable communication between the different components.
(72) The computer system 500 may be configured to load an application. The instructions provided by the application may be carried out by the processor 504. The application may be the automated feedforward filter design tool of the present disclosure.
(73) A user may interact with the computer system 500 using the display 516 and the input device 518 to instruct the computer system 500 to implement the methods of the present disclosure in the automated design of a feedforward filter for an ANC system.
(74) With reference to equation (3), the weighting vector W and the target transfer function H.sub.T may be defined automatically as part of the method 200, or may alternatively be provided as inputs, for example by a user interacting with the computer system 500. Determination of the filter transfer function H.sub.FF of the feedforward filter may be automated using the method 200.
(75)
(76)
(77)
(78)
(79) In the method 200 of the present embodiment, applying the least square method at the step 210 comprises prioritizing reduction or minimization of the error function for frequencies where the gain of the target transfer function H.sub.T exceeds an upper limit, at step 600.
(80) The least squares algorithm preferably will prioritize the minimization of the error function Err at the frequency points of the target transfer function H.sub.T having the highest gain values because if these points are not approximated accurately in the filter transfer function H.sub.FF they will yield a large error function Err value.
(81) There may be a large difference (for example 4 orders of magnitude or more) between a minimum and a maximum gain of the target transfer function H.sub.T. By prioritizing the minimization of the error function Err at specific frequency points it is possible to minimize the error function Err in the desired frequency range more efficiently.
(82) The method 200 in the present embodiment may be applied to design a feedforward filter for operation with a frequency range having a maximum frequency and a minimum frequency. This frequency range (in Hz) may be the frequency range over which ANC is desirable. The frequency range may be used to contribute to the defining of the target transfer function H.sub.T at the step 206, as represented by a step 602. The target transfer function H.sub.T may be used to define the ANC performance (FFANC) as represented by equation (8) and with reference to equation (6), which can be used to determine H.sub.out as shown by equation (12).
(83) The weighting vector W may be defined using equation (9). The weighting vector W may be multiplied by the weight factor as discussed previously and as is illustrated in
(84)
(85) Determining the filter transfer function H.sub.FF (the step 204) comprises defining a target transfer function H.sub.T of the feedforward filter (the step 206), as previously discussed.
(86) For the step 210, determining a filter expression for the filter transfer function H.sub.FF comprises determining a first filter expression, at a step 700. The first filter expression comprises a numerator polynomial and a denominator polynomial. Expression (1) as previously discussed is an example of an expression having a numerator polynomial and a denominator polynomial. Determining first filter expression comprises applying the least square method using the target transfer function H.sub.T to determine the roots of the denominator polynomial of the first filter expression at a step 702. Determination of the roots of the denominator polynomial of the first filter expression may be performed in a warped frequency domain.
(87) The step 702 may provide an initial estimate of filter pole positioning by splitting the poles in two groups, namely higher and lower frequency regions. This may be performed using the least square method in the warped frequency domain using different warping parameters for lower and higher frequencies. The low frequency range may align with the ANC operation frequency range and the high frequency range may align with a frequency range over which overshoots are expected to occur.
(88) The warped frequency domain is a way to affect the spectral density of (change the resolution of) the frequency response points with a different factor in different ranges. This can yield different importance for the least square method in two ranges: the range with large compression will lead to less detail (higher error) in the least square method. This technique may imitate the human ear resolution.
(89) The step 702 can provide optimized and detailed pole positioning allowing the least square approximation to calculate a filter transfer function H.sub.FF that is close to the target transfer function H.sub.T over a desired frequency range specified by the user. With this technique, the overshoot limit criterium specified for higher frequencies, can be also facilitated.
(90) The pole positions may be split into two frequency ranges as follows:
1≤f≤f.sub.c (13)
f.sub.c<f≤f.sub.last (14)
where f.sub.c is a central frequency that divides the two ranges, f.sub.last is a maximum frequency that the least square method will take into account and f is a frequency.
(91) The number of poles depends on the order of the feedforward filter, which may be a user-defined parameter. Preferably, the number of poles in the ranges defined by equations (13) and (14) should total the feedforward filter order.
(92) The number of poles in each of the ranges defined by equations (13) and (14) can be user defined or iterated by seeking the solution that gives the best results. This step may be substituted by any suitable method to calculate the initial complex pole values, including a user manual input of a pole set.
(93) The following steps can be applied for each of the frequency ranges to determine the poles (the denominator polynomial of the filter transfer function H.sub.FF):
(94) 1. Compute a warped angular frequency co′ using a normalized angular frequency co via the formula:
(95)
where λ is a variable having a value between zero and one, with a higher value providing a larger spectral density and
(96)
where f.sub.s is a sampling frequency of the ANC system.
2. Defining
(97)
where B is the numerator polynomial and A is the denominator polynomial, as previously discussed.
3. Rewriting the error function Err of equation (3) as follows:
(98)
or
(99)
where H.sub.out and H.sub.in are as provided by equations (12) and (11), respectively.
4. Applying the least square method to equations (18) or (19) to determine the roots of the denominator polynomial A, as described in the step 702, as follows:
√{square root over (W)}|(H.sub.outA−BH.sub.in)|.sup.2.fwdarw.0 (20)
or
(100)
(101) Determining the first filter expression may further comprise applying the least square method using the target transfer function H.sub.T to determine the roots of the numerator polynomial (for example, B as shown in equation (17) of the first filter expression, at the step 706, after the step 702. Determination of the roots of the numerator polynomial may be performed in a warped frequency domain.
(102) The first filter expression may be updated using the roots of the denominator polynomial (for example, A as shown in equation (17)) of the first filter expression prior to the step 706, as shown by a step 704.
(103) Once the roots of the A and B polynomials have been determined, it is possible to calculate the filter frequency response of the filter expression having the A and B polynomials using the coefficients of the polynomials. In the present example it is possible to determine the filter frequency response of the first filter expression. The ANC performance may be determined using equation (8).
(104) The roots of a polynomial can be used to determine the coefficients of the polynomial and therefore can be used to determine a suitable filter expression for the filter transfer function H.sub.FF.
(105) Determining the filter expression may further comprise determining a second filter expression, at a step 708. The second filter expression takes the same format as the first filter expression and comprises numerator and denominator polynomials. The roots of the denominator polynomial of the second filter expression are equal to the roots of the numerator polynomial of the first filter expression as determined in the step 706. Determining the second filter expression comprises applying the least square method using the target transfer function H.sub.T to determine the roots of the numerator polynomial of the second filter expression, at a step 710. Determination of the roots and coefficients of the numerator and denominator polynomials of the second filter expression may be performed in a warped frequency domain.
(106) Determining the second filter expression may also comprise inverting the target transfer function H.sub.T and H.sub.out of the error functions Err presented in equations (18) and (19) prior to undertaking the least square method.
(107) Specifically, determining the second filter expression may comprise inverting H.sub.in and H.sub.out of the error functions Err presented in equations (18) and (19) prior to undertaking the least square method. In effect the second filter expression corresponds to the inverse of the filter transfer function H.sub.FF (which may be written as 1/H.sub.FF, which is equivalent to A/B), which is why the zeroes of the first filter expression (numerator polynomial roots) are used to define the poles of the second filter expression (denominator polynomial roots).
(108) In a preferred embodiment the method comprises conducting system identification introducing a desired notch-type or other ANC curve. System identification refers to the determination of a filter transfer function H.sub.FF as provided by equation (10). This technique optimizes the ANC performance results due to the introduction of an ideal ANC performance curve in the least squares method.
(109) If we use equation (12) for such an approximation, we could predefine the desired FFANC characteristics by using a notch type or other ANC curve. The least square method will define the best H.sub.FF to achieve these curves.
(110) Determining the filter expression may further comprise evaluating which of the first filter expression and the inverse of the second filter expression best meet a design specification, at a step 712. The design specification may comprise adaptive noise cancelling performance, attenuation gain and/or overshoot characteristics. The overshoot characteristics may define an overshoot limit.
(111) Determining the filter expression may comprise setting the filter expression as the one of the first filter expression and the inverse of the second filter expression that best meets the design specification, at a step 714.
(112) Using the methods disclosed herein it is possible to design a feedforward filter that achieves target ANC performance without exceeding an overshoot limit. The overshoot limit is the maximum amplification of the external sound that it is desirable not to exceed when applying the filter transfer function H.sub.FF in a feedforward filter.
(113)
(114)
(115) An additional step is shown where the n-th filter expression is evaluated to see if it better matches the design specification that the present filter expression at a step 800. If so, the filter expression is updated to the n-th filter expression at step 802.
(116) An iteration limit may be set, after which the iterative process can be halted. After each of the n filter expressions are evaluated, there may be a check to evaluate if the iteration limit is exceeded, at a step 804. The process can then be halted at a step 806 if the iteration limit is exceeded.
(117) The roots of the denominator polynomial of the (n+1)-th filter expression are set to the roots of the numerator polynomial of the n-th filter expression at a step 808. This process is also carried out for the (n+1)-th and (n+2)-th filter expression at a step 810. The integer n is updated at a step 812, such that n=n+2.
(118) If the filter transfer function H.sub.FF leads to an unsuitably high overshoot level, then it may be discarded through the iteration process at the step 800 and/or the step 712.
(119) The procedures outlined in
(120) Then the calculated zeroes (the numerator roots of the first filter expression) are introduced into the algorithm as poles (denominator roots of the second filter expression). The target transfer function H.sub.T and the filter transfer function H.sub.FF are inversed and the least square method calculates the second filter expression at the step 710. The second filter expression is an inverse filter expression. The procedure may then be iterated as described in
(121) It will be appreciated that the processes described in
(122) It will be appreciated that by implementing the iterative procedure of
(123)
(124)
(125) The feedforward filter having the filter transfer function H.sub.FF is broken down into parallel sections. The parallel sections are all added to determine the overall response of the feedforward filter at a point 1000.
(126) A first series of blocks 1002 represents the denominator polynomial determined by the warped frequency method described previously for the step 702. b.sub.00 and b.sub.01 are the coefficients of the numerator polynomial as determined in the step 706 and are part of a first section 1004. The total number of available sections are related to the overall filter order that is required prior to running this method; an overall filter of Nth order will be broken down to N/2 sections. g0 is a flat gain added to the overall system (numeral 1006). If the order is an odd value, a first order section will be introduced.
(127) Additional sections are labelled 1007 and 1008. b.sub.10, b.sub.11 are the coefficients of numerator polynomials of section 1007 and b.sub.N0, b.sub.N1 are coefficients of the numerator polynomials of section 1008. Reference numeral 1010 denotes an optional finite impulse response (FIR) part.
(128) In a preferred embodiment the methods disclosed herein uses parallel structure Second Order Sections (SOS) to enhance accuracy and reduce error. The overall filter transfer function H.sub.FF can be derived by adding the individual sections as shown in
(129) It will be appreciated that the parallel SOS can be converted to a sequential SOS (for example if required by the DSP architecture) using standard methodologies as will be clear to the skilled person.
(130)
(131)
(132) In the case that a feedback filter exists in the system, the target transfer function H.sub.T may be modified for the feedforward filter design as follows. From
H.sub.D=H.sub.AFF.Math.H.sub.FF+H.sub.AFB.Math.H.sub.FB+H.sub.D.Math.H.sub.DFB.Math.H.sub.FB (22)
(133)
Thus the designed H.sub.FF is preferably designed so that:
H.sub.D.Math.H.sub.DE+H.sub.AE.fwdarw.0 (24)
Hence:
(134)
In this case:
(135)
(136) The general principle of the methods disclosed herein, is that the minimizing the error function Err will provide the required ANC performance results. An ANC performance over the whole audible frequency range (20 Hz-20 kHz) exactly matching the target transfer function H.sub.T would require a significantly higher order compared to the typically limited ANC filter order. The filter order that is physically implementable may be dependent on the resources of the DSP.
(137) Therefore, the methods disclosed herein allow the filter transfer function H.sub.FF to achieve both the error function minimization in the desired frequency range and to obtain specific characteristics in order to minimize overshoot level outside of it.
(138) The methods of the present disclosure describe design algorithms for automatic FF ANC filter design and can provide an automated method for the design of FF filters for use in ANC headsets/headphones. The algorithms act to optimize the FF design procedure for ANC headsets/headphones.
(139) Feedforward filters for an ANC system ideally have a tolerance of less than 1 dB in magnitude and less than 6 degrees in phase compared to the measured responses for calculating the target transfer function H.sub.T as described by equation (6). The errors represented by the tolerances are referring to the difference between the target transfer function H.sub.T and the filter transfer function H.sub.FF. Moreover, the design engineer has a limited filter transfer function order available to adapt, due to resource limitation especially in IC design for obtaining lower processing cycles, power consumption, chip dimensions and cost.
(140) The methods disclosed herein provide a means for fast and automatic design of the optimal infinite impulse response (IIR) transfer functions H.sub.FF for filtering audio signal captured by the feedforward microphone 102 to enable optimization of the external noise cancellation performance in both types of digital and analogue Active Noise Cancelling (ANC) headphones, namely FF only and hybrid (incorporating FF ANC and FB ANC). The algorithm sequence of the methods disclosed herein can calculate optimal FF IIR filter transfer function coefficients that may maximize the ANC performance.
(141) The methods disclosed herein may be used to provide multiple “good candidates” for the FF filter design for an ANC system.
(142) In mass production the use of the design methods disclosed herein could allow custom feedforward filter design on each separate ANC headphone unit. Typically, this cannot be achieved with current practice solutions where due to cost and time pressure, the feedforward filters are designed for a limited number of units and the best performing feedforward filters are applied in all the production units.
(143) Various improvements and modifications may be made to the above without departing from the scope of the disclosure.