One of the main objectives of face recognition is to determine whether an acquired face belongs to a reference database and to subsequently identify the corresponding individual. Face recognition has application in, for instance, forensic science and security. A face recognition algorithm, to be useful in real applications, must discriminate in between individuals, process data in realtime and be robust against occlusion, facial expression and noise. A new method for robust recognition of three-dimensional faces is presented. The method is based on harmonic coding, Hilbert transform and spectral analysis of 3-D depth distributions. Experimental results with three-dimensional faces, which were scanned with a laser scanner, are presented. The proposed method recognises a face with various facial expressions in the presence of occlusion, has a good discrimination, is able to compare a face against a large database of faces in real-time and is robust against shot noise and additive noise.