Tag Info

10

Yes, you can do this with an LMS equalizer which uses the Wiener-Hopf equation to determine the least squared solution to the filter that would compensate for your channel, using the known transmit and receive sequences. The channel is the unknown being solved, and the tx and rx sequences are known. BOTTOM LINE: Here is the Matlab function with error ...

9

Since convolution describes the operation of a linear time-invariant (LTI) system, the question is if the effect of an LTI system can be compensated by another LTI system. In the discrete-time domain you can use the $\mathcal{Z}$-transform to analyze LTI systems. If a signal $x(n)$ (with $\mathcal{Z}$-transform $X(z)$) is filtered by a system with impulse ...

8

I think you are constructing the convolution matrix incorrectly. Let's do an easy example with some numbers to see how it is constructed Let's imagine that youhave the following vectors of dimensions $M$ and $N$, And let's for the sake of it, say that $M = 5$ and $N = 4$ $\mathbf{a} = [a_{1},a_{2},a_{3},a_{4}]^{T}$ $\mathbf{b} = [b_{1},b_{2},b_{3},b_{4},... 7 You cant't recover the original signal through deconvolution. A Gaussian kernel is in essence a lowpass filter, i.e. it will remove information at higher frequencies from the signal. Once it's gone, it's gone and you can't recover it. This problem shows up as "divide by zero" or "divide by a very small number", which then amplifies numerically noise of ... 6 This is a nice question. I will try solving it using 2 approaches (Which are basically the same). The solution is the Least Squares Solution: $$\hat{h} = \arg \min_{h} \frac{1}{2} \left\| h \ast x - y \right\|_{2}^{2}$$ We assume data is given in finite discrete form (As it is in practice). The convolution is done in valid mode (Like in MATLAB valid ... 6 No. It's only LTI (Linear and Time-Invariant) systems that can be modeled with convolution through a unique single impulse response. For example the systems $$y(t) = g(t) x(t)$$ or $$y[n] = \sum_{k=0}^{k < n} x[n-k]$$ are both linear but not time-invariant and their output$y[n]$cannot be computed with the convolution operation ($\star$denoting ... 5 This type of problem is called deconvolution. There are several approaches to tackle it, including Wiener filtering (another name for Wiener deconvolution), but there are many of them. Wiener filtering is not reserved to deblurring: it is to cancel linear degradation operators. As remarked by Aaron, it is very often an ill-posed problem and additional ... 5 For one variable, we have $$y(i) = \sum_m x(i-m) \cdot h(m).$$ For two variables it's $$y(i,j) = \sum_m \sum_n x(m,n) \cdot h(i-m,j-n).$$ For three: $$y(i,j,k) = \sum_m \sum_n \sum_p x(m,n,p) \cdot h(i-m,j-n,k-p).$$ 5 what about this: function [convolve] = myconv(x, y) L = length(x) + length(y) - 1 convolve = ifft(fft(x, L) .* fft(y, L)); end Using the convolution theorem. Regarding deconv function, check this out: x = randn(10,1); y = randn(10,1); L = length(x) + length(y) - 1; z = ifft(fft(x, L) .* fft(y, L)); z2 = conv(x, y); sum(abs(z-z2)) x2 = ifft(fft(... 5 I would take approach based on Blind Deconvolution. Since we're dealing with ill posed problem some assumptions should be made. The intuitive approach would be using the information as a prior for the signal. Another idea is to add LPF assumption of the Filter by setting the sum of its coefficients to be 1 and non negative. Yet since we have Discrete ... 4 It's an interesting problem. What you have there is what's known as a blind deconvolution problem. These are well known "hard" problems, but not necessarily impossible. Finding an algorithm to solve it relies on using some prior knowledge you have about the filter or the noise source driving it. It's an ill-posed problem mathematically, so if there is ... 4 For a real-valued signal$C$, the autocorrelation function$M$is a real-valued even function and the power spectral density$m$(Fourier transform of$M$) is a real-valued nonnegative even function. Now,$m(k) = c(k)c^*(k)$where$c$is the Fourier transform of$C$, as you correctly assert, but given only$m$and no other information about$c$(or$C$), it ... 4 1) The first equation should look like: h_pred = ifft2 ( fft2(k) ./ fft2(x) ). You have a small typo there, I believe. Make sure you first zero-pad the kernel to the size of image. 2) MATLAB also has a blind deconvolution function: http://www.mathworks.com/help/images/ref/deconvblind.html I don't know if you are referencing to this one, but for Toeplitz ... 4 A linear time-invariant (LTI) system is completely characterized by its impulse response$h(t)$. The output signal$y(t)$given an arbitrary input signal$x(t)$is given by the convolution of this input signal with the system's impulse response: $$y(t)=(x\star h)(t)\tag{1}$$ where$\star$denotes convolution. In the frequency domain, Eq. (1) becomes a ... 4 Approaches There are many methods for Deconvolution (Namely the degradation operator is linear and Time / Space Invariant) out there. All of them try to deal with the fact the problem is Ill Poised in many cases. Better methods are those which add some regularization to the model of the data to be restored. It can be statistical models (Priors) or any ... 4 I will divide my answer into 3 sections. The Distribution of the Derivative of Images Take a real world image, any image. Apply the derivative operator on it (Namely apply the kernel$ \left[ 1, -1 \right] $on it. Display the histogram of the filtered image. I took this image: The histogram I got is this: This distribution is very similar to Laplace ... 3 Yes, that conclusion would be valid. However, as you suspected, there are some limitations. Consider the case where the system's frequency response$Y[k]$contains one or more zeros. In that case, corresponding frequency bin in your estimate of the input signal$X[k]$would diverge to infinity (because of the division by zero). What you're really trying to ... 3 The Wiener Filter can also be derived by another (Easier) way. Let's assume the following model: $$y = h \ast x + n$$ Namely the data is a result of a linear combination (Convolution) of$ x $with Additive Noise. If we assume the noise model is Gaussian and our data is also formed by a Gaussian distribution then we should try to minimize (MAP ... 3 Taking a quick look at your acquisition: this doesn't look too terrible in terms of noise, however, the acquisition window looks way too short. With a 60ms window your frequency resolution is only 160 Hz. From the looks of it, you will also get a massive truncation error. As a rough rule of thumb, you want the acquisition window long enough so that the ... 3 The function is based on Matlab's deconv, so reading that page should help understand it. Here's a docstring I wrote for SciPy's deconvolve, but haven't submitted yet because I'm not sure it's 100% correct: https://github.com/scipy/scipy/pull/430#issuecomment-13675004 The input to deconvolve is signal and divisor, and your output is quotient and remainder, ... 3 I will go to very beginning of the question. There are deconvolution functions in MATLAB which are used for image processing applications. However, you can also use these functions for 1D signals. For example, % a random signal sig_clean = zeros(1,200); sig_clean(80:100)=100; figure subplot(1,3,1) plot(sig_clean,'b-.','LineWidth',2) legend('Clean Signal') ... 3 Deconvolution of a noisy data is known to be an ill-posed problem, since the noise is arbitrarily magnified in the reconstructed signal. Therefore, a regularization method is required to stabilize the solution. Here, you can find a MATLAB package that addresses this issue by implementing the Tikhonov's regularization algorithm: https://github.com/soheil-... 3 The PSF (Point Spread Function) is the system response to Impulse Signal (Point). If your system model is LSI (Linear Spatially Invariant) then the output image of the system is applying the PSF as a convolution kernel on the input image. Yet, the PSF is just the response of a system to a certain input. It doesn't describe the whole system unless it is ... 3 Let's try to think of it intuitively. Given the LPF what would make the inverse "Hard"? The sections we won't be able to recover are where the LPF is 0, since there is no inverse for that we can multiply the result by. Real world LPF won't reach "Real" zero as usually. But what would make it hard to recover is where there are big ratios between the ... 3 Batman has given a great answer. You need to go through the recommended book in order to understand the concepts mentioned. Let me try to simplify it. BIG PICTURE: De-convolution or inverse filtering is required to retrieve an estimate of the original signal that went through an unknown linear system. Basically, we have a signal which went through an ... 3 Consider the sequences [2 0 2 0 2 0 2 0] and [1 1 1 1 1 1 1 1]. When you filter these with the filter [1/2 1/2] both become [1 1 1 1 1 1 1 1]. In general, there are many input sequences that all filter to the same output. If you want to invert it you need some way of choosing which of those inputs is the one you want. 3 First of all note that there is a certain ambiguity in the problem formulation because the approximation of$x(t)$has to be divided into the part represented by$x^{\prime}(t)$and the part represented by$f(y(t))$, and this division is not unique. The approach I chose is to start with a parametrization of$f(y(t))$, and approximate the given$x(t)$as well ... 3 What you want is $$x(t) = (x(t)\otimes h(t))\otimes h'(t)$$ where$\otimes$denotes convolution. Taking$Z$transform, $$X(z) = X(z) \times H(z) \times H'(z)$$ or $$H'(z) = \frac{1}{H(z)} \tag{1}$$ So you can deconvolve a convolution sum if you you have inverse transfer function as expressed in (1). For causal and stable system, the ROC of$H'(z)$must ... 3 If we can assume no noise (Or the SNR is very high) you can get the response by applying the inverse filter in frequency domain. Lets say$ y [n] $are the signal samples. Given$ x [n] $the samples of the ideal signal you can apply on both of them the DFT to get$ Y [k] $and$ X [k] $. The response is given by the Inverse DFT of the division$ \frac{Y[k]...

3

The idea is to represent all operation sing Matrices. Once it is done, it is easy to solve the problems as a Least Squares problems. The way to represent Convolution Operation using a Matrix is by Toeplitz Matrix. For 1D it is pretty straight forward to do (Just pay attention to boundary). So let's take the simple model in the comment:  g = f \circ h + ...

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