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.