Practical signal processing