Quantum signal processing