Filter systems, method of designing a convolutional filter, method of processing an input signal

A network of Prism filters with varying characteristic frequencies and harmonic numbers addresses the limitations of prior art Prism filters, enhancing filtering performance and reducing memory requirements while enabling efficient tracking and notching operations.

WO2026139372A2PCT designated stage Publication Date: 2026-07-02OXFORD UNIVERSITY INNOVATION LTD +1

Patent Information

Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
OXFORD UNIVERSITY INNOVATION LTD
Filing Date
2025-12-18
Publication Date
2026-07-02

AI Technical Summary

Technical Problem

Existing Prism filters face limitations such as fixed passband frequencies, high memory requirements for long filters, and a tradeoff between filtering performance and dynamic response, which are not adequately addressed by prior art solutions.

Method used

A network of Prism filters comprising cosine and sine filters arranged in parallel branches, with varying characteristic frequencies and harmonic numbers, allowing for improved stopband attenuation and reduced memory requirements, while enabling efficient tracking calculations without additional filters.

Benefits of technology

The configuration provides enhanced filtering performance with improved stopband attenuation and reduced computational burden, supporting efficient tracking and notching operations.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure EP2025088071_02072026_PF_FP_ABST
    Figure EP2025088071_02072026_PF_FP_ABST
Patent Text Reader

Abstract

The disclosure relates to signal processing using Prism filters. In one arrangement, a network of Prism filters receives an input signal and comprises a plurality of branches connected in parallel. Single-Prism branches and two-Prism branches are provided. A pair of characteristic frequencies for each two-Prism branch is such that the sample length of the two-Prism branch is the same as the sample length of each other two-Prism branch. A characteristic frequency of each single-Prism branch is such that the sample length of each single-Prism branch is the same as the sample length of each two-Prism branch. An output signal is generated based on a combination of outputs from the plurality of branches.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] FILTER SYSTEMS, METHOD OF DESIGNING A CONVOLUTIONAL FILTER, METHOD OF PROCESSING AN INPUT SIGNAL

[0002] The disclosure relates to methods and systems for filtering and characterising input signals using filters comprising or derived from Prism filters.

[0003] A Prism filter is a filter type that combines the benefits of Finite Impulse Response (FIR) filters and Infinite Impulse Response (HR) filters. Prism filters are discussed in US2019294649A1 (herein referred to as reference [A]), WO2019211309A1 (herein referred to as reference [B]), WO2023105194A1 (herein referred to as reference [C], and WO2023105183A1 (herein referred to as reference [D]). All four of these documents are incorporated herein by reference in their entirety. Other references, referred to as

[0001] -[6], are listed at the end of the description and are also incorporated herein by reference in their entireties.

[0004] The prior art Prism [A, 1] and ultra-narrowband Prism filter [B, 2, 3] provide a number of advantages over conventional convolution-based Finite Impulse Response (FIR) filtering. These advantages may include significantly reduced computational cost for both the initial filter design and for subsequent filter operation, for example in terms of the number of floating point operations required to update the filter output on receipt of a new input. However, these structures do have limitations. One limitation of the filter structure described in [B, 2] is that the stop band attenuation may be no lower than approximately -80 dB. A further limitation is that for long filters, for example exceeding 1 billion samples [2], the memory storage requirements may be large. A yet further limitation is that, although the design cost of an individual filter of the type described in [B, 2] may be low, in applications where large numbers of different filter designs are required, for example in spectral analysis of fixed data sets [3], the total filter design cost may remain high. An additional limitation, common to many filtering systems and well understood by those familiar with the art, is the tradeoff between filtering performance (for example the extent to which unwanted signal components are removed by the filter) and dynamic response (for example the time delay occurring between a change in the filter input and the corresponding change in the filter output). For FIR filters such as the Prism, it is well understood by practitioners of the art that the dynamic response is determined by the length of the filter in samples - the filtered response to a change in a characteristic of the input signal is complete once data with the new characteristic has passed through the entire length of the filter. Accordingly, as shorter filters have a faster dynamic response, it is desirable to find means of maintaining or improving filtering performance while maintaining or reducing filter length.

[0005] Ref [4] describes an alternative Prism filter structure, which may be described as 'low pass’, contrasting with the 'band pass’ design of [B, 2], This filter structure consists of a series of layers or sets, where each layer contains three Prisms, and where a weighted sum of the outputs of the individual Prisms in each layer is calculated and used as the input to the next layer. The outputs of the Prisms in each layer or set are all in phase. The weights are selected to provide a desired filter characteristic, for example maximizing the attenuation of the stop band. In reference [4], for example, a six layer filter is described which provides stopband attenuation of -138 dB. For this type of filter structure, the range of frequencies lying in the passband (i.e. those frequencies which are assigned a high gain by the filter) is fixed by the selected set of weights. Typically the pass band will lie between 0 Hz and the characteristic frequency m Hz, and hence the designation of the filter structure as 'low pass’. However, as further explained in [4], the technique of heterodyning, well-known to practitioners of the art, may be used in combination with a low pass filter to adjust the pass band frequency range. This low pass filtering structure may therefore be used to address several of the limitations of the band pass filter structure taught in the prior art [B, 2], as follows. Firstly, a single filter design, combined with the technique of heterodyning, can be used as a substitute for instantiating a series of distinct band pass filter designs, for example in spectral analysis (as described in [3]), thus reducing filter design cost. Secondly, a wider range of filter characteristics can be incorporated into a layered filter structure compared with the fixed characteristic of the band pass filter in [B, 2]: for example, higher stopband attenuation can be achieved. Thirdly, by applying Prisms in parallel, improved filter design may be possible while maintaining the overall filter length.The techniques outlined above, which form the prior art, retain a number of limitations, including the tradeoff between filtering performance and dynamic response, and the memory requirements for large filters. It is an object of the present disclosure to address one or more of these limitations and other problems in the art.

[0006] According to an aspect, there is provided a filter system for filtering an input signal, the filter system comprising: a network of Prism filters arranged to receive the input signal as an input, the network of Prism filters comprising at least one cosine Prism filter and at least one sine Prism filter, wherein: each Prism filter is configured to evaluate combinations of double integrals of the form:

[0007]

[0008] where s(t) is an input to the respective Prism filter, m is a characteristic frequency of the respective Prism filter, [sin |cos] represents a sine or a cosine operation, q is an optional, arbitrary phase offset variable, and h is a harmonic number of the respective Prism filter of the network of Prism filters, wherein the total integration period of 2 / m defines the Prism filter sample length; each cosine Prism filter is configured to determine a respective cosine output Gc'1, where Gc'1= I^s— I^c; each sine Prism filter is configured to determine a respective sine output Gsft, where Gsft= / sfts+ I^c,' the network of Prism filters comprises a plurality of branches connected in parallel, each branch configured to receive the input signal as an input and wherein the network of Prism filters is configured to generate an output signal based on a combination of outputs from the plurality of branches; the plurality of branches comprises a plurality of single-Prism branches and a plurality of two-Prism branches; each single-Prism branch comprises a single Prism filter; each two-Prism branch comprises two Prism filters arranged in series, a first Prism filter of the two Prism filters receiving the input signal as input and producing an output, a second Prism filter of the two Prism filters receiving the output of the first Prism filter as input, and the two Prism filters having a respective pair of characteristic frequencies; the pair of characteristic frequencies for each two-Prism branch is such that the sample length of the two-Prism branch is the same as the sample length of each other two-Prism branch; and the characteristic frequency of each single-Prism branch is such that the sample length of each single-Prism branch is the same as the sample length of each two-Prism branch.

[0009] Filter systems having this configuration are demonstrated herein to provide improved filter performance, for example improved stop-band attenuation for the same filter length, in comparison with prior art alternatives. For example, a constraint on the low pass filter designs discussed in reference [4] was that all of the Prisms have the same characteristic frequency, m. Filters systems according to the present class of embodiment, in contrast, allow for a range of characteristic frequencies, which yields improved filtering performance (as indicated for example by the demonstrated stop band attenuation vs filter length / dynamic response). The configuration also provides the basis for efficient implementation of tracking calculations, as discussed below.

[0010] According to an aspect, there is provided a signal processing filter system comprising: a pre-processing module configured to receive an input signal to be processed and generate therefrom a first pre-processed signal and a second pre-processed signal, the first pre-processed signal being orthogonal to the second pre-processed signal; a first filter module configured to receive the first pre-processed signal, the first filter module comprising: a first filter system, the first filter module configured to provide the first pre-processed signal as input to the first filter system; and a second filter system, the first filter module configured to provide the first pre-processed signal as input to the second filter system; a second filter module configured to receive the second pre-processed signal, the second filter module comprising: a third filter system that has the same configuration as the first filter system, the second filter module being configured to provide the second pre-processed signal as input to the third filter system; and a fourth filter system that has the same configuration as the second filter system, the second filter module being configured to provide the second pre-processed signal as input to the fourth filter system; and a processing unit configured to: calculate and output one or more of an amplitude, a phase and a frequency of a component of interest in the input signal using output signals from the first filter system, thesecond filter system, the third filter system and the fourth filter system; and / or output one or more notched signals using output signals from the first filter system, the second filter system, the third filter system and the fourth filter system, wherein: the first filter system comprises: a network of Prism filters arranged to receive the input signal as an input, the network of Prism filters comprising at least one cosine Prism filter and at least one sine Prism filter, wherein: each Prism filter is configured to evaluate combinations of double integrals of the form:

[0011]

[0012] where s(t) is an input to the respective Prism filter, m is a characteristic frequency of the respective Prism filter, [sin |cos] represents a sine or a cosine operation, q is an optional, arbitrary phase offset variable, and h is a harmonic number of the respective Prism filter of the network of Prism filters, wherein the total integration period of 2 / m defines the Prism filter sample length; each cosine Prism filter is configured to determine a respective cosine output Gc'1, where Gc'1= I^s— I^c; each sine Prism filter is configured to determine a respective sine output G'1, where G'1= / sfts+ I^c,' the network of Prism filters comprises a plurality of branches connected in parallel, each branch configured to receive the input signal as an input and wherein the network of Prism filters is configured to generate an output signal based on a combination of outputs from the plurality of branches; and each branch of the plurality of branches comprises at least one cosine Prism filter.

[0013] In contrast to prior art alternatives using Prism filters, this configuration enables a tracking calculation and / or notching to be performed without requiring any additional Prism filters, thereby providing improved performance for a given filter sample length. For example, this configuration supports frequency / amplitude / phase (FAP) calculations to be performed directly using the outputs of efficient low pass Prism filters, bypassing prior art alternative designs that require additional, low efficiency tracking Prisms.

[0014] According to an aspect, there is provided a matched filter system comprising: a pre-processing module configured to receive an input signal and generate therefrom a first pre-processed signal and a second pre-processed signal, the first pre-processed signal being orthogonal to the second pre-processed signal; a first matched filter module configured to receive the first pre-processed signal, the first matched filter module comprising: a first filter system, the first matched filter module configured to provide the first pre-processed signal as input to the first filter system and wherein the first filter system is configured to generate an output signal of the first filter system as a weighted sum of outputs from a plurality of branches of the first filter system, the weighted sum defined by a first set of weights; and a second filter system, the first matched filter module configured to provide the first pre-processed signal as input to the second filter system and wherein the second filter system is configured to generate an output signal of the second filter system as a weighted sum of outputs from a plurality of branches of the second filter system, the weighted sum defined by a second set of weights; a second matched filter module configured to receive the second pre-processed signal, the second matched filter module comprising: a third filter system that has the same configuration as the first filter system, the second matched filter module configured to provide the second pre-processed signal as input to the third filter system; and a fourth filter system that has the same configuration as the second filter system, the second matched filter module configured to provide the second pre-processed signal as input to the fourth filter system; and a processing unit configured to generate a filtered version of the input data using the output signals from the first filter system, the second filter system, the third filter system and the fourth filter system, wherein: the output signal of the first filter system is substantially orthogonal to the output signal of the second filter system; and the first set of weights and the second set of weights are selected such that the gain of the first filter system is substantially equal to the gain of the second filter system over a predetermined range of frequencies, wherein: each of either or both of the first filter system and the second filter system comprises: a network of Prism filters arranged to receive the input signal as an input, thenetwork of Prism filters comprising at least one cosine Prism filter and at least one sine Prism filter, wherein: each Prism filter is configured to evaluate combinations of double integrals of the form:

[0015]

[0016] where s(t) is an input to the respective Prism filter, m is a characteristic frequency of the respective Prism filter, [sin |cos] represents a sine or a cosine operation, q is an optional, arbitrary phase offset variable, and h is a harmonic number of the respective Prism filter of the network of Prism filters, wherein the total integration period of 2 / m defines the Prism filter sample length; each cosine Prism filter is configured to determine a respective cosine output Gc'1, where Gc'1= I^s— I^c; each sine Prism filter is configured to determine a respective sine output G'1, where G'1= / sfts+ I^c,' the network of Prism filters comprises a plurality of branches connected in parallel, each branch configured to receive the input signal as an input and wherein the network of Prism filters is configured to generate an output signal based on a combination of outputs from the plurality of branches; and each branch of the plurality of branches comprises at least one Prism filter.

[0017] In contrast to prior art alternatives, this configuration allows a double lobe effect in the frequency response of the Prism filter system to be suppressed, which reduces errors in calculations, such as FAP calculations.

[0018] Embodiments of the disclosure will now be described, by way of example only, with reference to the accompanying drawings in which corresponding reference symbols indicate corresponding parts.

[0019] Figure 1 is an exemplary graph illustrating signal processing blocks of a Prism filter.

[0020] Figure 2 depicts an example filter system.

[0021] Figures 3A and 3B are graphs showing the frequency response of respective branches of an example network of Prism filters of the filter system of Figure 2.

[0022] Figure 4 is a graph depicting an optimized frequency response for an example of the filter system of Figure 2.

[0023] Figure 5 depicts coefficient values defining the filter system of Figure 4.

[0024] Figure 6 depicts an example configuration of a signal characterization device using trackers and orthotrackers. The signal characterization device is configured to implement a tracking scheme using heterodyning and the trackers to extract frequency, amplitude and phase (FAP) from an input signal.

[0025] Figure 7 depicts a further example configuration of a signal characterization device using trackers and orthotrackers. The signal characterization device is configured to implement a notching scheme using heterodyning and the trackers.

[0026] Figures 8-10 compare the theoretical frequency response of an example of the filter system of Figures 2-5 (referred to as “Tracker” and an orthogonal equivalent of the filter system (referred to as “Orthotracker). Figure 8 depicts variation of gain as a function of dimensionless frequency r. Figure 9 depicts variation of the ratio of the two gains as a function of r. Figure 10 depicts variation of gain ratio - r as a function of r.

[0027] Figure 11 is a graph depicting a frequency response of the device of Figure 7 configured to create a notch at r = 0.5. Figures 12 and 13 show impulse responses of an example tracker and orthotracker for filter length 1056 samples and samples_per_m (the number of samples corresponding to a characteristic time window) = 264. Figure 12 covers the whole range of samples, whereas Figure 13 focusses on a sub-range.

[0028] Figures 14-17 show results from an optimised matched filter system. Figure 14 shows frequency responses of the individual filter systems in isolation, referred to as Matched Filter 1 (MF1) and Matched Filter 2 (MF2). Figure 15 shows the difference in gain between the matched filter systems as a function of r. Figure 16 shows frequency responses of four-layercombinations of matched filter systems and the tracker function, referred to as Matched Tracker 1 (MT1) and Matched Tracker 2 (MT2). Figure 17 shows the difference in gain between the matched trackers of Figure 16.

[0029] Figures 18-21 illustrate how the systems of Figures 14-17 can be instantiated as convolutions. Figures 18 and 20 show impulse responses of MT1 and MT2 for a 1152 sample length filter system with samples_per_m = 144 on linear and logarithmic scales respectively. Figures 19 and 21 show the corresponding impulses responses where the same matched filters have been applied to the orthotracker to generate functions referred to as MT1o and MT2o.

[0030] Figure 22 depicts an example configuration of a matched filter system for performing a calculation using mixed filters to generate a frequency response in which a negative or a positive lobe is selectively suppressed.

[0031] Figure 23 shows graphs illustrating how the matched filter system of Figure 22 can be used to suppress the negative or positive lobe.

[0032] Figures 24-32 show typical frequency (Figures 24-26), amplitude (Figures 27-29) and phase (Figures 30-32) tracking performance of MT1 (Figures 24, 27, 30), MT2 (Figures 25, 28, 31) and the high het MTC, corresponding the configuration of the lowest graph in Figure 23 (Figures 26, 29, 32).

[0033] Figure 33 show graphs illustrating how truncating the filter system of Figure 18-21 changes the frequency, amplitude and phase RMSE results for the +20dB SNR input signal used in Figure 24-32.

[0034] Figure 34 show graphs respectively illustrating (from top to bottom) the frequency, amplitude and phase performance of a truncated filter system with length 600 samples and samples_per_m = 144.

[0035] Figures 35 and 36 show the performance of the matched filter system estimate of r for true input r values offset from the true filter peak, for filter length 1152 samples and samples_per_m = 144.

[0036] Figures 37 and 38 show results corresponding to those of Figures 35 and 36 for a truncated filter of length 832 samples. Figures 39 and 40 show results corresponding to those of Figures 35 and 36 for a truncated filter of length 600 samples. Figures 41 and 42 show the amplitude response of the matched filter system configured to suppress the negative lobe, as shown in Figure 23, for the 1152 sample filter, together with the corresponding amplitude responses for truncated 832 and 600 sample lengths, all with constant samples_per_m = 144. Figure 41 depicts the amplitude response over the range of 5-15 Hz while Figure 42 focussed on the narrower range 9-11 Hz.

[0037] Figures 43 and 44 show amplitude responses of the matched filter system configured to suppress the negative lobe for a fixed filter length of 512 samples and variable samples_per_m. Figure 43 depicts the amplitude response over the range of 5-15 Hz while Figure 44 focussed on the narrower range 9-11 Hz.

[0038] Figure 45 is a flow chart depicting a framework for a method of designing a convolution filter.

[0039] Figure 46 compares in the time domain (left graph) and frequency domain (right graph) known FFT windowing functions against windowing functions implementing using filter systems of the present disclosure with samples_per_m of 144, 240 and 336 (referred to respectively as Prism 144, Prism 240 and Prism 336. All window lengths are 1024 samples.

[0040] Figure 47 shows graphs illustrating a working example demonstrating improved FFT performance using filter systems of the disclosure. A data window of 1024 samples, sampled at 144 Hz, consisting of a single tone at frequency 40Hz and amplitude 1 unit, with added white noise so that SNR = 40dB was used. The graphs show use of the MT1, MT2, MT1o and MT2o convolutions as windowing functions to obtain a single lobe at 40Hz. For each of the top, middle and lowest pairs of graphs, the left-hand plot shows the full FFT spectrum (0 - 72 Hz) while the right-hand plot shows the same results zoomed in around the 40 Hz tone.

[0041] Figure 48 shows graphs illustrating a process of determining the true frequency of the tone in the worked example of Figure 47. The top graph shows MTC and MTCo amplitudes versus FFT frequency. The second graph shows the amplitude ratio (MTCo / MTC) versus FFT frequency. The third graph shows the peak frequency estimate versus FFT frequency. The bottom graph shows the peak frequency estimate error versus FFT frequency.Figure 49 illustrates suppression of spectral leakage using notching implemented using filter systems of the disclosure. Figure 49 top left is a graph showing the amplitude of the MTC spectrum reproduced from the lowest graphs of Figure 47 but adjusted for a Prism filter offset of 0.44Hz, along with equivalent spectra obtained using known Hamming and Hanning windowing functions for comparison. Figure 49 top right shows the same spectra in a narrower frequency range around the true peak. Figure 49 bottom left shows the performance using filters systems of the disclosure with amplitude and frequency calculated to high accuracy and spectral leakage suppressed. Figure 49 bottom right corresponds to Figure 49 bottom left but in a narrower frequency range around the true peak.

[0042] Figure 50 shows graphs corresponding to those of Figure 49 except for an example in which an additional frequency component at 40.2 Hz and amplitude 0.09 Hz is included adjacent to the original tone at 40 Hz.

[0043] BACKGROUND

[0044] An example of the Prism constitutes a low pass FIR filter (or a coupled pair of filters) that can use a recursive sliding window technique, so that the computation burden is independent of the window length, with linear phase response and good numerical stability. The properties of the Prism have previously been disclosed in [A, 1] which are incorporated herein by reference in their entirety. Two or more Prisms may be combined into a chain or network to meet more sophisticated signal processing requirements, such as the provision of low pass or band pass filtering to a desired specification. Any single output Prism can be extended to provide a second output, where the two outputs are generally orthogonal (e.g., having a phase difference of TT / 2 radians). A variety of sinusoid trackers can be constructed to calculate estimates of the frequency, phase and / or amplitude of the monitored signal, each using a Prism network and a detection calculation.

[0045] Although the mathematical analysis described in this disclosure may be stated in terms of continuous notation (for example using integration rather than summation), it will be understood by those familiar with the art that a practical implementation may be based upon digitally sampled signals, and that mathematical results in the continuous domain can, with due care, be mapped onto the discrete time domain. For example, Romberg Integration, (described in J. Dutka, "Richardson Extrapolation and Romberg Integration", Historia Mathematica, Vol. 11, (1984) pp 3-21), is one technique that may be applied to obtain accurate results from discrete samples of data, which may provide a good approximation to the theoretical value of the continuous integral equivalent.

[0046] The integral limits may be selected so that the phase of an input signal s(t) at t = 0, is also the phase of the most recent sample. In other words, calculating can give the phase at the end of the data window, rather than (for example) the phase at the mid-point of the double integral. Note that the double integral extends in time from -2 / m to 0: its duration is 2 / m. Accordingly, viewed as an FIR filter, this example can be considered as having an order (i.e., the length of the data window in samples) of 2fs / m. The number of samples per integral may be referred to as “samples_per_m” and is equal to fs / m. The length of the Prism filter is thus 2*samples_per_m.

[0047] The harmonic number can be considered in the following terms. Over each integral window, the modulation function constitutes a sinusoid (either sine or cosine) that is multiplied by the input signal: for the inner integral, the input constitutes the original signal s(t); for the outer integral the input constitutes the value supplied as an output from the inner integral. When the harmonic number is one, one complete cycle of the modulation function can stretch over the window of data associated with each integral: thus the frequency of the modulation function is m. When the harmonic number is two, two cycles exactly cover each data window, and thus the frequency of the modulation function is 2m, and so on.

[0048] As developed and explained in previous disclosures, the Prism has a double integration structure that generates up to two outputs, Gshand Gch, defined as follows. For a given input signal s(t):s(t) = Asin((p(t)')' (1)

[0049] <p(t) = 2nft + <p0(2) where t is time, A is amplitude, <p(t) is the instantaneous phase, f is the frequency and p0is the initial phase at t = 0, and assuming A and f are constant, then the Prism outputs are given by the analytic expressions:

[0050] <

[0051]

[0052] and

[0053]

[0054] where r = f / m is the dimensionless frequency corresponding to f, and sinc(x) is the normalised sine function defined as follows:

[0055]

[0056] When the input signal consists of an arbitrary sum of sinusoids with distinct values of A, f and <p0(Equations 1 and 2), the corresponding Prism output is the sum of the terms in Equation 3 or 4 for each of the individual components.

[0057] Gshin equation 3 may be referred to as Gs in this disclosure; similarly, Gchin equation 4 may also be referred to as Gc in this disclosure. Note also that in this disclosure each Prism usually generates a single output, either Gs or Gc.

[0058] The length of each integral in samples is given by m / fs, where fs is the selected sampling frequency. As discussed above this length may also be referred to in this disclosure as samples_per_m. Note that this length (and therefore the attainable value of m) is desirably an integer multiple of a low (positive) power of 2 to support the use of Romberg Integration. As discussed below, additional constraints on the integral length in samples may be introduced by the techniques disclosed here. Note also the use of the term “length” here - a window of “length” 4 samples will include a total of 5 samples, including those at the beginning and end of the window.

[0059] The simple analytic expressions for the double integral groups given in Equations 3 and 4 are a key advantage of filters based on the Prism technique. The Prism may be defined as a signal processing object that receives a time series signal as an input, and which generates, via numerical integration, one or more time dependent outputs. These time-dependent outputs may correspond to the sample-by-sample values of one or both of Gs and Gc as defined in Equations 3 and 4. As discussed above, the Prism may have two primary configuration parameters, m and h. As a signal processing object, the Prism may be incorporated into systems and / or methods of detecting sinusoidal wave components, for example, in static data sets or when monitoring data that is updated over time.

[0060] Prism Signal Processing, described above and in “The Prism: Efficient Signal Processing for the Internet of Things,” IEEE Industrial Electronics Magazine, pp 2-10, December 2017. DOI: 10.1109 / MIE.2017.2760108 by MP Henry, F Leach, M Davy, O Bushuev, MS Tombs, FB Zhou, and S Karout (ref. [5]), which is incorporated herein by reference in its entirety, constitutes a new FIR technique particularly suited to the requirements of autonomous computing and for intelligent, adaptive components in CyberPhysical Systems and the Internet of Things (loT).

[0061] Figure 4B of ref. [C] shows the structure of a low pass Prism filter. This structure consists of sets of Prisms all with the same value of m and with h values of 1 , 2, or 3. Weight values wi are selected during the filter design process to achieve the desired low pass filter characteristic. The stopband attenuation achieved (for all frequencies > m ) is typically -50 dB for the two layer filter structure shown; higher levels of attenuation can be achieved by concatenating several such double layers, where the output of one pair of layers becomes the input to the next, so that for example a 12 layer filter may achieve -300 dB attenuation.

[0062] Figure 11 of ref. [C] shows a typical calculation chain to track an individual sinusoid. The low pass filter of the type shown in Figure 4B of ref. [C] has a fixed peak frequency, which does not necessarily coincide with that of the sinusoid to be tracked.Accordingly, a heterodyning stage may be used to map the input frequency to (the near vicinity of) the peak frequency of the low pass filter. A further, tracking stage, typically consisting of two individual Prisms with common m and h = 1 and 2 respectively, may be used to generate values from which the FAP (frequency / amplitude / phase) values of the sinusoid may be calculated. Thus, the low pass filter is intended to isolate the individual sinusoid from other components within the signal, while the tracker stage calculated its FAP values. The structure in Figure 11 of ref [C] can be implemented to run in real time, yielding an updated FAP estimate every sample, so that, for example, the heterodyning frequency can be adjusted to ensure the tracked signal is mapped onto the low pass filter peak as the tracked signal frequency varies over time.

[0063] Figure 12 of ref. [C] shows an alternative implementation of Figure 11 of ref. [Cj. Operating large networks containing many Prisms may require a relatively high computational load, in order to deliver a new FAP estimate with each new sample update. This high update rate may not be required, especially where the low pass filter has a narrow passband and hence a slow dynamic response. Accordingly, ref. [C] taught an alternative implementation consisting of four convolutional filters providing the equivalent calculation to the low pass filter and tracker Prisms. The convolutional filters are obtained from the impulse responses of each of the Prism channels in Figure 11 of ref. [Cj. This structure has the advantage that the convolutional calculation may be performed only when required, for example after each new sample update, or after every 10 sample updates, or every 100 sample updates. At these lower update rates the computational burden, storage requirements and algorithmic complexity may be significantly reduced compared to a full Prism implementation.

[0064] An extended form of the convolutional calculation is shown in Figure 21 of ref. [C], where the same data set can be interrogated for one or more target frequencies, and where the final FAP results are corrected for the heterodyning process to obtain the corresponding FAP values for each target frequency.

[0065] Figures 23A and 23B of ref. [C] highlight one limitation of the prior art. Figure 23A shows the positive and negative frequency response of a 12 layer filter while Fig 23B shows the same frequency response where a heterodyning frequency fh has been applied before filtering. Because the peak frequency of the lower pass filter is offset from zero, there are two passband lobes, corresponding to positive and negative frequencies respectively, which in Fig 23B are offset either side of the heterodyning frequency. Accordingly, if the target frequency is in (say) the higher frequency lobe, then noise or undesired frequency components in the lower frequency lobe may pass with relatively little attenuation into the FAP calculation of the target frequency, which may introduce errors into the results obtained.

[0066] This double lobe feature also occurs when a Prism filter is applied as a windowing function for the Fast Fourier Transform. The double lobe allows additional noise to pass into the calculated results, and also requires additional processing to identify the location of the true peak frequency, creating double peaks which may require the reporting of 'deadzones’ in the finalised spectrum. Reference [6], discussed also just below, provides a full discussion of FFT implementation using Prism filters, with Figure 13 for example of [6] illustrating the double lobe effect.

[0067] One indication of the accuracy and efficiency of sinusoidal tracking algorithms is the Cramer-Rao Lower Bound (CRLB), the theoretical limit on the accuracy with which a parameter may be calculated (by an unbiased estimator). For tracking a sinusoid in added white noise, the CRLBs are:

[0068]

[0069] where the signal-to-noise ratio SNR = A2 / 2o2, A is the true tone amplitude, o2is the additive white noise variance, and N is the number of samples in the time series.

[0070] In the prior art journal paper [Henry, MP. “An ultra-precise Fast Fourier Transform”, Measurement, Volume 220, 2023, 113372, ISSN 0263-2241, https: / / doi.Org / 10.1016 / j.measurement.2023.113372 (ref. [6]) the performance of a low pass filter plus tracker structure using Prisms shown in Figure 12A of ref. [C] is compared with the above CRLBs. For the tracked parameter values of frequency, amplitude and phase, Root Mean Square Error (RMSE) results were compared with the corresponding / CRLB limit over a wide range of parameters. Typically, the RMSE results were approximately 2.5 x / CRLB for amplitude and phase, and 6.25 x / CRLB for frequency. Note that for brevity, during discussions of tracking performance below and in figure captions, the term CRLB may be used instead of the square root of CRLB, but it is to be understood that comparisons are always made with the square root of CRLB.

[0071] A specific theme of this disclosure is the relationship between the number of samples, N, and the corresponding CRLB performance. If the same filtering and / or tracking performance can be achieved using few samples i.e. short filter lengths, and so reducing N, then this will improve the performance of Prism tracking techniques against the CRLB.

[0072] PRISM FILTERS

[0073] The present disclosure relates to systems and methods using Prism filters. The basic building block of these systems and methods is a Prism filter. An example of a Prism filter 100 is shown in Figure 1.

[0074] Each Prism filter 100 is configured to evaluate combination s of double integrals of the form:

[0075]

[0076] where s(t) is an input to the respective Prism filter, m is a characteristic frequency of the respective Prism filter, [sin |cos] represents a sine or a cosine operation, q is an optional, arbitrary phase offset variable, and h is a harmonic number of the respective Prism filter of the network of Prism filters. As noted above, evaluating the double integrals may comprise performing the integral using continuous data, or performing a discrete time equivalent, for example based on Romberg integration.

[0077] The exemplary representation of the Prism filter 100 in Figure 1 constitutes an FIR filter generating two outputs, a sine output 6 (which may be referred to as Gs) and a cosine output Gc'1(which may be referred to as Gc). As such, the exemplary Prism filter 100 of Figure 1 may be termed a combined Prism filter. Other examples of a Prism filter 100 generate only a single output: a sine output Gs or a cosine output Gc. A Prism filter 100 generating only a sine output may be termed a sine Prism filter. Each sine Prism filter of a filter system is configured to determine a respective sine output G'1, where G'1= I^s+ I^c. A Prism filter 100 generating only a cosine output may be termed a cosine Prism filter. Each cosine Prism filter of a filter system is configured to determine a respective cosine output Geft, where Geft= Is- Ic. It is to be noted that a cosine Prism filter or sine Prism filter may comprise integral blocks capable of generating both cosine and sine outputs, but only the respective cosine or sine output is output from the Prism filter.

[0078] The properties of a Prism filter 100 are defined by its characteristic frequency m and harmonic number h. Structurally, the Prism comprises at least four and up to six integration blocks, where the input to each is multiplied by a sine or cosine function with frequency h*m Hz and integrated over the period 1 / m seconds to generate the corresponding output. Accordingly, each integration block may be considered as analogous to the Discrete Fourier Transform (DFT), well known to those familiar with the art. The Prism integration block calculation can be performed recursively, as the final Prism outputs can be independent of the instantaneous phaseof the sinusoidal modulation functions. In examples of the Prism, the equivalent of filter coefficients are linearly spaced sine and cosine values, so that, for desired values of fc, m and h, the design calculation can be straightforward.

[0079] Prism signal processing can offer a unique combination of desirable properties: the calculation is FIR, and hence robust; the outputs have linear phase delay; the calculation is fully recursive so that the computational cost per sample is low and fixed, irrespective of the length of the filter; and its design can be straightforward, given desired values of fc, m and h, requiring only the evaluation of linearly spaced sine and cosine values.

[0080] LOW PASS FILTER CONFIGURATION

[0081] Figure 2 depicts a filter system 2 for filtering an input signal 4 according to an embodiment of the disclosure. The filter system 2 comprises a network of Prism filters. In Figure 2, each Prism filter is represented by a triangle with a parameter set of the Prism filter indicated within the respective triangle. The parameter set comprises a characteristic frequency m and a harmonic number h of the Prism.

[0082] When creating a filter system using a network Prism filter structure, it is desirable to ensure that whenever signal paths are combined (which occurs in Figure 2 for example at the “+” sign), the components are in phase for all possible frequency components. As all Prisms are 'linear phase’, this requirement may be achieved by ensuring that all Prisms in the combined path have the same length in time (or equivalently in the number of discrete time samples), and they are all either sine (Gs) or cosine (Gc) outputs. In Figure 4B of ref. [C], for example, this is achieved by having all Prisms having a common value of m. Denoting the period (in seconds) corresponding to common characteristic frequency m as tm= 1 / m, it is noted that each Prism consists of a double integral with total duration 2 / m, so that the two layer structure Figure 4B of ref. [C] has an overall duration of 4 / m.

[0083] Embodiments of the present disclosure, such as that exemplified in Figure 2, provide an alternative low pass filter structure which delivers a substantial improvement in stopband attenuation in comparison to the configuration of Figure 4B of ref. [C], The network of Prism filters of the filter system 2 is configured to receive the input signal 4 as an input. The network of Prism filters comprises at least one cosine Prism filter and at least one sine Prism filter. Each Prism filter may take any of the forms described above in the section headed “PRISM FILTERS” and / or as shown in Figure 1. The total integration period of 2 / m defines the Prism filter sample length (i.e., the length in samples of the Prism filter). The sample length of the Prism filter or Prism filter sample length may be referred to interchangeably as the length in time, duration, or length in samples, of the Prism filter. The sample length of the Prism filter may also be referred to as 2*samples_per_m, wherein samples_per_m is the number of samples per integral in the Prism filter, as discussed above.

[0084] Each cosine Prism filter is configured to determine a respective cosine output Geft, where Geft= I^s— I^c.

[0085] Each sine Prism filter is configured to determine a respective sine output Gsft, where Gsft= / sfts+ 1^.

[0086] The network of Prism filters comprises a plurality of branches 6A, 6B connected in parallel. Each branch 6A, 6B is configured to receive the input signal 4 as an input. The network of Prism filters is configured to generate an output signal 10 based on a combination of outputs 7 from the plurality of branches 6A, 6B. In the example shown, a weighted sum of the outputs 7 is obtained by applying respective weights

[0087] to outputs 7 from the branches 6A, 6B, thereby obtaining respective weighted branch outputs 8, and summing at summer 12.

[0088] The plurality of branches comprises a plurality of single-Prism branches 6A and a plurality of two-Prism branches 6B. Each single-Prism branch 6A comprises a single Prism filter. One and only one Prism filter is present in each single-Prism branch 6A. The Prism filters in the single-Prism branches 6A may differ from each other by having different harmonic numbers.

[0089] Each two-Prism branch 6B comprises two Prism filters. Two and only two Prism filters are present in each two-Prism branch 6B. The two Prism filters in each two-Prism branch 6B are arranged in series. A first Prism filter of the two Prism filters (e.g.,the leftmost Prism filter in one of the two-Prism branches 6B shown in Figure 2) receives the input signal 4 as input and produces an output 5. A second Prism filter of the two Prism filters (e.g., the rightmost Prism filter in one of the two-Prism branches 6B shown in Figure 2) receives the output 5 of the first Prism filter as input. An output 7 from the second Prism filter is optionally weighted (multiplied) by a respective weight (wxetc.) to produce an output 8 that contributes to a weighted sum obtained at summer 12.

[0090] The two Prism filters of each two-Prism branch 6B have a respective pair of characteristic frequencies (e.g., msl, mcletc.). The pair of characteristic frequencies for each two-Prism branch 6B is such that the sample length of the two-Prism branch 6B is the same as the sample length of each other two-Prism branch 6B. The characteristic frequency of each single-Prism branch 6A (mf in the example of Figure 2) is such that the sample length of each single-Prism branch 6A is the same as the sample length of each two-Prism branch 6B. Arranging for the sample lengths of all of the branches 6A, 6B to be the same ensures that the outputs 7 from the branches are in phase and can be combined (noting that a Gc x Gs product is in phase with a Gc output of the same sample length).

[0091] The configuration may be optimized by suitable selection of the weights to deliver an improved stopband attenuation for frequencies above a selected value m, with corresponding period tm= 1 / m and / or other desired filter characteristic. The overall duration (sample length) of the filter can be arranged to be 4 / m (like the low pass filter of Figure 4B of ref. [C]).

[0092] In some implementations, as exemplified in Figure 2, each branch of the plurality of branches 6A, 6B comprises at least one cosine Prism filter. This facilitates construction of a tracker and / or notch filter arrangement using the filter system, as discussed in further detail below in the section headed “TRACKER AND NOTCH FILTER”. In one class of implementation, as exemplified in Figure 2, each two-Prism branch 6B comprises a cosine Prism filter and a sine Prism filter, and each single-Prism branch 6A comprises a cosine Prism filter.

[0093] In contrast to the configuration of Figure 4B of ref. [C], where all Prism filters use a common characteristic frequency (equal to m), in embodiments of the present disclosure, as exemplified in Figure 2, Prism filters with a range of different characteristic frequencies can be used. This provides much greater design flexibility. In the example of Figure 2, n two-Prism branches 6B and k single-Prism branches 6A are provided. The Prism filters in the single-Prism branches 6A all have the same characteristic frequency mfcorresponding to the full duration of the path, where mf= m / 2 (so that the corresponding period of each single Prism is 2 / m.f = 4 / m). Each path is distinguished by using a different harmonic number / ie(n+i). The Prism filters in each two-Prism branch 6B have complementary characteristic frequencies. In the example shown, in which each two-Prism branch 6B comprises a cosine Prism filter and a sine Prism filter, the ith pair have characteristic frequencies msiand mcifor the sin Prism filter and the cosine Prism filter respectively. The total sample length of each two-Prism branch may thus be written as follows:

[0094] 1 1

[0095] -sl1 - mci

[0096] Arranging for all branches to have the same sample length can thus be achieved by arranging for the following to be satisfied:

[0097] 1 1 1 2

[0098] - 1 - — > —

[0099] msimcimf m

[0100] This results in the total sample length of the filter being 4 / m.

[0101] The characteristic frequencies of the Prism filters are preferably selected to facilitate the integration process, for example by facilitating use of Romberg integration. The sample length of each integral of each Prism filter in each branch of the plurality of branches 6A, 6B may thus be arranged to be an integer multiple of a positive power of two. This (optionally) constrains the choice of msiand mci.

[0102] Each two-Prism branch 6B comprises two Prism filters having a respective pair of characteristic frequences and a respective pair of harmonic numbers. The pair of characteristic frequencies and / or the pair of harmonic numbers for each two-Prism branch 6B is different from the pair of characteristic frequencies and / or pair of harmonic numbers for each other two-Prism branch6B of the plurality of two-Prism branches. This avoidance of duplicate branches may improve efficiency of the filter design calculation because duplicate branches are expected to introduce inefficiencies in the optimal selection of weighting coefficients wtand wn+k. The harmonic numbers hsi, hci, and hc^n+i)are all arbitrary positive integers, allowing an arbitrarily large number of different Prism branches to be incorporated into the design.

[0103] Figures 3A and 3B are graphs showing the frequency response of respective branches of an example network of Prism filters of a filter system 2 of the type depicted in Figure 2 and discussed above. The network comprises n = 48 two-Prism branches 6B and k = 15 single-Prism branches 6A, so a total of 63 graphs are shown.

[0104] The values of msiand mciwere selected on the following basis. It was assumed that the nominal Prism window length (the sample length of the Prism filter, corresponding to the period tm) corresponds to a whole multiple of 24 samples, and further that at most two levels of Romberg Integration will be applied, so that the minimum integration period is four samples. Accordingly, for this example, it was considered that permitted values of msand mcwere 6 / j x m and 6 / (12 -j) x m for anyj = 1, 2, ... 11. For example, suppose the period tmcorresponds to 24 samples, then the characteristic frequency mfof Prism filters in single-Prism branches 6A corresponds to 48 samples, the total sample length of each branch would be 96 samples (2 x 48, taking into account the double integral in each Prism filter) and permitted values of ts= l / msand tc= l / mccorrespond to the sample length pairs [4, 44], [8, 40], [12, 36], .... [44, 4], These values ensure that the total sample length of each two-Prism branch is 96 samples or 4 / m as required, while each Prism window (sample length of a Prism filter) is a multiple of 4 samples in length and so can implement at least two stages of Romberg Integration.

[0105] In Figures 3A and 3B, each graph corresponds to a signal path (i.e., one of the branches), with indices 1 - 48 for two-Prism branches 6B and 49 - 63 for single-Prism branches 6A. The text above each graph gives the parameters used, while the plot itself shows the frequency response of the corresponding signal path, where the x axis shows the dimensionless frequency r. The frequency responses are scaled so that the maximum value has amplitude + / - 1. The plots for the two-Prism branches 6B are arranged so that the same msand mcvalues are used for all plots in each of the six columns (for example ms= 6 / 11 and mc= 6 / 1 in the first column), while the same values of hsand hcare used in each row, ranging from 1 to 8. Note that the selected values are far from exhaustive. Specifically, in this example, the hsand hcvalues are selected to be equal for every two-Prism branch 6B. Thus, in this example the harmonic numbers in each pair of harmonic numbers of each two-Prism branch 6B have the same value as each other. This arrangement has been found to deliver efficient filter designs, but many other parameter values may be used, which may yield yet further improved performance. Similarly, in the selection of msand mcvalues only a subset of possible combinations (corresponding to the range] = 11, 10, ... 6) have been used. The frequency responses of the single-Prism branches are illustrated in graphs 49-63 where the value of mcis fixed at 6 / 12 m, but the value of hcincreases from 1 up to 15.

[0106] All of these frequency responses are distinct and can be linearly combined using any of several conventional optimisation techniques known to practitioners of the art to create a desired combined frequency response.

[0107] An example filter design is illustrated in Figures 4 and 5. Figure 4 shows the optimised frequency response, which maximises the attenuation of the stop band beginning at m (i.e. r = 1). Here, an attenuation of approximately -80dB has been achieved, a significant improvement over the ~ -50dB attenuation achieved for the dual layer filter of Figure 4B of ref. [C], Figure 5 shows example coefficient values (weights w to generate an optimised design. Each coefficient (weight) is multiplied by a respective one of the functions shown in Figures 3A and 3B and the results are summed to generate the frequency response shown in Figure 4.

[0108] Accordingly, Prism filters configured as described above may provide improved filter performance, for example improved stop-band attenuation for the same filter length, in comparison with prior art alternatives.TRACKER AND NOTCH FILTER

[0109] Figures 6 and 7 depict signal processing filter systems 200 and 300. The signal processing filter systems 200, 300 may comprise filter systems comprising networks of Prism filters that take any of the forms described above in the section headed “LOW PASS FILTER CONFIGURATION” or other forms.

[0110] Tracking of frequency, amplitude and phase of an input signal (which may be referred to as FAP tracking) was implemented in ref. [C], as depicted in Figure 11 of ref. [C], via two filtering stages: an initial low pass prefilter of the type shown in Figure 4B of ref. [C] followed by a tracking stage using two dual output tracker Prisms in parallel, which generate the values required for the FAP calculations. The tracker Prisms add to the length in samples of the overall signal path, while providing limited additional filtering. Typically the shared m value of the tracker Prisms is similar to the m value used in the low pass prefilter. Accordingly, where the low pass prefilter is two layer as shown in Figure 11 of ref. [C], then the total length of the calculation including the tracker stage is 3 layers, delivering FAP values with filter attenuation of approximately -50dB.

[0111] Embodiments of the present disclosure provide a filter system, e.g. as described above in the section “LOW PASS FILTER CONFIGURATION” that enables a tracking calculation to be performed without requiring any additional tracking Prisms. This will be elaborated in more detail shortly, but in brief, the calculation of phase and amplitude is relatively straightforward, both requiring orthogonal sine / cosine outputs with the same phase and filter gain applied. This is readily achieved, particularly if heterodyning is used to map the target frequency to the near vicinity of the filter peak frequency: heterodyning can be extended to generate, from a single input signal, a sine / cosine orthogonal pair of signals at a frequency close to the filter peak. These orthogonal heterodyned paired signals may have the same low pass filtering applied to each of them, with the resulting filtered, orthogonal results combined, using a root-sum-square calculation to provide amplitude, and an arctangent calculation to provide phase.

[0112] The calculation of frequency however requires additional information, which here is provided via an innovative technique as follows. From equations (1) and (2) the gain of any Prism output Gs or Gc, denoted Ts'1or rcft, is a function of r, the dimensionless input frequency, and the harmonic number h:

[0113]

[0114] or

[0115]

[0116] so that

[0117] rsh(r, / i) = f rch(r, / i) (11) h

[0118] and

[0119] h. Vsh(r,h) = r. V (r,h) (12) In other words, the gain of any Gs Prism (sine Prism filter) output is equal to that of an equivalent Gc Prism (cosine Prism filter) output (i.e. with the same parameters m and h), multiplied by the ratio r / h.

[0120] It can be observed in the example of Figure 2, that all signal paths, whether corresponding to single-Prism branches 6A or two-Prism branches 6B, contain exactly one Prism filter with a Gc output. As mentioned above, the example of Figure 2 exemplifies a class of embodiment in which each branch of the plurality of branches 6A, 6B comprises at least one cosine Prism filter. This enables the construction of another low pass filter based on the original optimised design (e.g., as shown in Figures 4 and 5), as follows. Each Gc Prism (cosine Prism filter) is replaced with the equivalent Gs Prism (sine Prism filter), while the corresponding optimised coefficient value (weight wt) (e.g., as shown in Figure 5) is multiplied by the corresponding value of h for the substituted Gc Prism. By carrying out this substitution (Equation 12), the gain of each path (branch 6A, 6B) of the newly constructed filter system is equal to r times that of the equivalent path (branch 6A, 6B) of the original filter system. As this conditionapplies to every branch, it holds for the entire filter system. Accordingly, the newly constructed filter system will have the same gain characteristics as the original filter system (Figures 3A and 3B) multiplied by r. Passing the input signal through both filter systems and comparing the amplitudes of the outputs provides a means to determine r, and hence the frequency of the input signal, without any further tracking stage. Accordingly, a filter system according to the present disclosure, such as the filter system of Figure 2, assuming the availability of its complement, can combine the role of low pass filtering and tracking. For convenience, this structure is simply referred to as a tracker. Note also that by replacing Gc with Gs, the new filter outputs will become orthogonal to those of the original tracker (Equations 3 and 4). For convenience, therefore, the new filter structure is called the orthotracker.

[0121] Figures 8-10 compare the theoretical frequency response of the tracker of Figure 2-5 and its corresponding orthotracker. Figure 8 shows the two gains as they vary with the dimensionless frequency, r. Figure 9 shows the corresponding gain ratio. Figure 10 shows that the difference between the gain ratio and r is of the order of 1 e-10. Note that these results are based on the analytic forms of the gains, and do not take into account the effects of signal noise or filter instantiation. Nevertheless, it should be clear to one familiar with the art that if a signal is passed through both filters in parallel, the ratio of calculated amplitudes of the filtered signals may be used to calculate an estimate of the frequency of the original input signal.

[0122] Figure 6 illustrates an example configuration of a signal processing filter system 200 based on the above principles (i.e., using trackers and orthotrackers, as described above). In the example shown, a sampled input signal d(t), labelled “4”, is first heterodyned by a pre-processing module 20 to be close to the filter peak, generating orthogonal outputs s(t) and c(t), respectively labelled “22” and “24” and referred to as first and second pre-processed signals below. For example, if the input signal has approximately but not exactly known frequency ftargetand the filter peak frequency is fpeakthen the heterodyning frequency may be for example fhet= ftarget— fpeak- Multiplying d(t) by pure sine and cosine signals with frequency fhetwill generate orthogonal outputs s(t) and c(t) at or near the filter peak frequency. Those familiar with the art will appreciate that other signal components are also generated by the heterodyning calculation: in any particular instantiation the filtering system may be designed to ensure that these undesired components fall outside the passband of the subsequent Prism low pass filters and so are not further considered here.

[0123] The heterodyned outputs s(t) and c(t) are each filtered by the tracker and orthotracker, yielding respective filtered outputs Tr_s(t), Tro_s(t), Tr_c(t) and Tro_c(t), respectively labelled “31”, “32”, “33” and “34”.

[0124] As discussed above, the amplitude and phase of d(t) can be calculated using the two orthogonal outputs of the tracker filter, for example:

[0125] 71 (t) = / Tr_s t)2+ Tr_c(t)2(13) and

[0126] (p(t)' = arctan (Tr_c(t),Tr_s(t)) (14) In some implementations, further calculations may be needed to compensate for filter gain (for amplitude) and for filter delay (for phase).

[0127] The value of r, and hence the input frequency, can be estimated by calculating the amplitude from the orthotracker:

[0128] 71o(t) = / Tro_s(ty + Tro_c(t)2(15) from which the value of r is readily calculated:

[0129] r(t) = 4to(t) (t)) (16) An accurate value of ftargetis readily calculated from the calculated value of r, m, and fhet.

[0130] The tracker / orthotracker filter pairs may also be used as an alternative means of notching out a specific unwanted signal component, a technique originally discussed for example in [Henry, MP, et al “The Prism: Efficient Signal Processing for the Internet of Things”, IEEE Industrial Electronics Magazine, 2017] (ref. [5]). As shown in Figure 7, this may use a similar scheme to the FAPtracking calculation configuration shown in Figure 6 and discussed above. Given the established gain ratio relationship between the tracker and orthotracker outputs, and noting the 90 degree phase shift between the tracker and orthotracker outputs for the same input, notching the content at dimensionless frequency rnmay be readily achieved as follows:

[0131] out_s(t) = rnTr_s(t)' — Tro_c(t) (17) and

[0132] out_c(t) = rnTr_c(t) — Tro_s(t) (18) For example, Figure 11 shows the frequency response of a notching calculation where rn= 0.5; the notch is clearly visible at the desired frequency. As discussed in ref. [5], this technique may be used as part of a wider signal processing scheme where other signal components are tracked once the unwanted signal component has been removed via notching. For example, as discussed later, this notching technique may be used to reduce spectral leakage around identified peaks in an FFT calculation.

[0133] As discussed in ref. [C] and illustrated in Figures 11 and 12 of ref. [C], a network of Prism filters can be converted into convolutional form by calculating the corresponding impulse response. This requires the selection of a specific sample rate and of m, or more specifically the number of samples corresponding to the characteristic time window, tm, termed here samples_per_m, which as discussed above, for the tracker and orthotracker example designs discussed, would be an integer multiple of 24. An illustrative example is shown in Figures 12 and 13. Here, samples_per_m = 264, yielding a total filter length of 1056 samples. In the legends, TR corresponds to the tracker filter and TRo the orthotracker filter. The apparent blurring of the lines in Figure 12 is explained in Figure 13, which shows a close up of the region where TR and TRo overlap. Both sequences of convolution coefficients are nonsmooth, arising from the effect of the Romberg Integration calculation within each Prism filter. As demonstrated in ref. [6], the nonsmooth coefficients generated via Romberg Integration may result in a convolutional filter with the same high filter precision as the Prism instantiations.

[0134] Accordingly, the tracker and orthotracker structures can be used to perform tracking and notching while simultaneously delivering good stopband attenuation, and can be readily incorporated into more elaborate Prism networks and converted into computationally efficient convolutional forms, as discussed in more detail below.

[0135] Thus, based on the above principles, a signal processing filter system 200, 300 may be provided, as exemplified in Figures 6 and 7. The device 200, 300 comprises a pre-processing module 20. The pre-processing module 20 is configured to receive an input signal 4 to be characterized. The pre-processing module 20 generates therefrom a first pre-processed signal 22 and a second pre-processed signal 24. The first pre-processed signal 22 is orthogonal to the second pre-processed signal 24. The pre-processing module 20 may be configured to perform heterodyning to map the component of interest in the input signal 4 to be within a predetermined range of a peak in the frequency response of a first filter system 51 (discussed below). The pre-processing module 20 may use heterodyning to generate the orthogonal first pre-processed signal 22 and second pre-processed signal 24 as described above.

[0136] The signal processing filter system 200, 300 comprises a first filter module 41 configured to receive the first pre-processed signal 22.

[0137] The first filter module 41 comprises a first filter system 51 (which may be referred to as a tracker in accordance with the discussion above). The first filter system 51 may take any of the forms described above with reference to Figure 2 in the section headed “LOW PASS FILTER CONFIGURATION” in which each branch of the plurality of branches 6A, 6B comprises at least one cosine Prism filter. The first filter module 41 is configured to provide the first pre-processed signal 22 as input to the first filter system 51.

[0138] The first filter module 41 further comprises a second filter system 52 (which may be referred to as an orthotracker in accordance with the discussion above). The second filter system 52 has the same configuration as the first filter system 51 exceptthat each cosine Prism filter is replaced by a sine Prism filter. The first filter module 41 is configured to provide the first pre-processed signal 22 as input to the second filter system 52.

[0139] The signal processing filter system 200, 300 comprises a second filter module 42 configured to receive the second pre-processed signal 24.

[0140] The second filter module 42 comprises a third filter system 53 (which may be referred to as a tracker in accordance with the discussion above). The third filter system 53 has the same configuration as the first filter system 51. The second filter module 42 is configured to provide the second pre-processed signal 24 as input to the third filter system 53.

[0141] The second filter module 42 further comprises a fourth filter system 54 (which may be referred to as an orthotracker in accordance with the discussion above). The fourth filter system 54 has the same configuration as the second filter system 52. The second filter module 42 is configured to provide the second pre-processed signal 24 as input to the fourth filter system 54.

[0142] The signal processing filter system 200, 300 further comprises a processing unit 60.

[0143] The processing unit 60 is configured to calculate and output (e.g., as a data stream and / or on a display etc.) one or more of: an amplitude (e.g., (t), as exemplified in Figure 6); a phase (e.g.,

[0144]

[0145] as exemplified in Figure 6) and a frequency (e.g., (t), as exemplified in Figure 6) of a component of interest in the input signal 4 to be processed. The processing unit 60 uses an output 31 from the first filter system 51, an output 32 from the second filter system 52, an output 33 from the third filter system 53 and an output 34 from the fourth filter system 54. As described above, the outputs correspond respectively to Tr_s(t), Tro_s(t), Tr_c(t) and Tro_c(t). The amplitude may be calculated for example using equation (13). The phase may be calculated for example using equation (14). The frequency may be calculated for example by using equations (15) and (16) to obtain r, which is related to the frequency of the component of interest by the definition of r (r = f / m) and the known frequency shift applied by the heterodyning of the pre-processing module 20.

[0146] The processing unit 60 may alternatively or additionally be configured to output (e.g., as a data stream etc.) one or more notched signals using outputs 31-34 from the first filter system 51, the second filter system 52, the third filter system 53 and the fourth filter system 54. The notched signals may be derived for example using equations (17) and (18).

[0147] In the above example, the first filter system 51 is described as taking any of the forms described above with reference to Figure 2 in the section headed “LOW PASS FILTER CONFIGURATION” in which each branch of the plurality of branches 6A, 6B comprises at least one cosine Prism filter. This approach makes use of the general advantages associated with the filter systems described with reference to Figure 2 in the section headed “LOW PASS FILTER CONFIGURATION”. However, it is not essential to use such filter systems. More generally, the first filter system 51 may comprise any filter system that comprises a network of Prism filters arranged to receive the input signal 4 as an input, in which the network of Prism filters comprises at least one cosine Prism filter and at least one sine Prism filter as defined above, in which the network of Prism filters comprises a plurality of branches connected in parallel, each branch configured to receive the input signal 4 as an input, wherein the network of Prism filters is configured to generate an output signal based on a combination of outputs from the plurality of branches, and in which each branch of the plurality of branches comprises at least one cosine Prism filter.

[0148] The plurality of branches may comprise a plurality of two-Prism branches 6B (similar to Figure 2). Each two-Prism branch 6B comprises two Prism filters arranged in series, a first Prism filter of the two Prism filters receiving the input signal 4 as input and producing an output, and a second Prism filter of the two Prism filters receiving the output of the first Prism filter as input. The pair of characteristic frequencies for each two-Prism branch 6B may be such that the sample length of the two-Prism branch 6B is the same as the sample length of each other two-Prism branch 6B. The pair of characteristic frequencies and / or the pair of harmonic numbers for each two-Prism branch 6B may be different from the pair of characteristic frequencies and / or pair of harmonic numbers for each other two-Prism branch 6B.The plurality of branches may comprise a plurality of single-Prism branches 6A, which may have different harmonic numbers. The characteristic frequency of each single-Prism branch 6A may be such that the sample length of each single-Prism branch 6A is the same as the sample length of each two-Prism branch 6B.

[0149] MATCHED FILTERS

[0150] Matched filter systems are now described. Figure 22 depicts an example of a matched filter system 400. The matched filter system 400 is configured to suppress or substantially avoid a double lobe effect in the frequency response of the filter system. As will be shown, this may lead to a significant reduction in the root mean square error (RMSE) of FAP calculations by restricting the effective passband of the device to a single (e.g., a positive or negative) frequency lobe only.

[0151] The matched filter system may be configured using concepts similar to those underpinning the tracker and notch filter embodiments described above in the section headed “TRACKER AND NOTCH FILTER”, in particular in relation to using orthogonal pairs of filters (e.g., the tracker / orthotracker pair described above). In the tracker configuration discuss above, given a tracker design an orthogonal filter is readily constructed algebraically, where the gain ratio between the two filters is r. For matched filtering, the aim is instead to construct two orthogonal filters where the gains are equal across the nominal passband r e [0, 1], A simple algebraic construction is not currently known; however, optimisation may be used to design two orthogonal filters with closely matching gains. As demonstrated below, good matching can be achieved using two layer filters of appropriate design; however, this can only be achieved at the cost of reduced stopband attenuation for the same two layer filter. Accordingly, a multi-layer filter scheme may be used, for example by creating a four layer Prism filter which combines the two layer tracker / orthotracker described above with either of two two-layer matched filters.

[0152] Byway of example, the first of the two-layer matched filters, denoted MF1, may use the same structure as shown in Figure 2, whereby a different set of weights

[0153]

[0154] are selected to achieve the desired matched gain characteristic, as discussed below. A similar structure can be constructed to create an orthogonal matched filter, denoted here MF2, as follows. Each of the filters in a single-Prism branch 6A that generates a Gc output in Figure 2 is replaced by a corresponding Prism filter with a Gs output, i.e. one with the same values of m and h. On the two-Prism branches with Prism pairs, the (first in sequence) Gs Prism filter is replaced by an equivalent Gc Prism. As explained in the prior art (and as illustrated in Figure 4B of ref. [C]), Gc x Gc outputs while being 180° out of phase with Gs outputs, are readily combined through the use of negative weightings, so that this alternative design structure may validly combine all of its branches.

[0155] The optimisation problem can be defined as selecting the 63 filter coefficients (weights) of MF1 together with the 63 coefficients (weights) of MF2 such that the gains of the two functions match as closely as possible over the region r e [0,1], Figures 14-17 show results from an optimised matched filter design. Figure 14 shows the frequency responses of the two layer MF1 and MF2 filters in isolation, while Figure 15 shows the difference between the two gains. Here the gains are shown as absolute values on a logarithmic scale, rather than on a decibel scale, to assist interpretation of the difference in filter gains, which here does not exceed 1e-2 over the entire region r e [0,1] and is mostly below 1e-3. Figures 16 and 17 show the four-layer combinations of matched filters and the tracker function, labelled correspondingly Matched Tracker 1 (MT1) and Matched Tracker 2 (MT2). Here the combined filter has a stop band of approximately 3e-6, corresponding to -110 dB (compared with -80 dB for the tracker alone - see Figure 4), while the maximum tracker gain difference is approximately 1 e-3.

[0156] These filter designs can be instantiated as convolutions, as shown in Figures 18-21, where the impulse responses of MT1 and MT2 are shown for a 1152 sample length filter where samples_per_m, the number of samples in each window of duration tmis 144. Figures 18 and 20 show the MT1 and MT2 functions on linear and logarithmic scales respectively, while Figures 19 and21 show the same matched filters MF1 and MF2 applied to the othotracker function TRo (Figures 12 and 13) to generate functions MTo1 and MTo2, which are also required in order to track a sinusoid.

[0157] Figure 22 shows an exemplary calculation using the mixed filters to eliminate the negative lobe. After heterodyning the sine and cosine components are both passed through MT 1 and MT2 (referred to as “MF1 + Tracker” and “MF2 + Tracker”) to generate four values MT1 _s(t) , MT2_s(t), MT1 _c(t) , and MT2_c(t). A linear calculation generates Combined functions MTC_s(t) and MTC_c(t) in which the negative lobe is eliminated, thus:

[0158] MTC_s(t) = MT1_c(t) + MT2_s(t) (19) MTC_c(t) = MT2_c(t) - MT1_s(t) (20) A similar structure can be constructed using the MT1o and MT2o filters; the resulting combined outputs MTC_s(t), MTC_c(t) and their orthotracker equivalents MTCo_s(t) and MTCo_c(t), can be used for FAP tracking via equations (13) - (16) as demonstrated below.

[0159] Figure 23 illustrates how the use of matched filters as applied in Figure 22 leads to the elimination of either the negative or the positive lobe. Here the sample rate is 144 Hz, the convolutional filter length is 1152 samples, m = 1 Hz, and the peak low pass frequency is 0.44 Hz. In the first four plots the heterodyning frequency is fixed at 9.56 Hz (i.e. true frequency - filter peak frequency), so that an input signal with frequency 10 Hz is be mapped onto the filter peak and so obtain the maximum gain of 1.0 (0 dB). The filter and tracking scheme of Figure 22 is applied to a sequence of simulated time series, each consisting of a noisy sinewave with constant amplitude 1V, a constant frequency in the range 5 Hz to 15Hz (in steps of 0.01 Hz), and with added white noise so that SNR = 40dB. The plots show the calculated value of amplitude for the tracked signal over the range of input frequencies, demonstrating the effective gain of the filter and amplitude calculations.

[0160] The first two plots show the amplitude outputs for MT 1 and MT2, which exhibit the double lobe effect: there is a peak at 10 Hz as required, but the second, negative lobe is also present with equal magnitude. This is a mirror reflection of the higher lobe around the heterodyning frequency of 9.56Hz, so that the second filter peak occurs at 9.12 Hz. The third plot shows the amplitude of the combined output, MTC, calculated using Equations 19 and 20. Here the negative lobe has largely been eliminated. The peak value in the region of the negative lobe just exceeds 1 e-3, which corresponds to the peak difference in matched filter magnitudes shown in Figures 14-17.

[0161] The fourth plot in Figure 23 demonstrates that the negative frequency lobe can be preserved and the positive lobe suppressed. This is achieved by using an alternative combination of MT1 and MT2, as follows:

[0162] MTCL_s(t) = MT1_c(t) - MT2_s(t) (21) MTCL_c(t) = MT2_c(t) + MT1_s(t) (22) where MTCL denotes the matched filters combined to deliver the lower lobe.

[0163] The lowest plot in Figure 23 shows that by changing the heterodyning frequency to 10. 44 Hz (i.e. true frequency + filter peak frequency) the peak gain occurs at the true frequency 10 Hz via the negative lobe. This frequency distribution is symmetric with the MTC solution in the third plot, in particular with the suppressed lobe lying above, rather than below the true peak.

[0164] There are thus at least two ways of combining the matched filters: using the positive lobe only while heterodyning with a lower frequency i.e. target frequency - filter peak frequency, referred to here as “het low”, or alternatively using the negative lobe only while heterodyning with a higher frequency i.e. target frequency + filter peak heterodyning high (or het high), referred to here as “het high”. Both these approaches deliver similar results at identical computational cost. In some applications there may be reasons to select one method over the other, for example to maximise attenuation of an adjacent tone either above or below the target frequency, but as discussed below, it may also be beneficial to combine the results of the het high and het low methods, despite the additional computational cost.Figures 24-32 show typical frequency (Figures 24-26), amplitude (Figures 27-29) and phase (Figures 30-32) tracking performance of MT1 (Figures 24, 27, 30), MT2 (Figures 25, 28, 31) and the high het MTC (Figures 26, 29, 32) as follows. The input signal is a pure sinewave of amplitude 1V with added white noise to yield a signal-to-noise ratio (SNR) of +20dB. This is passed into three different filter / tracker systems using MT1, MT2 and MTC with high het as the filtering calculations in convolutional form, using the same 1152 sample window length and 144 samples_per_m as before. New results are generated each sample. Note that in the plots only the errors from the true values are shown.

[0165] The results in Figures 24-32 have common characteristics. MT1 and MT2 generate relatively noisy results, with a strong oscillatory variation of approximately 1 Hz. By contrast the MTC results appear relatively smooth, with low frequency variation. The ~ 1 Hz component can be attributed to noise also being allowed to pass through the positive frequency lobe in the tracker filter, resulting in a beating effect, where the difference between the positive and negative lobe peaks is 2 x 0.44 = 0.88 Hz. This is eliminated in the MTC filter, resulting in a lower frequency characteristic as well as lower magnitude of the resulting errors.

[0166] The title of each graph includes statistics on the square root of the CRLB (where the square root of CRLB is referred to as “CRLB” in the plots) for the given parameter (see Equations 6 - 8), the observed root mean square error in the calculated parameter values, and the ratio of RMSE / \ / C / ?LS.

[0167] A closer examination shows that the sinusoidal component in the errors for MT1 and MT2 are approximately 180 degrees out of phase. For example, in Figure 24-26, the MT 1 frequency error is at a maximum at approximately t = 75s and at 85s, but a minimum at approximately t = 90s. By contrast the MT2 frequency error is a minimum at approximately t = 75s and at 85s, and a maximum at approximately t = 90s. Accordingly, the combined calculation MTC is likely to result in significant error cancellation, which is demonstrated in the calculated statistics. In Figures 24-26, the RMSE errors of both MT1 and MT2 are approximately 20 x^ / CRLB. However, the MTC error is 1.67 x^ / CRLB. The amplitude results in Figures 27-29 show the RMSE errors of both MT1 and MT2 are approximately 2.12 x^ / CRLB, while the MTC error is 1.42 x^ / CRLB. Finally, the phase results in Figures 30-32 show the RMSE errors of both MT1 and MT2 are approximately 2.05 x^ / CRLB, while the MTC error is 1.33 x^ / CRLB. These values are a significant improvement on the prior art Prism performance vs the CRLB described above.

[0168] Note that these results are obtained where the heterodyned input frequency is equal to the filter peak frequency. As the heterodyned frequency moves away from the filter peak, there will be a corresponding loss of performance, due to a reduced postfilter signal-to-noise ratio. In addition, the filter gain is unity at the peak frequency, but for other input frequencies the amplitude value may need to be corrected for filter gain. Those familiar with the art will appreciate that gain compensation can be applied from first principles, based on the filter structure, or by approximation, for example using a polynomial based on the calculated value of r.

[0169] Thus, based on the above principles, a matched filter system 400 may be provided, as exemplified in Figure 22. The filter system 400 comprises a pre-processing module 20. The pre-processing module 20 is configured to receive an input signal 4. The pre-processing module 20 generates therefrom a first pre-processed signal 22 and a second pre-processed signal 24. The first pre-processed signal 22 is orthogonal to the second pre-processed signal 24. The pre-processing module 20 may be configured to perform heterodyning to map the component of interest in the input signal 4 to be within a predetermined range of a peak in the frequency response of a first filter system 51 (discussed below). The pre-processing module 20 may use heterodyning to generate the orthogonal first pre-processed signal 22 and second pre-processed signal 24 as described above. The pre-processing module 20 may take any of the forms described above with reference to Figures 6 and 7.

[0170] The filter system 400 comprises a first matched filter module 71 configured to receive the first pre-processed signal 22. The first matched filter module 71 comprises a first filter system (MF1 inside block 81). The first filter system may comprise a matched filter, referred to as MF1 in the discussion above. The matched filter of the first filter system may take any of the forms described above with reference to Figure 2 in the section headed “LOW PASS FILTER CONFIGURATION”. As exemplified inFigure 22, the block 81 optionally further comprise a tracker (labelled “Tracker”). Thus, the filtering performed by the block 81 in the example of Figure 22 is a combination of a matched filter (MF1) and a tracker (Tracker), as illustrated in Figure 16 and referred to above as “MT1”, rather than just a matched filter (MF1) on its own (as illustrated in Figure 14), which is also possible.

[0171] The first matched filter module 71 is configured to provide the first pre-processed signal 22 as input to the first filter system. The first filter system is configured to generate the output signal of the first filter system as a weighted sum of the outputs 7 from the plurality of branches 6A, 6B of the first filter system. The weighted sum is defined by a first set of weights.

[0172] The first matched filter module 71 further comprises a second filter system (MF2 in block 82). The second filter system may comprise a matched filter, referred to as MF2 in the discussion above. The matched filter of the second filter system may take any of the forms described above with reference to Figure 2 in the section headed “LOW PASS FILTER CONFIGURATION”. The first matched filter module 71 is configured to provide the first pre-processed signal 22 as input to the second filter system. The second filter system is configured to generate the output signal of the second filter system as a weighted sum of the outputs 7 from the plurality of branches 6A, 6B of the second filter system. The weighted sum is defined by a second set of weights.

[0173] The filter system 400 comprises a second matched filter module 72 configured to receive the second pre-processed signal 24.

[0174] The second matched filter module 72 comprises a third filter system (MF1 in block 83) that has the same configuration as the first filter system (MF1 in block 81). The second matched filter module 72 is configured to provide the second pre-processed signal 24 as input to the third filter system.

[0175] The second matched filter module 72 comprises a fourth filter system 84 (MF2 in block 84) that has the same configuration as the second filter system (MF2 in block 82). The second matched filter module 72 is configured to provide the second pre-processed signal 24 as input to the fourth filter system.

[0176] The output signal of the first filter system is substantially orthogonal to the output signal of the second filter system. The output signal for the third filter system is thus also substantially orthogonal to the output signal of the fourth filter system. As described above, the gain of the first filter system 81 is substantially equal to the gain of the second filter system 82 over a predetermined range of frequencies. The gain of the third filter system 83 is thus substantially equal to the gain of the fourth filter system 84. The equalisation of the gains may be realised by any suitable optimisation technique, which may involve iteratively varying the first and / or second sets of weights until a suitable level of gain matching is achieved.

[0177] The filter system 400 further comprises a processing unit 60.

[0178] The processing unit 60 is configured to generate a filtered version of the input data 4 using the outputs from the first filter system, the second filter system, the third filter system and the fourth filter system. The processing unit 60 uses an output from the first filter system (which in the example shown, is provided via a tracker to yield output 91, thereby involving a combination of a matched filter (MF1) and tracker (Tracker), for example providing the type of -110dB four layer concatenated matched filter and then tracker calculations discussed above and illustrated in Figures 16, 18 and 20), an output from the second filter system (provided in the example shown via a tracker in a similar way, to yield output 92), an output 93 from the third filter system (provided in the example shown via a tracker in a similar way, to yield output 93) and an output 94 from the fourth filter system (provided in the example shown via a tracker in a similar way, to yield output 94). As described above, in the example shown the outputs 91-94 correspond respectively to MT1 _s(t), MT2_s(t), MT1 _c(t), and MT2_c(t). The filtered version of the input data 4 may be obtained using equations (19) and / or (20). Thus, the filtered version of the input data may comprise either or both of MTC_s(t) and MTC_c(t) as defined in equations (19) and (20). The filter system 400 may thus be configured such that a variation of gain versus frequency of each of the first filter system, the second filter system, the third filter system and the fourth filter system comprises two local maxima defining respective symmetrical lobes. The processing unit 60 may be configured to combine the outputs from the first filter system,the second filter system, the third filter system and the fourth filter system in such a way as to produce a filtered version of the input signal 4 in which a symmetrical lobe in a variation of gain versus frequency is substantially suppressed.

[0179] In the above example, the first filter system and the second filter system are described as including a matched filter (MF1 or MF2) that takes any of the forms described above with reference to Figure 2 in the section headed “LOW PASS FILTER CONFIGURATION”. This approach makes use of the general advantages associated with the filter systems described with reference to Figure 2 in the section headed “LOW PASS FILTER CONFIGURATION”. However, it is not essential to use such filter systems. More generally, the first filter system and second filter system may comprise any filter system that comprises a network of Prism filters arranged to receive the input signal 4 as an input, in which the the output signal of the first filter system is substantially orthogonal to the output signal of the second filter system, and in which the gain of the first filter system is substantially equal to the gain of the second filter system over a predetermined range of frequencies. Furthermore, the further filter systems may be provided, such as the “Trackers” shown in the example of Figure 22 (which provide the four-layer Prism filter structure mentioned above - two layers for each MF1 or MF2 and two layers for each tracker) to improve performance.

[0180] In either or both of the first filter system and the second filter system, the plurality of branches 6A, 6B may comprise a plurality of single-Prism branches 6A (as exemplified in Figure 2), each single-Prism branch 6A comprising a single Prism filter. The Prism filters in the single-Prism branches may have different harmonic numbers.

[0181] In each of either or both of the first filter system and the second filter system, the plurality of branches 6A, 6B may comprise a plurality of two-Prism branches (as exemplified in Figure 2), each two-Prism branch 6B comprising two Prism filters arranged in series, a first Prism filter of the two Prism filters receiving the input signal 4 as input and producing an output, and a second Prism filter of the two Prism filters receiving the output of the first Prism filter as input. The pair of characteristic frequencies for each two-Prism branch 6B may be such that the sample length of the two-Prism branch is the same as the sample length of each other two-Prism branch 6B. The pair of characteristic frequencies and / or the pair of harmonic numbers for each two-Prism branch 6B may be different from the pair of characteristic frequencies and / or pair of harmonic numbers for each other two-Prism branch 6B of the plurality of two-Prism branches.

[0182] In each of either or both of the first filter system and the second filter system, the characteristic frequency of each single-Prism branch 6A may be such that the sample length of each single-Prism branch 6A is the same as the sample length of each two-Prism branch 6B.

[0183] In one class of implementation, in the first filter system: each two-Prism branch 6B comprises a cosine Prism filter and a sine Prism filter; and each single-Prism branch 6A comprises a cosine Prism filter. In this example, the second filter system has the same configuration as the first filter system except that: each cosine Prism filter in each single-Prism branch 6A is replaced by a sine Prism filter having the same characteristic frequency and harmonic number; and either: each sine Prism filter in each two-Prism branch 6B is replaced by a cosine Prism filter having the same characteristic frequency and harmonic number, such that each two-Prism branch 6B comprises two sine Prism filters; or each cosine Prism filter in each two-Prism branch 6B is replaced by a sine Prism filter having the same characteristic frequency and harmonic number, such that each two-Prism branch 6B comprises two cosine Prism filters.

[0184] FILTER TRUNCATION

[0185] Figures 18-21 show the impulse responses (and hence convolution coefficients) of the matched trackers and orthotrackers where samples_per_m = 144 and the filter length is 8 x 144 = 1152 samples. It can be seen from the logarithmic plots that the coefficients vary by more than three orders of magnitude, with smaller values at the start and end of the filter, indicating that the corresponding locations in the data window contribute relatively little to the filter output. Accordingly, a further design technique for improving filter efficiency is to truncate filter elements symmetrically from both ends of the original design. This will reduce the filterlength (hence shortening the filter delay and increasing the CRLB limit for each FAP parameter - see equations 6-8) while potentially having only a limited impact on filter performance. As will be shown, filter truncation may lead to a significant improvement in filter performance compared to the CRLB, at the cost of some degradation to stopband attenuation and frequency tracking performance at a distance from the filter peak.

[0186] Figure 33 illustrates how truncating the filter of Figures 18-21 changes the frequency, amplitude and phase RMSE results for the +20 dB SNR input signal previously used in Figures 24-32. Figure 33 also shows (for each of the parameters frequency, amplitude and phase) the corresponding increase in CRLB limit for the reduced filter length, and the ratio of CRLB / RMSE (where “CRLB” here and in the discussion that follows is understood to refer to the square root of the CRLB). Note that all of these results are obtained for the same input specification as for figures 23-32 i.e. a sinewave with true frequency 10 Hz, white noise added with SNR 20 dB, where the 10 Hz input signal is heterodyning to the true filter peak of 0.44 Hz.

[0187] Results are shown for the filter length reduced from the original length of 1152 samples down to 600 samples. The length is reduced by an even number of samples, so that an equal number of filter coefficients are subtracted from the start and end of the original filter as shown in Figure 18-21. After truncation to a specific length, the remaining filter coefficients are rescaled to ensure the MT 1 and MT2 tracker and orthotracker gains are correct at the peak frequency. This is achieved by calculating the tracked (or orthotracker) amplitude of a pure sinusoid input (using equation 13), and then applying a linear scaling factor to all filter coefficients to obtain the correct amplitude. A constant phase offset may also be introduced by the filter truncation process. This can be calculated using a pure sinusoidal input of known initial phase, and used as a correction factor when the truncated filter is applied to new data.

[0188] In Figure 33, there is a gradual rise in each RMSE as the filter length reduces (i.e. more truncation is applied); an oscillatory variation becomes apparent at lower filter lengths. However, there is a corresponding rise in each CRLB limit. For both amplitude and phase, the RMSE as a proportion of the corresponding CRLB drops from around 1.5 for the full length filter to around 1.1 for a 500 sample filter. The frequency RMSE / CRLB ratio the CRLB drops from around 2 for the full length filter to a minimum of around 1.2 for a 750 sample filter, before rising again to around 1.4 for a 500 sample filter. Note that performance will vary as a function of the initial estimate of the frequency, and hence the proximity of the heterodyned signal to the tracker peak frequency. In Figure 33, a constant offset of 2e-3 Hz was used. As the RMSE performance of each parameter relative to the corresponding CRLB varies with the truncated filter length, filter design choices may be selected based on the particular requirements of each application.

[0189] Figure 34 shows the sample-by-sample MTC FAP performance of a truncated filter with length 600 samples, which may be compared to the MTC plots for each parameter in Figures 23-32 for the original full length 1152 sample filter. The RMSE for each parameter in Figure 34 is larger than for the corresponding parameter in Figures 23-32. While the frequency RMSE in the top plot of Figure 34 is approximately double the RMSE of the plot of Figure 26, the RMSE for the middle plot of Fig 34 (amplitude) is similar to that of the plot in Figure 28, and for phase the time series the RMSEs for the lowest plot of Figure 34 and the plot of Figure 32 are similar. For each parameter, the Figure 34 results are noisier with a higher RMSE but are based on a filter that is approximately half the length of the original, so that the ratios of RMSE to the CRLB are 1.272, 1.065 and 1.046 respectively for frequency, amplitude and phase.

[0190] The truncated filter frequency tracking performance shown in Figures 33 and 34 are obtained when the heterodyned input frequency is adjacent to the true peak frequency. This may suggest an implicit requirement that the true frequency is known to a certain degree of accuracy. Accordingly, if this performance is to be delivered using truncated filters in actual practice, where the input frequency may not be known to high precision a priori, it is important to determine the frequency tracking performance of the truncated filters where the heterodyned signal is at some distance from the filter peak.

[0191] In the examples described below, it will be demonstrated that truncating a filter introduces non-linearities into the estimate of the true frequency (based on the previously described orthotracker / tracker ratio), reducing the effective tracking range of the filter.These non-linear effects can be compensated, for example by using a polynomial correction based on the calculated value of r, to provide an improved estimate of the true value of r, and hence extending the range of r values over which good filtering performance can be achieved with a truncated filter.

[0192] Figures 35 and 36 show the performance of the MTC estimate of r for true input r values offset from the true filter peak, where the signal to noise ratio is +20 dB. Two MTC r estimates are shown (which for the example of Figures 35 and 36 show very little difference): there is the ‘raw’ MTC r estimate, based on the ratio of orthotracker to tracker amplitude, as discussed above, and a sixth order polynomial correction ‘fitted’ to the value of r. The polynomial fit calculates a best estimate of the true value of r based on the ‘raw’ r value, as illustrated in Figure 35 (also in Figures Figs 37 and 39). Figure 35 shows the true and mean estimates of the r, plotted against the r offset from the filter peak, while Figure 36 shows the root mean square error of the r estimates. It can be seen that a good estimate of the true value of r can be obtained over a reasonably wide range of r values around the true peak: for example for offsets in the region of [-0.35, -*0.4] the RMSE is less than 0.1. Accordingly, given the filter peak r is 0.44, for the input range r e [0.1, 0.9], the MTC calculation can deliver an improved estimate of r. This process may be repeated for the same input data set using an improved heterodyne frequency (based on the latest estimate of r) to place the input frequency closer to the filter peak. This procedure may be repeated as desired to achieve convergence at the filter peak value to obtain the best RMSE error performance for frequency (as well as amplitude and phase).

[0193] Figures 37 and 38 shows the equivalent results for a truncated filter of length 832 samples. The truncation introduces nonlinearities in the estimate of r most clearly visible in the lower RMSE plot. The polynomial correction provides an improved RMSE performance retaining a useful tracking range of approximately r e [0.1 , 0.9],

[0194] Figures 39 and 40 show the frequency tracking performance for the truncated filter of length 600 samples. Here substantial non-linearities are introduced into the raw frequency tracking, so that the polynomial correction provides a significant improved RMSE performance. However, the raw truncated filter still provides improved performance in the immediate vicinity of the filter peak. Accordingly, if required, the polynomial estimate may be used to iterate (via adjusted heterodyning frequency) to an estimate of r sufficiently close to the filter peak, and then the raw calculation may be used to obtain a final best value.

[0195] Figures 41 and 42 illustrate a further consideration when employing truncated Prism filters. This shows the amplitude response (as discussed above and shown in Figure 23) for the original 1152 sample filter MTC amplitude calculation, together with those for the truncated 832 and 600 sample length filters. The Figure 41 plot shows that the stopband attenuation is significantly reduced for the truncated filters, while the Figure 42 plot shows that the passband range is similar for each of the three filters, based on their shared parameter value samples_per_m = 144. As previously described, the truncated filters deliver an overall improved performance against the CRLB for an input signal consisting of a pure sinusoid with added white noise. However, if there are other sinusoidal components outside the filter passband, such as other resonant frequencies within the received signal, they may be subject to reduced attenuation, so that the overall filter performance may be poorer than for a full length filter with a flat stopband.

[0196] Figures 41 and 42 further illustrate the property of the Prism filter that the gain is only exactly 1.0 at the exact filter peak frequency, here r = 0.44. The calculated amplitude of any signal component is (at least) the product of the true amplitude and the filter gain of the signal component, based on its dimensionless frequency, r. One strategy for mitigating the effect of the filter gain is to iterate the filtering calculation using a new heterodyning frequency at each stage so that the heterodyned frequency aligns as closely as possible to the true filter peak, as discussed above. However, an alternative correction strategy may also be deployed, especially where the computational budget is limited. Just as Figures 35-40 demonstrate the use of a polynomial fit to calculated a corrected value of r for the raw value or r obtained from a truncated filter, similarly those familiar with the art will recognise that a polynomial fitting (based on the raw or corrected value of r) may be applied to calculate the corresponding value of the filter gainillustrated in Figures 41 and 42. The calculation of filter gain at the estimated component frequency will enable the correction of the corresponding amplitude estimate.

[0197] Figures 43 and 44 show similar results to Figures 41 and 42, except that the filter length is kept fixed at 1024 samples, while the value of samples_per_m is increased from 144 to 240 and then 336. The untruncated length of the 144 samples_per_m filer is 1152 samples, so all three filters are truncated to an increasing degree. Figures 43 and 44 illustrates an alternative means of using the improved performance of truncated filters i.e. by retaining a fixed length (here 1024 samples) while using increasing values of samples_per_m. While this leads to reduced stopband attenuation (as shown in the upper plot) this also creates increasingly narrow passbands (as shown in the lower plot), which will result in overall improved performance vs the CRLB for sinusoid + white noise inputs.

[0198] Those familiar with the art will appreciate that a variety of strategies may be developed for calculating the FAP value of a sinusoid within a window of data, which may include using an untruncated filter to establish the approximate frequency of a sinusoid, obtaining increasingly accurate estimates by iteration of heterodyning frequency, possibly using a variety of filter designs of the same or different lengths, before obtaining final estimates of frequency, phase and / or amplitude using a filter design with a preferred performance against the CRLB. Any such strategy may take into account the computational load, the presence of other signal components, and any prior knowledge of the frequency of the sinusoid, for example as a result of previous calculations on a prior data set within a time series.

[0199] Thus, based on the above principles, a method of designing a convolutional filter for filtering an input signal 4 may be provided. A flow chart showing the framework of such a method is shown in Figure 45.

[0200] The method comprises providing (S1) a filter system 2, 200, 300, 400 arranged to receive the input signal 4. The filter system 2, 400 may take any of the forms described above in the sections headed “LOW PASS FILTER CONFIGURATION”, “TRACKER AND NOTCH FILTER”, and “MATCHED FILTERS” or elsewhere in the present disclosure.

[0201] The method further comprises (S2) inputting a test signal into the filter system 2, 200, 300, 400 to generate an impulse response of the filter system 2, 200, 300, 400.

[0202] The method further comprises generating (S3) a convolutional filter for filtering the input signal 4 based on the impulse response of the filter system 2, 200, 300, 400. The convolutional filter is defined by filter elements corresponding to respective samples in a sampling window of the filter system 2, 200, 300, 400.

[0203] The method further comprises truncating (S4) the convolutional filter by removing one or more filter elements corresponding to one or more samples at the start and / or end of the sampling window. The truncating (S4) may, for example, comprise removing filter elements corresponding to the X% samples that are nearest to the start and / or end of the sampling window, wherein X is equal to or greater than 5%, optionally equal to or greater 10%, optionally equal to or greater or greater than 15%, optionally equal to or greater than 20%, optionally equal to or greater than 25%, optionally equal to or greater than 30%, optionally equal to or greater than 35%, optionally equal to or greater than 40%, optionally equal to or greater than 45%, optionally equal to or greater than 50%.

[0204] A method of processing an input signal may be provided that uses the convolutional filter designed as described above.

[0205] APPLICATION TO THE FFT

[0206] While the disclosure has so far focussed on the design and application of Prism convolutional filters for tracking an individual sinusoid in a time series, the techniques are readily extended to FFT calculations where the FAP (frequency / amplitude / phase) content of a data window may be calculated over the frequency range from 0 Hz to the Nyquist frequency i.e. fs / 2 where fs the sampling frequency. The application of Prism convolutional filters to FFT has been extensivelydiscussed and explained in the prior art, particularly in [6] (Henry, MP. “An ultra-precise Fast Fourier Transform”, Measurement, Volume 220, 2023, 113372, ISSN 0263-2241, https: / / doi.Org / 10.1016 / j.measurement.2023.113372].)

[0207] The key idea is that one or more Prism convolutional filters are applied as windowing functions to the data window before performing the FFT calculations; subsequent calculations similar to those used for single sinusoid tracking may be used to identify specific spectral peaks and determine their FAP content to high accuracy.

[0208] In this disclosure it is explained how the novel filter designs described above may yield improved FFT peak determination, as well as the suppression of frequency leakage around each identified peak.

[0209] Figure 46 compares various windowing functions all of length 1024 samples. These are conventional FFT windowing functions Hann, Hamming and Blackman, well known to practitioners of the art, together with three Prism windows. The Prism windows comprise the MT1 convolution (illustrated in Figures 18-21) with samples_per_m values of 144, 240 and 336 respectively, each truncated to length 1024 samples. Figure 6 of [6] shows a similar plot comparing the same conventional windowing functions to prior art 12 layer Prism filters, for a 48000 sample window. In both Figure 6 of [6] and Figure 46 of the current document the left plot shows each window as a function of sample number, while the right plot shows the gain attenuation moving away from the corresponding filter peak. The Prism filters in [6] have significantly slower attenuation, whereas the improved designs of the current disclosure provide similar rate of attenuation to that of the conventional windowing functions shown in Figure 46, resulting in improved FFT performance, as demonstrated below.

[0210] Thus, a method of processing an input signal may be provided in which a convolutional filter is designed by inputting a test signal into a filter system of the present disclosure to generate an impulse response and generating a convolutional filter based on the impulse response. The designed convolutional filter can then be used to process an input signal. The input signal may comprise data in the time domain and the processing of the input signal may comprise deriving a frequency spectrum of the input signal, optionally comprising deriving a Fourier transform of the input signal. The method may comprise applying the designed convolutional filter as a windowing function to the input signal.

[0211] A worked example demonstrates the improved FFT performance obtained using the techniques disclosed. This consists of a data window of 1024 samples, sampled at 144 Hz, consisting of a single tone of frequency 40 Hz and amplitude 1 unit, with added white noise so that SNR = 40dB. Initially, matched filters using samples_per_m = 144 are applied, so that m = 1 Hz, and the filter peak offset is 0.44 Hz.

[0212] Figure 47 illustrates how the use of the MT1, MT2, MT1o and MT2o convolutions described above may be applied as windowing functions to obtain a single lobe associated with the 40 Hz tone. For each of the top, middle and lowest pairs of graphs, the left-hand plot shows the full FFT spectrum (0 - 72 Hz) while the right-hand plot shows the same results zoomed in around the 40 Hz tone.

[0213] Applying the MT1, MT1o, MT2 and MT2o windowing functions is straightforward. Given data window dw, the windowing process consists of point by point multiplication to obtain a new vector of values:

[0214] for I = 1,1024

[0215]

[0216] The FFT of each product is taken:PxxMTI = fft(MT1_prod)

[0217] PxxMTIo = fft(MT1o_prod)

[0218] PxxMT2 = fft(MT2_prod)

[0219] PxxMT2o = fft(MT2o_prod) (24)

[0220] The top two plots in Figure 47 show the amplitudes of the spectra obtained using MT1 and MT2 as windowing functions. In each case two lobes are generated either side of the true peak at 40 Hz, with peaks at approximately 40.44 Hz and 39.56 Hz. As discussed in [6], the FFT can be viewed as an efficient implementation of a sequence of regularly spaced heterodynes, generating both sine (Imaginary) and cosine (real) outputs. Accordingly, using the terminology of this disclosure, sine and cosine vectors (where each value corresponds to a specific heterodyning frequency) can be extracted from the FFT results as follows:

[0221] PxxMT1_c = real(PxxMTI)

[0222] PxxMT1_s = Imag(PxxMTI)

[0223] PxxMTI o_c = real(PxxMTIo)

[0224] PxxMTI o_s = Imag(PxxMTIo)

[0225] PxxMT2_c = real(PxxMT2)

[0226] PxxMT2_s = imag(PxxMT2)

[0227] PxxMT2o_c = real(PxxMT2o)

[0228] PxxMT2o_s = imag(PxxMT2o) (25)

[0229] where imag and real extract the imaginary (sine) and real (cosine) components from each FFT. These matched filter results may be combined to eliminate either lobe. For example:

[0230] hi_PxxMTC_c = (PxxMT1_c + PxxMT2_s)

[0231] hi_PxxMTCo_c = (PxxMT1o_c + PxxMT2o_s)

[0232] hi_PxxMTC_s = (PxxMT1_s - PxxMT2_c)

[0233] hi_PxxMTCo_s = (PxxMT1o_s - PxxMT2o_c) (26)

[0234] eliminates the lower lobe, while the following may be used to eliminate the higher lobe:

[0235] lo_PxxMTC_c = (PxxMT1_c - PxxMT2_s)

[0236] lo_PxxMTCo_c = (PxxMT1o_c - PxxMT2o_s)

[0237] lo_PxxMTC_s = (PxxMT1_s + PxxMT2_c)

[0238] lo_PxxMTCo_s = (PxxMT1o_s + PxxMT2o_c) (27)

[0239] The corresponding amplitude for each frequency may be calculated using the usual root-sum-square formulae:

[0240] Hi_amp_MTCi = sqrt(hi_PxxMTC_ci2 + hi_PxxMTC_si2)

[0241] Hi_amp_MTCoi = sqrt(hi_PxxMTCo_ci2 +hi_PxxMTCo_si2) (28)

[0242] resulting in the single lobe spectra for MTC shown in the lower plots of Figure 47, with the peak at approximately 40.44 Hz.Figure 48 illustrates the process of determining the true frequency of the tone, based on the individual MTC FFT amplitudes obtained around 40.44 Hz. A variety of techniques may be used to, in the first place, identify the presence of a tone within the calculated spectrum, such as using a threshold on the value of Hi_amp_MTC, for example the value 3e-2. This threshold is exceeded over a series of consecutive points in the spectrum where the FFT frequency (i.e. heterodyning frequency) is above 40 Hz. The top plot of Figure 48 shows the MTC and MTCo amplitude values in this region, while the second plot shows the ratio between them. This shows an approximately linear trend over the region of the lobe region. The amplitude ratio gives an estimate of the dimensionless frequency r for current point, from which an estimate of the true peak can be determined. This is given by:

[0243] Peak_freq = fft_freq - m*r for a higher lobe (as in figure 47 / 48)

[0244] Peak_freq = fft_freq + m*r for a lower lobe (29)

[0245] As here m = 1, the relationship is particularly clear: in the second plot down of Figure 48, the y-axis amplitude ratio value is approximately equal to the offset in Hz from the true peak at 40 Hz.

[0246] The third plot shows the resulting estimate of peak frequency, while the lowest plot shows the peak estimate error, which for most of the lobe points falls below 1e-3Hz. The lowest error estimate corresponds to the highest MTC amplitude value corresponding to the FFT frequency of 40.5 Hz. Accordingly, a first estimate of the true peak frequency can be based on the value calculated at the observed highest MTC amplitude.

[0247] A corresponding initial estimate of the (mid-point) phase of the peak frequency may be calculated based on arctan(MTC_c, MTC_s), while the Hi_amp_MTC value at the point nearest the peak may be use as an estimate of the peak amplitude. It will be recalled that the filter gain at its peak is 1.0, and is reduced at any distance from the peak. Accordingly, those familiar with the art will appreciate that an improved initial estimate of the peak amplitude may be obtained based on the difference between the calculated value of r at the nearest point to the peak and the true peak value of r, based on a modelled variation of gain with r, for example using a polynomial correction.

[0248] Having established an initial estimate of the peak, the matched filter technique of this disclosure may be used to suppress frequency leakage around the peak (i.e. the lobe around the peak), providing a more accurate spectrum in that region, possibly revealing other peaks hidden by the lobe in the initial estimate of the spectrum. The issues of spectral leakage and of hidden peaks are extensively discussed in [6],

[0249] This may be achieved by applying the notching capability of the tracker / orthotracker pair as discussed above and illustrated in Figure 11. The key idea is as follows. Having identified the location of the local peak, revised amplitudes (and if desired phases) at adjacent frequency components can be calculated while notching out the local peak based on Equations (19) and (20) above.

[0250] The range of FFT frequencies to be corrected may consist of all having a distance from the identified peak frequency in the range [-0.44, +0.56] x r i.e. placed within the filter lobe surrounding the peak. For each selected FFT frequency with index j, the following calculation may be performed:

[0251] delta_r = (fft_frequency(j) - peak_frequency) / m

[0252] new_MTC_s = hi_PxxMTCo_c(j) - delta_r*hi_PxxMTC_s(j)

[0253] new_MTC_c = hi_PxxMTCo_s(j) + alt_dr*hi_PxxMTC_c(j)

[0254] scaling = 1 / (1 - deltajj

[0255] new_amp(j) = scaling*sqrt(new_MTC_sA2 + new_MTC_cA2) (29)This calculation (a) identifies the value of r needed to notch out the influence of the peak frequency from the current fft_frequency; (b) calculates new MTC_s and MTC_c values; (c) calculates a scaling factor to compensate for the effect of notching at the fft_frequency; and (d) calculates a new amplitude value.

[0256] The application of this technique is illustrated in Figures 49 and 50, continuing the example of Figures 47 and 48, where the true spectral peak is at 40 Hz. The top left plot shows the amplitude of the MTC spectrum, reproduced from the lower plots of Figure 47 but adjusted for the Prism filter offset of 0.44 Hz, along with equivalent spectra obtained using the conventional Hamming and Hanning windowing functions for comparison. The spectral leakage of the Hamming window is relatively broad, while the Hanning and Prism spectra are comparable. The top right plot shows the same spectra in the immediate vicinity of the true peak, and is illustrative of the limited accuracy of conventional FFT techniques, as discussed in [6], All FFT estimates fall at least 4% short of the true peak amplitude value of 1.0 due to (at least) the mismatch between the FFT frequency values and the true peak frequency. The lower left plot illustrates the final Prism spectrum. Here the true peak amplitude and frequency have been calculated to high accuracy (the residual errors of both parameters are less than 1 e-3; statistical results against the CRLB are described below) while the surrounding lobe generated by frequency leakage has been suppressed. The bottom right plot shows this in detail: the raw Prism FFT amplitude values above and below the true peak frequency shown in the top right plot both exceed 0.8; but after applying Equation (29) these values are reduced to below 1 e-3.

[0257] Figure 50 reproduces the example of Figure 49 but adds an additional frequency component adjacent to the original tone at 40 Hz. This adjacent tone is located at 40.2 Hz, and has an amplitude of 0.09 units. The top two plots of Figure 50 are equivalent to those of Figure 49, although the top left graph has a reduced x-axis range to provide greater focus on the region around the peak. The presence of the smaller tone is not readily apparent in any of the raw spectra. However, the lower left plot shows that an indication of the smaller peak is revealed by the frequency suppression technique. The lower right plot shows that the recalculated noise floor indicates the possible presence of another peak without providing an accurate estimate of either its frequency or amplitude. Further Prism-based techniques may be used to both accurately determine the location of the second peak, and to compensate for its influence on the calculated value of the peak at 40 Hz.

[0258] The suppression of spectral leakage reduction provides a significant improvement on the prior art Prism FFT [6] which used a 'dead zone’ to suppress the filter double lobe and could offer no information on frequencies within the dead zone other than the peak itself.

[0259] Thus, in addition or as an alternative to using a designed convolutional filter to apply the windowing function as discussed above, the present disclosure may enable improved processing of an input signal by refining a derived frequency spectrum by selectively notching out one or more selected local peaks in the derived frequency spectrum and updating an amplitude estimate for one or more other peaks in the frequency spectrum.

[0260] With an initial estimate of an FFT peak frequency calculated, further improvements in FAP accuracy may be obtained by returning to the earlier treatment of the data described in this disclosure, considering the data window as a time series and applying the matched filtering techniques described above for tracking a single sinusoid. For example, the 1024 sample window may be subject to single frequency heterodyning and FAP calculation with match filter designs using, successively, 144, 192, 240, 288 and 336 samples_per_m, obtaining increasingly accurate estimates of the frequency, amplitude and phase value of the spectral tone.

[0261] A simulation demonstrates this approach. In 100,000 trials, a single tone is generated with a frequency selected from a uniform random distribution between 1 and 70 Hz, with a random initial phase, and a fixed amplitude of 1 unit. The sample rate is 144 Hz, and 1024 samples are generated, with added white noise so that SNR = 40 dB. For these conditions the CRLB for each parameter is 4.85e-4 Hz for frequency, 6.25e-3 units for amplitude, and 6.25e-3 radians for phase. In each trial, the FFT technique described above is used to determine an initial estimate of the tone frequency, and then successive improved estimates arecalculated using increasing values of samples_per_m, where the initial estimate of the tone frequency (and hence the heterodyning frequency used) is based on the previous best estimate. The statistical results obtained are given in Table 1 below:

[0262]

[0263] Table 1: Results of applying a 1024 sample Prism FFT calculation to identify the tone frequency, followed by successive applications of time series FAP analysis using increasing values of samples_per_m.

[0264] As those familiar with the art will appreciate, a range of strategies may be developed using the techniques disclosed here, based upon the specific application requirements for accuracy, the computational budget available, and the characteristics of the signals being analysed.

[0265] APPLICATIONS AND IMPLEMENTATIONS

[0266] Any of the filters and filter systems used herein, the filters generated or designed by the methods disclosed herein, and the methods of processing input signals and / or using filters or filter systems disclosed herein are configured and / or used to filter input signals representing physical quantities or entities. For example the input signal may be (or represent) a signal measured by a physical sensor or other physical instrument measuring a physical parameter.

[0267] In any of these examples, the input signal may be, or may be a representation of, an audio signal, video signal, communications signal, system control signal, seismological signal, biological signal, physical signal, chemical signal, physiological signal, electrical power signal, radar signal, sonar signal, or signal representing measurements (or directly may be measurements) of physical quantities measured by a scientific or industrial instrument. The input signal may represent measurements of a mechanical or electrical system. The input signal may be the output of a measurement device configured to measure a mechanical or electrical system. The methods / filters discussed above may be incorporated into such a measurement device.

[0268] In particular examples, any of the filter / filter systems / methods may be for filtering signals from a Coriolis meter. A Coriolis meter may comprise a filter / filter system according to any of the examples here, for example as a dedicated hardware filter block arranged to receive and filter an input signal. The Coriolis meter may be configured to perform any of the methods disclosed herein.

[0269] In particular examples, any of the filter / filter systems / methods may be for filtering signals representative of medical images. In particular examples, any of the filter / filter systems / methods may be for filtering biological signals.

[0270] In particular examples, any of the filter / filter systems / methods may be for filtering neural signals.

[0271] In particular examples, any of the filter / filter systems / methods may be for filtering communications signals or audio signals. In particular examples, any of the filter / filter systems / methods may be for vibration monitoring and / or condition monitoring of a mechanical or electrical system.

[0272] The term “unit’, “module”, “block”, “stage block”, “integration stage block”, or “signal processing block”, etc. may be used throughout these disclosures to indicate some means of performing a numerical calculation, whether by hardware, software, or othermeans. The term is not meant to imply any restriction in the computational architecture, methodology or instantiation; it is simply a convenient label to identify and discuss the various method or system steps presented in this disclosure.

[0273] The various illustrative logical blocks, modules, units, and processes described herein may be implemented or performed by a machine, such as a computer, a processor, a digital signal processor (DSP), a graphics processing unit (GPU), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A processor may be a microprocessor, a controller, microcontroller, state machine, combinations of the same, or the like. A processor may also be implemented as a combination of computing devices, e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors or processor cores, one or more graphics or stream processors, one or more microprocessors in conjunction with a DSP, or any other such configuration. Any of the methods disclosed herein may thus be computer-implemented methods. The computer-implemented methods are not limited to any particular type of arithmetic implementation for performing computations and may include for example fixed point, floating point, single, double or other precision number format etc.

[0274] Any of the filters and filter systems used herein, the filters generated or designed by the methods disclosed herein, and the methods of processing input signals and / or using filters or filter systems disclosed herein are configured and / or used to filter input signals representing physical quantities or entities, may be implemented on a computer, or implemented on a computer readable medium, such as a non-tangible computer readable medium, or may implemented as a computer program. Any of the filters and filter systems used herein, the filters generated or designed by the methods disclosed herein, and the methods of processing input signals and / or using filters or filter systems disclosed herein may be implemented in a dedicated hardware filter block, configured for the sole-purpose of implanting the filter / s and filtering input signals. For example, the filter block may comprise a processor and a memory. The memory stores instructions which, when executed, cause the processor to perform any of the methods described above. Additionally or alternatively, the memory may store properties or coefficients of the filter or filter system, so that the filter or filter system can be instantiated on the processor to filter a received input signal. The filter block may further comprise an output to output the filtered signal. The dedicated filter hardware block may be a standalone product, or may be incorporated into a device, such as a sensor device. For example, the dedicated filter hardware block may be incorporated into a Coriolis meter.

[0275] In particular, certain implementations of the Prism-based filter / filter systems of the present disclosure are sufficiently mathematically, computationally, or technically complex that application-specific hardware (e.g., FPGAs or ASICs) or one or more physical computing devices (utilizing appropriate executable instructions) may be necessary to perform the functionality, for example, due to the volume or complexity of the calculations involved (e.g., filtering and tracking a signal in a low signal-to-noise environment) or to provide results (e.g., tracked signal) substantially in real-time.

[0276] The blocks or states of the processes described herein may be embodied directly in hardware, in a software module stored in a non-transitory memory and executed by a hardware processor, or in a combination of the two. For example, the filters / filter systems or methods may also be embodied in, and fully automated by, software modules (e.g. stored in a non-transitory memory) executed by one or more machines such as computers or computer processors. A module may reside in a computer readable medium such as RAM, flash memory, ROM, EPROM, EEPROM, registers, hard disk, an optical disc, memory capable of storing firmware, or any other form of computer-readable (e.g., storage) medium. A computer-readable medium can be coupled to a processor such that the processor can read information from, and write information to, the computer -readable medium. In the alternative, the computer-readable medium may be integral to the processor. The processor and the computer-readable medium may reside in an ASIC. The computer-readable medium may include non-transitory data storage (e.g., a hard disk, non-volatile memory, etc.).

[0277] The processes, methods, and systems may be implemented in a network (or distributed) computing environment. For example, the computing device may be implemented in a distributed, networked, computing environment. Network environmentsinclude enterprise-wide computer networks, intranets, local area networks (LAN), wide area networks (WAN), personal area networks (PAN), cloud computing networks, crowd-sourced computing networks, the Internet, the Internet of Things (loT) and the World Wide Web. The network may be a wired or a wireless network, a terrestrial or satellite network, or any other type of communication network.

[0278] The filters, filter systems and methods disclosed herein have been discussed primarily in relation to real-time signal processing of an input signal, i.e. filtering the input signal whilst data is still being recorded that will in turn be passed to the filter. However, it is to be appreciated any filter, filter system or method may also be used for off-line analysis of input signals.

[0279] The following clauses define embodiments of the disclosure.

[0280] 1. A filter system for filtering an input signal, the filter system comprising:

[0281] a network of Prism filters arranged to receive the input signal as an input, the network of Prism filters comprising at least one cosine Prism filter and at least one sine Prism filter, wherein:

[0282] each Prism filter is configured to evaluate combinations of double integrals of the form:

[0283]

[0284] where s(t) is an input to the respective Prism filter, m is a characteristic frequency of the respective Prism filter, [sin |cos] represents a sine or a cosine operation, q is an optional, arbitrary phase offset variable, and h is a harmonic number of the respective Prism filter of the network of Prism filters, wherein the total integration period of 2 / m defines the Prism filter sample length;

[0285] each cosine Prism filter is configured to determine a respective cosine output Gc'1, where Gc'1= I^s— I^c;

[0286] each sine Prism filter is configured to determine a respective sine output G'1, where G'1= / sfts+ 1^,,'

[0287] the network of Prism filters comprises a plurality of branches connected in parallel, each branch configured to receive the input signal as an input and wherein the network of Prism filters is configured to generate an output signal based on a combination of outputs from the plurality of branches;

[0288] the plurality of branches comprises a plurality of single-Prism branches and a plurality of two-Prism branches;

[0289] each single-Prism branch comprises a single Prism filter;

[0290] each two-Prism branch comprises two Prism filters arranged in series, a first Prism filter of the two Prism filters receiving the input signal as input and producing an output, a second Prism filter of the two Prism filters receiving the output of the first Prism filter as input, and the two Prism filters having a respective pair of characteristic frequencies;

[0291] the pair of characteristic frequencies for each two-Prism branch is such that the sample length of the two-Prism branch is the same as the sample length of each other two-Prism branch; and

[0292] the characteristic frequency of each single-Prism branch is such that the sample length of each single-Prism branch is the same as the sample length of each two-Prism branch.

[0293] 2. The filter system of clause 1, wherein:

[0294] each two-Prism branch comprises two Prism filters having a respective pair of characteristic frequences and a respective pair of harmonic numbers; and

[0295] the pair of characteristic frequencies and / or the pair of harmonic numbers for each two-Prism branch is different from the pair of characteristic frequencies and / or pair of harmonic numbers for each other two-Prism branch of the plurality of two-Prism branches.

[0296] 3. The filter system of clause 2, wherein the harmonic numbers in each pair of harmonic numbers have the same value as each other.4. The filter system of any preceding clause, wherein the Prism filters in the single-Prism branches have different harmonic numbers.

[0297] 5. The filter system of any preceding clause, wherein each branch of the plurality of branches comprises at least one cosine Prism filter.

[0298] 6. The filter system of clause 5, wherein each two-Prism branch comprises a cosine Prism filter and a sine Prism filter having a respective pair of characteristic frequencies.

[0299] 7. The filter system of clause 6, wherein each single-Prism branch comprises a cosine Prism filter.

[0300] 8. The filter system of clause 7, wherein for each two-Prism branch:

[0301] the characteristic frequency of the cosine Prism filter of the two-Prism branch is denoted mc,

[0302] the characteristic frequency of the sine Prism filter of the two-Prism branch is denoted ms;

[0303] the characteristic frequency of the cosine Prism in each single-Prism branch is denoted

[0304]

[0305] and

[0306] the following expression is satisfied:

[0307] 1 1 1

[0308] - 1 - — — .

[0309] mcmsmf

[0310] 9. The filter system of any preceding clause, wherein the sample length of each integral of each Prism filter in each branch of the plurality of branches is an integer multiple of a positive power of two.

[0311] 10. A signal processing filter system comprising:

[0312] a pre-processing module configured to receive an input signal to be processed and generate therefrom a first pre-processed signal and a second pre-processed signal, the first pre-processed signal being orthogonal to the second pre-processed signal;

[0313] a first filter module configured to receive the first pre-processed signal, the first filter module comprising:

[0314] a first filter system according to any of clauses 1 -9 in which each branch of the plurality of branches comprises at least one cosine Prism filter, the first filter module configured to provide the first pre-processed signal as input to the first filter system; and

[0315] a second filter system that has the same configuration as the first filter system except that each cosine Prism filter is replaced by a sine Prism filter, the first filter module configured to provide the first pre-processed signal as input to the second filter system;

[0316] a second filter module configured to receive the second pre-processed signal, the second filter module comprising:

[0317] a third filter system that has the same configuration as the first filter system, the second filter module being configured to provide the second pre-processed signal as input to the third filter system; and

[0318] a fourth filter system that has the same configuration as the second filter system, the second filter module being configured to provide the second pre-processed signal as input to the fourth filter system; a processing unit configured to:

[0319] calculate and output one or more of an amplitude, a phase and a frequency of a component of interest in the input signal using output signals from the first filter system, the second filter system, the third filter system and the fourth filter system; and / or

[0320] output one or more notched signals using output signals from the first filter system, the second filter system, the third filter system and the fourth filter system.

[0321] 11. A signal processing filter system comprising:a pre-processing module configured to receive an input signal to be processed and generate therefrom a first pre-processed signal and a second pre-processed signal, the first pre-processed signal being orthogonal to the second pre-processed signal;

[0322] a first filter module configured to receive the first pre-processed signal, the first filter module comprising:

[0323] a first filter system, the first filter module configured to provide the first pre-processed signal as input to the first filter system; and

[0324] a second filter system, the first filter module configured to provide the first pre-processed signal as input to the second filter system;

[0325] a second filter module configured to receive the second pre-processed signal, the second filter module comprising:

[0326] a third filter system that has the same configuration as the first filter system, the second filter module being configured to provide the second pre-processed signal as input to the third filter system; and

[0327] a fourth filter system that has the same configuration as the second filter system, the second filter module being configured to provide the second pre-processed signal as input to the fourth filter system; and a processing unit configured to:

[0328] calculate and output one or more of an amplitude, a phase and a frequency of a component of interest in the input signal using output signals from the first filter system, the second filter system, the third filter system and the fourth filter system; and / or

[0329] output one or more notched signals using output signals from the first filter system, the second filter system, the third filter system and the fourth filter system,

[0330] wherein:

[0331] the first filter system comprises:

[0332] a network of Prism filters arranged to receive the input signal as an input, the network of Prism filters comprising at least one cosine Prism filter and at least one sine Prism filter, wherein:

[0333] each Prism filter is configured to evalua te combinations of double integrals of the form:

[0334]

[0335] where s(t) is an input to the respective Prism filter, m is a characteristic frequency of the respective Prism filter, [sin|cos] represents a sine or a cosine operation, q is an optional, arbitrary phase offset variable, and h is a harmonic number of the respective Prism filter of the network of Prism filters, wherein the total integration period of 2 / m defines the Prism filter sample length;

[0336] each cosine Prism filter is configured to determine a respective cosine output Geft, where Geft=

[0337]

[0338] >

[0339] each sine Prism filter is configured to determine a respective sine output G'1, where G'1= Zsfts+ 1^,,' the network of Prism filters comprises a plurality of branches connected in parallel, each branch configured to receive the input signal as an input and wherein the network of Prism filters is configured to generate an output signal based on a combination of outputs from the plurality of branches; and each branch of the plurality of branches comprises at least one cosine Prism filter.

[0340] 12. The signal processing filter system of clause 11, wherein the plurality of branches comprises a plurality of two-Prism branches, each two-Prism branch comprising two Prism filters arranged in series, a first Prism filter of the two Prism filters receivingthe input signal as input and producing an output, and a second Prism filter of the two Prism filters receiving the output of the first Prism filter as input.

[0341] 13. The signal processing filter system of clause 12, wherein:

[0342] each two-Prism branch comprises two Prism filters having a respective pair of characteristic frequencies; and the pair of characteristic frequencies for each two-Prism branch is such that the sample length of the two-Prism branch is the same as the sample length of each other two-Prism branch.

[0343] 14. The signal processing filter system of clause 13, wherein:

[0344] each two-Prism branch comprises two Prism filters having a respective pair of characteristic frequences and a respective pair of harmonic numbers; and

[0345] the pair of characteristic frequencies and / or the pair of harmonic numbers for each two-Prism branch is different from the pair of characteristic frequencies and / or pair of harmonic numbers for each other two-Prism branch of the plurality of two-Prism branches.

[0346] 15. The signal processing filter system of any of clauses 11-14, wherein the plurality of branches comprises a plurality of single-Prism branches.

[0347] 16. The signal processing filter system of clause 15, wherein the Prism filters in the single-Prism branches have different harmonic numbers.

[0348] 17. The signal processing filter system of clause 15 or 16, wherein the characteristic frequency of each single-Prism branch is such that the sample length of each single-Prism branch is the same as the sample length of each two-Prism branch.

[0349] 18. The signal processing filter system of any of clauses 10-17, wherein the pre-processing module is configured to perform heterodyning to map the component of interest in the input signal to be within a predetermined range of a peak in the frequency response of the first filter system.

[0350] 19. The signal processing filter system of clause 18, wherein the pre-processing module is configured to use heterodyning to generate the orthogonal first pre-processed signal and second pre-processed signal.

[0351] 20. A matched filter system comprising:

[0352] a pre-processing module configured to receive an input signal and generate therefrom a first pre-processed signal and a second pre-processed signal, the first pre-processed signal being orthogonal to the second pre-processed signal;

[0353] a first matched filter module configured to receive the first pre-processed signal, the first matched filter module comprising:

[0354] a first filter system according to any of clauses 1-9, the first matched filter module configured to provide the first pre-processed signal as input to the first filter system and wherein the first filter system is configured to generate the output signal of the first filter system as a weighted sum of the outputs from the plurality of branches of the first filter system, the weighted sum defined by a first set of weights; and

[0355] a second filter system according to any of clauses 1-9, the first matched filter module configured to provide the first pre-processed signal as input to the second filter system and wherein the second filter system is configured to generate the output signal of the second filter system as a weighted sum of the outputs from the plurality of branches of the second filter system, the weighted sum defined by a second set of weights;

[0356] a second matched filter module configured to receive the second pre-processed signal, the second matched filter module comprising:

[0357] a third filter system that has the same configuration as the first filter system, the second matched filter module configured to provide the second pre-processed signal as input to the third filter system; and

[0358] a fourth filter system that has the same configuration as the second filter system, the second matched filter module configured to provide the second pre-processed signal as input to the fourth filter system; anda processing unit configured to generate a filtered version of the input data using the output signals from the first filter system, the second filter system, the third filter system and the fourth filter system, wherein:

[0359] the output signal of the first filter system is substantially orthogonal to the output signal of the second filter system; and the first set of weights and the second set of weights are selected such that the gain of the first filter system is substantially equal to the gain of the second filter system over a predetermined range of frequencies.

[0360] 21. A matched filter system comprising:

[0361] a pre-processing module configured to receive an input signal and generate therefrom a first pre-processed signal and a second pre-processed signal, the first pre-processed signal being orthogonal to the second pre-processed signal;

[0362] a first matched filter module configured to receive the first pre-processed signal, the first matched filter module comprising:

[0363] a first filter system, the first matched filter module configured to provide the first pre-processed signal as input to the first filter system and wherein the first filter system is configured to generate an output signal of the first filter system as a weighted sum of outputs from a plurality of branches of the first filter system, the weighted sum defined by a first set of weights; and

[0364] a second filter system, the first matched filter module configured to provide the first pre-processed signal as input to the second filter system and wherein the second filter system is configured to generate an output signal of the second filter system as a weighted sum of outputs from a plurality of branches of the second filter system, the weighted sum defined by a second set of weights;

[0365] a second matched filter module configured to receive the second pre-processed signal, the second matched filter module comprising:

[0366] a third filter system that has the same configuration as the first filter system, the second matched filter module configured to provide the second pre-processed signal as input to the third filter system; and

[0367] a fourth filter system that has the same configuration as the second filter system, the second matched filter module configured to provide the second pre-processed signal as input to the fourth filter system; and a processing unit configured to generate a filtered version of the input data using the output signals from the first filter system, the second filter system, the third filter system and the fourth filter system, wherein:

[0368] the output signal of the first filter system is substantially orthogonal to the output signal of the second filter system; and the first set of weights and the second set of weights are selected such that the gain of the first filter system is substantially equal to the gain of the second filter system over a predetermined range of frequencies,

[0369] wherein:

[0370] each of either or both of the first filter system and the second filter system comprises:

[0371] a network of Prism filters arranged to receive the input signal as an input, the network of Prism filters comprising at least one cosine Prism filter and at least one sine Prism filter, wherein:

[0372] each Prism filter is configured to evaluate combinations of double integrals of the form:

[0373]

[0374] where s(t) is an input to the respective Prism filter, m is a characteristic frequency of the respective Prism filter, [sin|cos] represents a sine or a cosine operation, q is an optional, arbitrary phase offset variable, and h is a harmonic number of the respective Prism filter of the network of Prism filters, wherein the total integration period of 2 / m defines the Prism filter sample length;each cosine Prism filter is configured to determine a respective cosine output Geft, where Geft=

[0375] each sine Prism filter is configured to determine a respective sine output G'1, where G'1= Zsfts+ 1^,,' the network of Prism filters comprises a plurality of branches connected in parallel, each branch configured to receive the input signal as an input and wherein the network of Prism filters is configured to generate an output signal based on a combination of outputs from the plurality of branches; and each branch of the plurality of branches comprises at least one Prism filter.

[0376] 22. The matched filter system of clause 21, wherein, in each of either or both of the first filter system and the second filter system, the plurality of branches comprises a plurality of single-Prism branches, each single-Prism branch comprising a single Prism filter.

[0377] 23. The matched filter system of clause 22, wherein, in each of either or both of the first filter system and the second filter system, the Prism filters in the single-Prism branches have different harmonic numbers.

[0378] 24. The matched filter system of clause 22 or 23, wherein, in each of either or both of the first filter system and the second filter system, the plurality of branches comprises a plurality of two-Prism branches, each two-Prism branch comprising two Prism filters arranged in series, a first Prism filter of the two Prism filters receiving the input signal as input and producing an output, and a second Prism filter of the two Prism filters receiving the output of the first Prism filter as input.

[0379] 25. The matched filter system of clause 24, wherein, in each of either or both of the first filter system and the second filter system, the characteristic frequency of each single-Prism branch is such that the sample length of each single-Prism branch is the same as the sample length of each two-Prism branch.

[0380] 26. The matched filter system of clause 25, wherein, in each of either or both of the first filter system and the second filter system:

[0381] each two-Prism branch comprises two Prism filters having a respective pair of characteristic frequencies; and the pair of characteristic frequencies for each two-Prism branch is such that the sample length of the two-Prism branch is the same as the sample length of each other two-Prism branch.

[0382] 27. The matched filter system of clause 26, wherein, in each of either or both of the first filter system and the second filter system:

[0383] each two-Prism branch comprises two Prism filters having a respective pair of characteristic frequences and a respective pair of harmonic numbers; and

[0384] the pair of characteristic frequencies and / or the pair of harmonic numbers for each two-Prism branch is different from the pair of characteristic frequencies and / or pair of harmonic numbers for each other two-Prism branch of the plurality of two-Prism branches.

[0385] 28. The matched filter system of clause 26 or 27, wherein the characteristic frequency of each single-Prism branch is such that the sample length of each single-Prism branch is the same as the sample length of each two-Prism branch.

[0386] 29. The matched filter system of any of clauses 20-28, wherein,

[0387] in the first filter system:

[0388] each two-Prism branch comprises a cosine Prism filter and a sine Prism filter; and

[0389] each single-Prism branch comprises a cosine Prism filter; and

[0390] the second filter system has the same configuration as the first filter system except that:

[0391] each cosine Prism filter in each single-Prism branch is replaced by a sine Prism filter having the same characteristic frequency and harmonic number; and either:each sine Prism filter in each two-Prism branch is replaced by a cosine Prism filter having the same characteristic frequency and harmonic number, such that each two-Prism branch comprises two sine Prism filters; or each cosine Prism filter in each two-Prism branch is replaced by a sine Prism filter having the same characteristic frequency and harmonic number, such that each two-Prism branch comprises two cosine Prism filters. 30. The matched filter system of clause 29, wherein the pre-processing module is configured to perform heterodyning to map the component of interest in the input signal to be within a predetermined range of a peak in the frequency response of the first filter system.

[0392] 31. The matched filter system of clause 30, wherein the pre-processing module is configured to use heterodyning to generate the orthogonal first pre-processed signal and second pre-processed signal.

[0393] 32. The matched filter system of any of clauses 20-31, wherein:

[0394] a variation of gain versus frequency of each of the first filter system, the second filter system, the third filter system and the fourth filter system comprises two local maxima defining respective symmetrical lobes; and

[0395] the processing unit is configured to combine the outputs from the first filter system, the second filter system, the third filter system and the fourth filter system in such a way as to produce a filtered version of the input signal in which one of the symmetrical lobes is substantially suppressed.

[0396] 33. A computer-implemented method of designing a convolutional filter for filtering an input signal, the method comprising: inputting a test signal into the filter system of any of clauses 1-32 to generate an impulse response of the filter system; and generating a convolutional filter for filtering the input signal based on the generated impulse response of the filter system, the convolutional filter defined by filter elements corresponding to respective samples in a sampling window of the filter system. 34. The method of clause 33, further comprising truncating the convolutional filter by removing one or more filter elements corresponding to one or more samples at the start and / or end of the sampling window.

[0397] 35. The method of clause 34, wherein the truncating comprises removing filter elements corresponding to the X% samples that are nearest to the start and / or end of the sampling window, wherein X is equal to or greater than 5%.

[0398] 36. A computer-implemented method of processing an input signal, comprising processing the input signal using a convolution filter designed using the method of any of clauses 33-35.

[0399] 37. The method of clause 36, wherein the input signal comprises data in the time domain and the processing of the input signal comprises deriving a frequency spectrum of the input signal, optionally comprising deriving a Fourier transform of the input signal.

[0400] 38. The method of clause 37, wherein the method comprises applying the designed convolutional filter as a windowing function to the input signal.

[0401] 39. The method of clause 37 or 38, wherein the method comprises refining the derived frequency spectrum by selectively notching out one or more selected local peaks in the derived frequency spectrum and updating an amplitude estimate for one or more other peaks in the frequency spectrum.

[0402] 40. The method of clause 39, wherein the notching is performed using the signal processing filter system of any of clauses IQ-19 or a convolutional filter derived from the signal processing filter system of any of clauses 10-19.

[0403] 41. A computer-implemented method of processing an input signal, the method comprising generating an output signal by providing the input signal to the filter system of any of clauses 1-9 or a convolutional filter derived therefrom.

[0404] 42. A computer-implemented method of processing an input signal, the method comprising calculating one or more of an amplitude, a phase and a frequency of a component of interest in an input signal by providing the input signal to the signal processing filter system of any of clauses 10-19.43. A computer-implemented method of processing an input signal, the method comprising obtaining one or more notched signals from an input signal by providing the input signal to the signal processing filter system of any of clauses 10-19.

[0405] 44. A computer-implemented method of processing an input signal, the method comprising generating a filtered version of the input signal using the matched filter system of any of clauses 20-32.

[0406] 45. A computer program storing instructions which, when executed by a computer, cause the computer to perform the method of any of clauses 33-45.

[0407] 46. A computer readable medium storing the computer program of clause 45.

[0408] 47. The filter system of any of clauses 1-32, the method of designing a convolutional filter of any of clauses 33-35, or the method of processing an input signal of any of clauses 36-44, wherein the input signal is, or is a representation of, one or more of the following: an audio signal, a video signal, a communications signal, a system control signal, a seismological signal, a biological signal, a physical signal, a chemical signal, a physiological signal, an electrical power signal, a radar signal, a sonar signal, a vibration signal, a condition monitoring signal, a signal representing measurements of a mechanical or electrical system, and a signal representing one or more physical quantities measured by a scientific instrument and / or an industrial instrument.

[0409] 48. The filter system of any of clauses 1-32, the method of designing a convolutional filter of any of clauses 33-35, or the method of processing an input signal of any of clauses 36-44, wherein the input signal is output from a sensor.REFERENCES

[0410] Patent application references

[0411] [A] US2019294649A1 Method and system for tracking sinusoidal wave parameters from a received signal that includes noise.

[0412] [B] WO2019211309A1 Method and system for ultra-narrowband filtering with signal processing using a concept called Prism.

[0413] [C] WO2023105194A1 FILTER SYSTEM AND METHOD OF DESIGNING A CONVOLUTIONAL FILTER

[0414] [D] WO2023105183A1 METHODS AND SYSTEMS FOR FILTERING AND ESTIMATING CHARACTERISTICS OF AN INPUT SIGNAL USING A TRACKER COMPRISING A PRISM FILTER

[0415] Scientific Literature References:

[0416] [1] Henry, MP. “The Prism: recursive FIR signal processing for instrumentation applications”. IEEE Transactions on Instrumentation and Measurement, April 2020.

[0417] [2] Henry, MP. Building Billion Tap Filters. IEEE Industrial Electronics Magazine, Nov 2020.

[0418] [3] Henry, MP. Spectral Analysis Techniques using Prism Signal Processing, Measurement, Sep 2020

[0419] [4] Henry, MP. “Low Pass, Low cost Prism Filters”, 2020 IEEE International Workshop on Metrology for Industry 4.0 & loT, Rome, June 2020.

[0420] [5] Henry, MP et al.. “The Prism: Efficient Signal Processing for the Internet of Things,” IEEE Industrial Electronics Magazine, pp 2-10, December 2017. DOI: 10.1109 / MIE.2017.2760108

[0421] [6] Henry, MP. “An ultra-precise Fast Fourier Transform”, Measurement, Volume 220, 2023, 113372, ISSN 0263-2241. https: / / doi.Org / 10.1016 / j.measurement.2023.113372

Claims

CLAIMS1. A filter system for filtering an input signal, the filter system comprising:a network of Prism filters arranged to receive the input signal as an input, the network of Prism filters comprising at least one cosine Prism filter and at least one sine Prism filter, wherein:each Prism filter is configured to evaluate combinations of double integrals of the form:where s(t) is an input to the respective Prism filter, m is a characteristic frequency of the respective Prism filter, [sin |cos] represents a sine or a cosine operation, q is an optional, arbitrary phase offset variable, and h is a harmonic number of the respective Prism filter of the network of Prism filters, wherein the total integration period of 2 / m defines the Prism filter sample length;each cosine Prism filter is configured to determine a respective cosine output Gc'1, where Gc'1= I^s— I^c;each sine Prism filter is configured to determine a respective sine output G'1, where G'1= / sfts+ 1^,,'the network of Prism filters comprises a plurality of branches connected in parallel, each branch configured to receive the input signal as an input and wherein the network of Prism filters is configured to generate an output signal based on a combination of outputs from the plurality of branches;the plurality of branches comprises a plurality of single-Prism branches and a plurality of two-Prism branches;each single-Prism branch comprises a single Prism filter;each two-Prism branch comprises two Prism filters arranged in series, a first Prism filter of the two Prism filters receiving the input signal as input and producing an output, a second Prism filter of the two Prism filters receiving the output of the first Prism filter as input, and the two Prism filters having a respective pair of characteristic frequencies;the pair of characteristic frequencies for each two-Prism branch is such that the sample length of the two-Prism branch is the same as the sample length of each other two-Prism branch; andthe characteristic frequency of each single-Prism branch is such that the sample length of each single-Prism branch is the same as the sample length of each two-Prism branch.

2. The filter system of claim 1, wherein:each two-Prism branch comprises two Prism filters having a respective pair of characteristic frequences and a respective pair of harmonic numbers; andthe pair of characteristic frequencies and / or the pair of harmonic numbers for each two-Prism branch is different from the pair of characteristic frequencies and / or pair of harmonic numbers for each other two-Prism branch of the plurality of two-Prism branches.

3. The filter system of claim 2, wherein the harmonic numbers in each pair of harmonic numbers have the same value as each other.

4. The filter system of any preceding claim, wherein the Prism filters in the single-Prism branches have different harmonic numbers.

5. The filter system of any preceding claim, wherein each branch of the plurality of branches comprises at least one cosine Prism filter.

6. The filter system of claim 5, wherein each two-Prism branch comprises a cosine Prism filter and a sine Prism filter having a respective pair of characteristic frequencies.

7. The filter system of claim 6, wherein each single-Prism branch comprises a cosine Prism filter.

8. The filter system of claim 7, wherein for each two-Prism branch:the characteristic frequency of the cosine Prism filter of the two-Prism branch is denoted me;the characteristic frequency of the sine Prism filter of the two-Prism branch is denoted ms;the characteristic frequency of the cosine Prism in each single-Prism branch is denoted m^\ andthe following expression is satisfied:1 1 1- 1 - — — .mcmsmf9. The filter system of any preceding claim, wherein the sample length of each integral of each Prism filter in each branch of the plurality of branches is an integer multiple of a positive power of two.

10. A signal processing filter system comprising:a pre-processing module configured to receive an input signal to be processed and generate therefrom a first pre-processed signal and a second pre-processed signal, the first pre-processed signal being orthogonal to the second pre-processed signal;a first filter module configured to receive the first pre-processed signal, the first filter module comprising:a first filter system according to any of claims 1 -9 in which each branch of the plurality of branches comprises at least one cosine Prism filter, the first filter module configured to provide the first pre-processed signal as input to the first filter system; anda second filter system that has the same configuration as the first filter system except that each cosine Prism filter is replaced by a sine Prism filter, the first filter module configured to provide the first pre-processed signal as input to the second filter system;a second filter module configured to receive the second pre-processed signal, the second filter module comprising:a third filter system that has the same configuration as the first filter system, the second filter module being configured to provide the second pre-processed signal as input to the third filter system; anda fourth filter system that has the same configuration as the second filter system, the second filter module being configured to provide the second pre-processed signal as input to the fourth filter system; a processing unit configured to:calculate and output one or more of an amplitude, a phase and a frequency of a component of interest in the input signal using output signals from the first filter system, the second filter system, the third filter system and the fourth filter system; and / oroutput one or more notched signals using output signals from the first filter system, the second filter system, the third filter system and the fourth filter system.

11. A signal processing filter system comprising:a pre-processing module configured to receive an input signal to be processed and generate therefrom a first pre-processed signal and a second pre-processed signal, the first pre-processed signal being orthogonal to the second pre-processed signal;a first filter module configured to receive the first pre-processed signal, the first filter module comprising:a first filter system, the first filter module configured to provide the first pre-processed signal as input to the first filter system; anda second filter system, the first filter module configured to provide the first pre-processed signal as input to the second filter system;a second filter module configured to receive the second pre-processed signal, the second filter module comprising:a third filter system that has the same configuration as the first filter system, the second filter module being configured to provide the second pre-processed signal as input to the third filter system; anda fourth filter system that has the same configuration as the second filter system, the second filter module being configured to provide the second pre-processed signal as input to the fourth filter system; and a processing unit configured to:calculate and output one or more of an amplitude, a phase and a frequency of a component of interest in the input signal using output signals from the first filter system, the second filter system, the third filter system and the fourth filter system; and / oroutput one or more notched signals using output signals from the first filter system, the second filter system, the third filter system and the fourth filter system,wherein:the first filter system comprises:a network of Prism filters arranged to receive the input signal as an input, the network of Prism filters comprising at least one cosine Prism filter and at least one sine Prism filter, wherein:each Prism filter is configured to evaluate combinations of double integrals of the form:where s(t) is an input to the respective Prism filter, m is a characteristic frequency of the respective Prism filter, [sin|cos] represents a sine or a cosine operation, q is an optional, arbitrary phase offset variable, and h is a harmonic number of the respective Prism filter of the network of Prism filters, wherein the total integration period of 2 / m defines the Prism filter sample length;each cosine Prism filter is configured to determine a respective cosine output Gc'1, where Gc'1= I^s— jh .*sc>each sine Prism filter is configured to determine a respective sine output G'1, where G'1= I^s+ I^c; the network of Prism filters comprises a plurality of branches connected in parallel, each branch configured to receive the input signal as an input and wherein the network of Prism filters is configured to generate an output signal based on a combination of outputs from the plurality of branches; and each branch of the plurality of branches comprises at least one cosine Prism filter.

12. The signal processing filter system of any of claims 10-11, wherein the pre-processing module is configured to perform heterodyning to map the component of interest in the input signal to be within a predetermined range of a peak in the frequency response of the first filter system.

13. The signal processing filter system of claim 12, wherein the pre-processing module is configured to use heterodyning to generate the orthogonal first pre-processed signal and second pre-processed signal.

14. A matched filter system comprising:a pre-processing module configured to receive an input signal and generate therefrom a first pre-processed signal and a second pre-processed signal, the first pre-processed signal being orthogonal to the second pre-processed signal;a first matched filter module configured to receive the first pre-processed signal, the first matched filter module comprising:a first filter system according to any of claims 1-9, the first matched filter module configured to provide the first pre-processed signal as input to the first filter system and wherein the first filter system is configured to generate the output signal of the first filter system as a weighted sum of the outputs from the plurality of branches of the first filter system, the weighted sum defined by a first set of weights; anda second filter system according to any of claims 1-9, the first matched filter module configured to provide the first pre-processed signal as input to the second filter system and wherein the second filter system is configured to generate the output signal of the second filter system as a weighted sum of the outputs from the plurality of branches of the second filter system, the weighted sum defined by a second set of weights;a second matched filter module configured to receive the second pre-processed signal, the second matched filter module comprising:a third filter system that has the same configuration as the first filter system, the second matched filter module configured to provide the second pre-processed signal as input to the third filter system; anda fourth filter system that has the same configuration as the second filter system, the second matched filter module configured to provide the second pre-processed signal as input to the fourth filter system; and a processing unit configured to generate a filtered version of the input data using the output signals from the first filter system, the second filter system, the third filter system and the fourth filter system, wherein:the output signal of the first filter system is substantially orthogonal to the output signal of the second filter system; and the first set of weights and the second set of weights are selected such that the gain of the first filter system is substantially equal to the gain of the second filter system over a predetermined range of frequencies.

15. A matched filter system comprising:a pre-processing module configured to receive an input signal and generate therefrom a first pre-processed signal and a second pre-processed signal, the first pre-processed signal being orthogonal to the second pre-processed signal;a first matched filter module configured to receive the first pre-processed signal, the first matched filter module comprising:a first filter system, the first matched filter module configured to provide the first pre-processed signal as input to the first filter system and wherein the first filter system is configured to generate an output signal of the first filter system as a weighted sum of outputs from a plurality of branches of the first filter system, the weighted sum defined by a first set of weights; anda second filter system, the first matched filter module configured to provide the first pre-processed signal as input to the second filter system and wherein the second filter system is configured to generate anoutput signal of the second filter system as a weighted sum of outputs from a plurality of branches of the second filter system, the weighted sum defined by a second set of weights;a second matched filter module configured to receive the second pre-processed signal, the second matched filter module comprising:a third filter system that has the same configuration as the first filter system, the second matched filter module configured to provide the second pre-processed signal as input to the third filter system; anda fourth filter system that has the same configuration as the second filter system, the second matched filter module configured to provide the second pre-processed signal as input to the fourth filter system; and a processing unit configured to generate a filtered version of the input data using the output signals from the first filter system, the second filter system, the third filter system and the fourth filter system, wherein:the output signal of the first filter system is substantially orthogonal to the output signal of the second filter system; and the first set of weights and the second set of weights are selected such that the gain of the first filter system is substantially equal to the gain of the second filter system over a predetermined range of frequencies,wherein:each of either or both of the first filter system and the second filter system comprises:a network of Prism filters arranged to receive the input signal as an input, the network of Prism filters comprising at least one cosine Prism filter and at least one sine Prism filter, wherein:each Prism filter is configured to evaluate combinations of double integrals of the form:where s(t) is an input to the respective Prism filter, m is a characteristic frequency of the respective Prism filter, [sin|cos] represents a sine or a cosine operation, q is an optional, arbitrary phase offset variable, and h is a harmonic number of the respective Prism filter of the network of Prism filters, wherein the total integration period of 2 / m defines the Prism filter sample length;each cosine Prism filter is configured to determine a respective cosine output Gc'1, where Gc'1= I^s— jh .*sc>each sine Prism filter is configured to determine a respective sine output G'1, where G'1= I^s+ I^c; the network of Prism filters comprises a plurality of branches connected in parallel, each branch configured to receive the input signal as an input and wherein the network of Prism filters is configured to generate an output signal based on a combination of outputs from the plurality of branches; and each branch of the plurality of branches comprises at least one Prism filter.

16. The matched filter system of any of claims 14-15, wherein,in the first filter system:each two-Prism branch comprises a cosine Prism filter and a sine Prism filter; andeach single-Prism branch comprises a cosine Prism filter; andthe second filter system has the same configuration as the first filter system except that:each cosine Prism filter in each single-Prism branch is replaced by a sine Prism filter having the same characteristic frequency and harmonic number; and either:each sine Prism filter in each two-Prism branch is replaced by a cosine Prism filter having the same characteristic frequency and harmonic number, such that each two-Prism branch comprises two sine Prism filters; or each cosine Prism filter in each two-Prism branch is replaced by a sine Prism filter having the same characteristic frequency and harmonic number, such that each two-Prism branch comprises two cosine Prism filters.

17. The matched filter system of any of claims 14-16, wherein:a variation of gain versus frequency of each of the first filter system, the second filter system, the third filter system and the fourth filter system comprises two local maxima defining respective symmetrical lobes; andthe processing unit is configured to combine the outputs from the first filter system, the second filter system, the third filter system and the fourth filter system in such a way as to produce a filtered version of the input signal in which one of the symmetrical lobes is substantially suppressed.

18. A computer-implemented method of designing a convolutional filter for filtering an input signal, the method comprising: inputting a test signal into the filter system of any of claims 1-17 to generate an impulse response of the filter system; and generating a convolutional filter for filtering the input signal based on the generated impulse response of the filter system, the convolutional filter defined by filter elements corresponding to respective samples in a sampling window of the filter system.

19. The method of claim 18, further comprising truncating the convolutional filter by removing one or more filter elements corresponding to one or more samples at the start and / or end of the sampling window.

20. The method of claim 19, wherein the truncating comprises removing filter elements corresponding to the X% samples that are nearest to the start and / or end of the sampling window, wherein X is equal to or greater than 5%.

21. A computer-implemented method of processing an input signal, comprising processing the input signal using a convolution filter designed using the method of any of claims 18-20, wherein the input signal comprises data in the time domain and the processing of the input signal comprises deriving a frequency spectrum of the input signal, optionally comprising deriving a Fourier transform of the input signal.

22. The method of claim 21, wherein the method comprises applying the designed convolutional filter as a windowing function to the input signal.

23. The method of claim 21 or 22, wherein the method comprises refining the derived frequency spectrum by selectively notching out one or more selected local peaks in the derived frequency spectrum and updating an amplitude estimate for one or more other peaks in the frequency spectrum.

24. The filter system of any of claims 1-17, the method of designing a convolutional filter of any of claims 18-20, or the method of processing an input signal of any of claims 21-23, wherein the input signal is, or is a representation of, one or more of the following: an audio signal, a video signal, a communications signal, a system control signal, a seismological signal, a biological signal, a physical signal, a chemical signal, a physiological signal, an electrical power signal, a radar signal, a sonar signal, a vibration signal, a condition monitoring signal, a signal representing measurements of a mechanical or electrical system, and a signal representing one or more physical quantities measured by a scientific instrument and / or an industrial instrument.

25. The filter system of any of claims 1-17, the method of designing a convolutional filter of any of claims 18-20, or the method of processing an input signal of any of claims 21-23, wherein the input signal is output from a sensor.5