0
$\begingroup$

I will try to explain the issue I am having as clearly as possible without going into my coding or maths. I have my own and a MATLAB Central implementation pf standard LMS in MATLAB. Fixed step size. No normalization or other stuff.

I am trying to use it in a system identification setup. I generate a vector of gaussian numbers using "randn" and give the same vector as input and desired response to the LMS filter. Now the estimated weight vector at the end should be a "delta" channel and this is what I get. Then i tried upsampling and interpolating the input vector by an integer number and repeating the same thing. This time around the estimated channel is of the shape of an "Sinc". I gave the interpolated signal as the input and the desired response as before. No changes.

Then i also tried low pass filtering the input vector and repeating the same thing. Again a "Sinc". Has anyone observed this before or know something about this? Please point out my mistake. Any suggestions or a discussion is also welcome.

$\endgroup$
  • $\begingroup$ Also i tried all of this with both my own implementation and with another code i got from MATLAB central. It's from a book. So the code should be fine $\endgroup$ – khurram usman Jan 20 '17 at 1:27
  • $\begingroup$ Anyone? Any idea or comment? $\endgroup$ – khurram usman Jan 20 '17 at 7:49
1
$\begingroup$

Prior to upsampling, you have a white signal meaning every single frequency in the Nyquist bandwidth from $-\pi$ to $\pi$ is represented. This is a requirement to obtain an impulse (because the Fourier transform of an impulse is a white spectrum). The reason that white signals are often used as inputs for purposes of system identification is that they excite all frequencies of the system. This is important when trying to determine the system's response.

After upsampling and interpolating by $N$, you obtain a sequence with a spectrum that is more or less white in the bandwidth from $-\frac{\pi}{2N}$ to $\frac{\pi}{2N}$. The rest of the band (if your interpolation filter is working correctly) will be nearly zero or null. That means that these frequencies are no longer contributing to your coefficient calculation. In turn, this means that you cannot obtain a delta function since it requires every frequency present to be represented properly. The closest approximation to a delta function that you can obtain is a sinc pulse. This is why you are observing this result.

Summary: You cannot estimate the response at frequencies that are not contained in your input signal. Your input signal and desired signal are no longer white (because they are bandlimited by the interpolation filter). Therefore, the adaptive filter does not estimate those frequencies. This leads to the sinc response you are observing which is the closest band-limited response to the true system response (a delta function).

$\endgroup$
0
$\begingroup$

If you are upsampling a delta impulse, what you get is basically the impulse response of your filter (used for upsamling). This filter should look like a sinc as it is most often is a low-pass filter.

$\endgroup$
  • $\begingroup$ I don't think I am trying to upsample the delta impulse. I am just trying how the input and desired response are related through the adaptive filter. In the first case I get a delta which is correct because they both are the same thing. But in the second i get a sinc. $\endgroup$ – khurram usman Jan 21 '17 at 21:53

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.