Is it safe to assume that if the index of discrete signal is not an integer, then the value of it is 0? For example is the following true:

If we have $x[n] = 1 + (−1)^n$ does $x[3/4]=0$?

The TA in my Digital Signals class is saying that this notion is correct, however the general consensus from what I've seen from Google is that $x[3/4]$ should be undefined, not zero.

  • 1
    $\begingroup$ Some situations might confuse you. For instance, when upsampling $x[n]$, you need to add zeros between consecutive samples before applying the interpolation filter. This is an artificial signal for an intermediate stage, and we are not assuming that the information between $x[n]$ and $x[n+1]$ is actually $0$. $\endgroup$
    – vaz
    Dec 3 '15 at 9:42
  • $\begingroup$ @vaz : No problem, moved it to being a comment. Please feel free to add some answers here so you get the rep to comment! :-) $\endgroup$
    – Peter K.
    Dec 3 '15 at 13:39

While I agree with Matt L.'s answer, there is a case that needs to be thought of: upsampling with no interpolation step.

Consider a signal, $x[n]$ that we want to resample at three times the sampling rate. The new signal, $x_{\times 3}[m]$ will be: $$ x_{\times 3}[m] = \left\{ \begin{array}{l,l} x[m/3], & \mbox{ if $m \mod 3 = 0$ }\\ ?? & \mbox{otherwise} \end{array} \right . $$ In this case, we need to set $??$ to be 0 in order to fully define the upsampled signal, $x_{\times 3}[m]$.

  • 3
    $\begingroup$ That's of course perfectly correct, but note that also here you obviously only consider integer arguments for both sequences. The sequence before upsampling doesn't have the "in-between" values, and the new sequence has 3 times more samples than the old one (per time unit), and the new values need to be defined in some way, but these values of course only occur at integer values of $m$. Anyway, good point in case this was the cause of confusion. $\endgroup$
    – Matt L.
    Dec 3 '15 at 17:41
  • 2
    $\begingroup$ and you need not set it to zero to define the upsampled signal. you could $$ x_{\times 3}[m] = \left\{ \begin{array}{l,l} x[m/3], & \mbox{ if $m \mod 3 = 0$ }\\ x[\operatorname{floor}(m/3)] & \mbox{otherwise} \end{array} \right . $$ we might call that the sample-and-hold or "drop-sample" version of upsampling. $\endgroup$ Dec 3 '15 at 20:06
  • $\begingroup$ @robertbristow-johnson Yup! That's another approach. You could also do a linear interpolation between subsequent samples, etc. I just went with the simplest example. $\endgroup$
    – Peter K.
    Dec 3 '15 at 20:25

Discrete-time signals are, unsurprisingly, only defined for discrete times, i.e. for integer values of their argument. The value of $x[n]$ for $n$ not an integer is undefined, and $x[3/4]$ or $x[\pi]$ is meaningless.


your TA is, strictly speaking, incorrect and Matt is, strictly speaking, correct.


you can take any discrete-time signal and associate that with a uniformly-sampled continuous-time signal:

$$ x_\text{s}(t) \triangleq \sum\limits_{n=-\infty}^{+\infty} x[n] \delta(t - n) $$

and, in that case, the value of $x_\text{s}(t)$ is defined in between samples, when $t$ is not an integer, and that value is zero.

BTW, hardcore strict mathematicians would be unhappy seeing naked dirac impulses $\delta(t - n)$ without being surrounded by an integral. just FYI. (but being an EE, i don't have a problem with it.)


It is not safe, unless you make conventions or assumptions. The wikipedia entry for Discrete-time signal says:

A discrete signal or discrete-time signal is a time series consisting of a sequence of quantities. In other words, it is a time series that is a function over a domain of integers[...] the sampling rate is not apparent in the data sequence

So first, integer indices do not imply your signal is regularly sampled. Indeed, one can distinguish two main origins:

  1. the sampling (possibly irregular, lacunary) of a continuous time signal
  2. the capture of a discrete-time process.

In the first case, without a signal model, or a sampling pattern, there a possibly infinitely many continuous signals passing through your discrete points. More precisely, you can get $s(t) = \sum_n s[n]\psi(t-t_n)$ with specific assumptions, where $t_n$ is the sampling time, and $\psi$ a specific kernel (for instance, a cardinal sine). In the second case, there are zero solutions, as nothing makes sense in the interval.

So when the set of options is either infinite or void, one can define a convention, as long as it is useful and is not contradictory with your system.

In addition to other answers, let me mention a practical cases where fractional indices are indeed useful, at the border of the two above origins.

Construct the downsampled signal $x[n]$ (by a factor of 4 here) of a regularly sampled signal $y[n]$. For instance, one writes $x[n] = y[4n]$, somehow reindexing $x$. I would not be offended to see $x[3/4] = y[3]$ as a shorthand with obvious meaning (such improper notations sometimes appear in the filter bank literature). This is a case of two sampling systems, one being the "multiple" of the other.

I have encountered a similar situation in real-time system modeling. Some models communicate at a base rate $r$, while submodels update at a faster rate, e.g. $4r$. Here, some people index data at the communication rate $x[n]$, because it is the most natural, and index the submodel signal at rationals $y[n/4]$ without ambiguity.

The last question is: why do you want or need to define your $x[3/4]$ sample?


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.