12

A state variable and its derivative are often included as inputs to a Kalman filter, but this is not required. The essence of the Kalman framework is that the system in question has some internal state that you are trying to estimate. You estimate those state variables based on your measurements of that system's observables over time. In many cases, you can'...


10

A beamformer is basically a spatial filter. It can be passive, just like a temporal filter. Instead of samples separated by time, they are separated by space. A passive temporal filter can be a bandpass that is "aimed" or "steered" at a particular frequency. For passive spatial filters (i.e. beamformers), the filter can be steered towards a particular ...


10

The key concept that you are missing is that you are not just minimising the difference between input and output signals. The error is often calculated from a 2nd input. Just look at the Wikipedia example related to the ECG. The filter coefficients in this example are recalculated to change the notch frequency of a notch filter according to the frequency ...


10

Turns out that convolution and correlation are closely related. For real signals (and finite energy signals): Convolution: $\qquad y[n] \triangleq h[n]*x[n] = \sum\limits_{m=-\infty}^{\infty} h[n-m] \, x[m]$ Correlation: $\qquad R_{yx}[n] \triangleq \sum\limits_{m=-\infty}^{\infty} y[n+m] \, x[m] = y[-n]*x[m]$ Now, in metric spaces, we like to use this ...


7

The LMS algorithm is based on the idea of gradient descent to search for the optimal (minimum error) condition, with a cost function equal to the mean squared error at the filter output. However, it doesn't actually calculate the gradient directly, as that would require knowing: $$ E(\mathbf{x}[n]e^*[n]) $$ where $\mathbf{x}[n]$ is the input vector and $e[...


7

TL;DR: No, they are not necessarily the same. Gory Details Least squares is just an optimization technique. It is used in a variety of ways. For filter design it is used to select that realizable filter $H_r(e^{j\omega})$ that most closely matches, in the least squares sense, the ideal required filter response $H_i(e^{j\omega})$: $$ H_r(e^{j\omega}) = \...


6

If you want to implement the "standard" NLMS algorithm without cutting any corners, then you're probably not going to find a structure that is significantly more efficient. Block forms of LMS filtering aim to use fast convolution techniques (like overlap-save or overlap-add) to speed that part of the process. However, as you noted, the filter coefficients ...


6

Note that the inverse of an FIR system is IIR, and the same is true for the inverse of an IIR system, unless it is an all-pole system, the inverse of which would be FIR. So in most cases the ideal equalizer should have an infinitely long impulse response in order to perfectly invert the channel. In practice almost all adaptive equalizers are FIR filters ...


6

That really depends on context, but generally adaptive implies that the calculations are done on-line / on the fly. In some applications, the filter is updated for a while, then the adaptation is turned off and the last lot of weights are used.


6

To expand on what Peter K. has said, if the signals being used by the filter are stationary, then the filter weights or coefficients can be determined and the filter operates as it was designed without further updates to the filter weights. However, if the signals change, or become quasi-stationary, the filter will adapt continuously.


6

Comments provided here are in two broad categories: Presentation and Subject matter. The "Presentation" section is the easiest to address. There are some things that could be rephrased in terms of language use but these might be just personal preferences. The "Subject matter" section includes comments in methodology which could take more time to address. ...


6

Here I expected $y(n)$ is to be computed by convolving $x(n)$ with $h(n)$, but in the equation given by Wikipedia it is shown as a matrix multiplication $y(n) = h^H(n).x(n)$. Are these two operations(convolution and matrix multiplication) same here?. The system is an FIR system, so the vector multiplication here is equivalent to convolution --- for ...


5

Your code reveals many misconception about what the CMA is supposed to achieve: your step size mu is much too small; note, however, that the optimal step size can only be found through experiment. the variabe noisedB appears to be the desired SNR of the received signal. An SNR of $0\,\text{dB}$ as specified by you is very poor (the noise is as strong as the ...


5

You want to remove the heart beat signal and keep the "noise". We can solve this problem by using a denoising algorithm, and subtracting the denoised signal from the original signal. Setting frequency cutoffs for a frequency domain filter can get tricky and turn into a game of whack-a-mole because there's "high frequency" components in the heartbeat blip (...


4

The Covariance Matrix is commonly defined as $$\mathbf Q = E\left[ (\mathbf x -\mathbf\mu_{x})(\mathbf x -\mathbf\mu_{x})^*\right]$$ with $\mu$ denoting the mean value, i.e. $\mu_{x}=E\left[\mathbf x\right]$, and $\mathbf x$ being column vectors. The fact that you define the covariance matrix as $$\mathbf{R}_i = E\left[\textbf{u}_i^*\textbf{u}_i \right]$$ ...


4

A real filter wont perfectly remove all unwanted frequencies. But then, a real $X_\mathrm{anything,whatever}$ won't do its job perfectly. The real world isn't perfect, you only get perfection in mathematics. What's important though is that a filter can approximately remove the unwanted frequencies. For example if you have some interference at 100 kHz, then ...


4

The use of the conjugate in the formation of the adaptive filter isn't necessary. However, if you do not write the output using a conjugate then it is quite easy to forget that the variables you are dealing with are complex. If you write $$h(n)=\sum_{k=0}^{\infty}w_k(n)u(n-k) $$ then it isn't clear that you are dealing with complex quantities. As Robert has ...


3

Yaw-rate of the camera may be calculated from deviding the velocity of a 2D position by a image depth(one of the 3D position). So, basicaly you have two types of solutions of the yaw-rate, oen is by image position processing ,another is by yaw-rate senser. They may be combined each another with Kalman filter to refine the yaw-rate.


3

My best attempt at this so far is kind of inspired by the difference of Gaussians. I'm putting it as an answer, even though I'm not totally happy with it. Basically I made a blurred version of the image using two different Gaussian kernels. One captures the fine detail (small kernel) and the other captures the broad detail (large kernel). These two were ...


3

"Deep zeros" in the input spectrum are caused by a channel which strongly attenuates one or several frequencies, often due to multipath fading. This causes problems for a (linear) equalizer because it tries to compensate for these "deep zeros" by strong amplification of the corresponding frequency bands, which leads to noise enhancement. Non-linear ...


3

Local contrast enhancement a.k.a. Unsharp masking is a simple, fast method for modeling, then removing, smooth (low-frequency) background noise. In a nutshell, extract a smooth background image with a wide-radius lowpass filter sharper_image = image + c * (image - background), c ~ 10 % or so: highpass Using scipy.ndimage, this is : def sharpen( image, ...


3

In case you're looking for an edge-preserving low pass filter, you could have a look at the bilateral filter. Implementation is fairly straightforward.


3

The quadratic surface is determined by the autocorrelation matrix of the data, which is always positive definite or positive semi-definite. This means that any stationary point is always a minimum. In the worst case, this minimum is not unique if the matrix is singular, but it can never be a saddle point.


3

It depends on how good your interpolation between samples is. If you have really good interpolation, anything more than 2 samples per cycle will suffice. This is not just a theoretical fact, it is my experience in practice using polyphase interpolation that combines 64 adjacent table-lookup samples. If you're using linear interpolation (which combines 2 ...


3

One way to do this is to look at modeling your signal: $$ x[n] = x_h[n] + x_n[n] $$ where $x_h$ is the hissing sound and $x_n$ is the noise. If you can say that $x_n$ is modeled as: $$ x_n[n] = \sum_{k=K_1}^{K_2} a_k \sin(k\omega_0 n + \phi_k) $$ where $K_1$ is the lowest harmonic of frequency $\omega_0$ that makes it through your high pass filter, $K_2$ is ...


3

These are the key differences between FIR and IIR filters, regarding the feature you wish to control are the following: $$ \begin{array}{c|lcr} \text{Feature} & \text{IIR} & \text{FIR} \\ \hline \text{Implementation} & \text{Poles & Zeros} & \text{Zeros Only} \\ \text{States} & \text{Yes} & \text{No} \\ \text{Phase Delay} & \...


3

In order to be able to choose an optimal value for the delay $\Delta$ it's important to understand how the system works. The purpose of the delay is to decorrelate the desired signal $s(n)$ and the signal component $s(n-\Delta)$ at the input of the adaptive filter. This means that $\Delta$ must be chosen such that the autocorrelation $R_{ss}(k)$ of $s(n)$ is ...


3

...can we predict $h$ using LMS algorithm under all conditions? LMS converges under most "reasonable" conditions. The weights of the filter are adapted by a "signal" that is derived by the mean square error of the difference between two signals, which is convex. That is, it has a single minimum (when it does) and it will trickle towards it. If you notice ...


3

Unlike a standard high pass filter where you set a cut-off frequency and other design parameters for a fixed filter result with a pass band ripple, stop band rejection, phase response etc.. the "recursive least squares filter" is an adaptive filter commonly used for channel equalization. As a high level working example of a LMS equalizer, please see my post ...


3

If you are working on chat application (presumably web), then I suggest to take a look at WebRTC. It offers a noise suppressor that works ok for speech. Another option would be to use part of the Speex, which also has a noise suppression module.


Only top voted, non community-wiki answers of a minimum length are eligible