  We study the design of graph filters to implement arbitrary linear
transformations between graph signals. Graph filters can be represented by
matrix polynomials of the graph-shift operator, which captures the structure of
the graph and is assumed to be given. Thus, graph-filter design consists in
choosing the coefficients of these polynomials (known as filter coefficients)
to resemble desired linear transformations. Due to the local structure of the
graph-shift operator, graph filters can be implemented distributedly across
nodes, making them suitable for networked settings. We determine spectral
conditions under which a specific linear transformation can be implemented
perfectly using graph filters. Furthermore, for the cases where perfect
implementation is infeasible, the design of optimal approximations for
different error metrics is analyzed. We introduce the notion of a node-variant
graph filter, which allows the simultaneous implementation of multiple
(regular) graph filters in different nodes of the graph. This additional
flexibility enables the design of more general operators without undermining
the locality in implementation. Perfect and approximate implementation of
network operators is also studied for node-variant graph filters. We
demonstrate the practical relevance of the developed framework by studying in
detail the application of graph filters to the problems of finite-time
consensus and analog network coding. Finally, we present additional numerical
experiments comparing the performance of node-invariant and node-variant
filters when approximating arbitrary linear network operators.
