Introduction to Adaptive Arrays