```javascript
%%javascript
MathJax.Hub.Config({TeX: { equationNumbers: { autoNumber: "AMS" } }});
```


    <IPython.core.display.Javascript object>


# WFLC - Weighted Fourier Linear Combiner

The WFLC is an extension of the FLC algorithm first presented in this [paper](http://ieeexplore.ieee.org/document/686791/), and like the FLC it models the tremor input as a dynamic truncated Fourier series. Where the FLC works on a preset fixed frequency, the WFLC can adapt the frequency of the model as well as its Fourier coefficients. The WFLC can, therefore, compensate for approximately periodic disturbance of unknown frequency and amplitude. The WFLC does not filter away the voluntary movement when used for estimating a tremor signal, and in the [paper](http://ieeexplore.ieee.org/document/686791/), a bandpass prefilter with passband 7-13 Hz was used before the WFLC  to filter away voluntary motion. The bandpass filter has a small phase lag, so the estimated frequency from the WFLC is sent to an FLC with no prefiltering to get a zero-phase tremor estimation.

The equations for the WFLC filter are as follows

\begin{equation}
y_k=\sum_{r=0}^{n}a_{rk}\sin(r\omega_{0_k} k )+b_{rk}\cos(r\omega_{0_k}k)
\end{equation}
\begin{align}
\textbf{x}_k&=
\begin{bmatrix}
[\sin(\omega_{0_k}k)&\sin(2\omega_{0_k}k)&\cdots&\sin(n\omega_{0_k}k)]^T \\
[\cos(\omega_{0_k}k)&\cos(2\omega_{0_k}k)&\cdots&\cos(n\omega_{0_k}k)]^T
\end{bmatrix}\\
\textbf{w}_k&=\begin{bmatrix}
[a_{1k}&a_{2k}&\cdots & a_{nk}]^T\\
[b_{1k}&b_{2k}&\cdots & b_{nk}]^T
\end{bmatrix} \\
y_k&=\textbf{w}_k^T\textbf{x}_k\\
\varepsilon_k&=s_k-y_k=s_k-\textbf{w}_k^T\textbf{x}_k\\
\textbf{w}_{k+1}&=\textbf{w}_k+2\mu\textbf{x}_k\epsilon_k
\end{align}

The fundamental angular frequency, $\omega_{0_k}$, is updated using a modified LSM algorithm, with its own adaptive gain, $\mu_0$

\begin{equation}\label{eq:w0k}
\omega_{0_{k+1}}=\omega_{0_k}+2\mu_0\varepsilon_k\sum_{r=1}^{n}r\left[a_{rk}\cos(r\omega_{0_k}k)-b_{rk}\sin(r\omega_{0_k}k) \right] 
\end{equation}

Input amplitude and phase are estimated by the adaptive weight vector $\textbf{w}_k$, as in FLC, while $\omega_{0_k}$ estimates the input frequency.  If $\mu_0=0$, the WFLC reduces to the FLC.



d3c8623755e3deb4642a34d79a2067c7e0049563
ipynb
Jupyter Notebook
3. WFLC.ipynb
Bjarten/flc-based-filters
4299cc4010f41a52c16770a1e712b2fe2a878dc5
MIT
2019-03-08T02:38:45.000Z
2022-03-18T12:13:26.000Z
3. WFLC.ipynb
Bjarten/flc-based-filters
4299cc4010f41a52c16770a1e712b2fe2a878dc5
MIT
3. WFLC.ipynb
Bjarten/flc-based-filters
4299cc4010f41a52c16770a1e712b2fe2a878dc5
MIT
2020-06-04T16:13:06.000Z
2020-06-04T16:13:06.000Z
Qwen/Qwen-72B
1. YES
2. YES