Difference Equations, why M<=N for causality?

in my notes for DSP they have the difference equation general form as:

y(k) + a1*y(k-1) + a2*y(k-2) + ... + an*y(k-N) = b0*x(k) + b1*x(k-1) + ... + bm*x(k-M)

with the claim that for the output to not depend on future values of the input then M<=N.

Why is this the case?

In fact, if I'm not missing something here I think I can provide a counterexample:

y(k) = x(k-1)

which has N = 0 and M = 1. But this is just a unit delay, the output is just the previous value of the input.

What's going on here?

You're right, it's simply not true that $M\le N$ is necessary for causality. The difference equation in your question can always be implemented by a causal system.

However, note that the difference equation is not uniquely related to a causal system. A simple example is

$$y[n]=ay[n-1]+bx[n]\tag{1}$$

This can obviously be implemented by a causal system. But for $a\neq 0$ you can also rewrite (1) as

$$y[n-1]=\frac{1}{a}(y[n]-bx[n])\tag{2}$$

which suggests an anti-causal system, even though (1) and (2) are completely equivalent. This difference is reflected by the transfer functions ($\mathcal{Z}$-transforms) of the corresponding systems. For a causal system the region of convergence (ROC) is outside a circle enclosing all poles, whereas for an anti-causal system the ROC is inside a circle outside of which all poles are located.

• So is the condition M<=N useful for anything at all? – user16250 Jun 15 '15 at 9:36
• @user16250: Can't think of anything. – Matt L. Jun 15 '15 at 10:15