1
$\begingroup$

I have a discrete $2N$length signal $y[n]$ which I want to downsample by a factor of $F=2$. In order to avoid aliasing (since I assume that my original sampling rate is exactly equal to $2f_{max}$,i.e., there is no oversampling) I use anti-aliasing filter before downsampling. Filtering corresponds to convolution in time domain,i.e., $\bar{y}[n]=y[n]\star g[n]$. Since convolution changes the size of input signal what should be the size of my filter $g[n]$ in order to get in the end downsampled signal whose length is a twice the length of $y[n]$, i.e., $\frac{2N}{2}=N$. In other words it is possible that signal length stays the same after filtering?

$\endgroup$

1 Answer 1

2
$\begingroup$

I think you want to take the "central" part of the convolution. Convolution will give a signal that has length(c) = length(a) + length(b) - 1. If you have Matlab or Octave, there is an option when using the convolution function to just take the central part.

$\endgroup$
8
  • $\begingroup$ Yes, I do need a central part and in Matlab I can get it using "filter" function but I need mathematical explanation for that, i.e., why am I allowed only to take a central part if convolution actually gives longer sequence. $\endgroup$
    – Cali
    Commented Aug 11, 2016 at 15:47
  • $\begingroup$ From my understanding of convolution, it works like this; imagine you have a signal that you can measure, and the signal goes through a linear system. The signal that goes through the linear system is not actually going to be longer than the original signal, assuming you start and stop measuring both signals at the same time. The central part of the convolution represents what we would actually measure if the signal were to pass through a physical system. $\endgroup$
    – soultrane
    Commented Aug 11, 2016 at 15:51
  • $\begingroup$ but why does then convolution gives longer sequence if in real time implementation we will get the same length as in beginning? I am doing some mathematical equations and I do not know how can I explain taking only central part of convolution in math way. $\endgroup$
    – Cali
    Commented Aug 11, 2016 at 16:19
  • $\begingroup$ You could just define your output function piece-wise, which would require 3 parts, pre-, post-, and central-convolution. The definition of convolution of two finite signals gives a longer length because of the sliding/multiplying, that's just how it is. $\endgroup$
    – soultrane
    Commented Aug 11, 2016 at 16:26
  • $\begingroup$ Ok, but if I sad that filtered signal is equal to $\bar{y_n}=y_n \star g_n$ then how this pre-, post-, and central- convolutions would look like? $\endgroup$
    – Cali
    Commented Aug 11, 2016 at 16:29

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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