  Higher-order networks can sustain topological signals which are variables
associated not only to the nodes, but also to the links, to the triangles and
in general to the higher dimensional simplices of simplicial complexes. These
topological signals can describe a large variety of real systems including
currents in the ocean, synaptic currents between neurons and biological
transportation networks. In real scenarios topological signal data might be
noisy and an important task is to process these signals by improving their
signal to noise ratio. So far topological signals are typically processed
independently of each other. For instance, node signals are processed
independently of link signals, and algorithms that can enforce a consistent
processing of topological signals across different dimensions are largely
lacking. Here we propose Dirac signal processing, an adaptive, unsupervised
signal processing algorithm that learns to jointly filter topological signals
supported on nodes, links and triangles of simplicial complexes in a consistent
way. The proposed Dirac signal processing algorithm is formulated in terms of
the discrete Dirac operator which can be interpreted as "square root" of a
higher-order Hodge Laplacian. We discuss in detail the properties of the Dirac
operator including its spectrum and the chirality of its eigenvectors and we
adopt this operator to formulate Dirac signal processing that can filter noisy
signals defined on nodes, links and triangles of simplicial complexes. We test
our algorithms on noisy synthetic data and noisy data of drifters in the ocean
and find that the algorithm can learn to efficiently reconstruct the true
signals outperforming algorithms based exclusively on the Hodge Laplacian.
