Canonical decomposition of discrete-time linear systems