Sampling and Recovery of Graph Signals