I tried a quick project on using PCA to an HRTF database for an open-ended class project on data analysis. I thought it would be useful to wrap my head around some dimensionality reduction. There’s nothing novel in this paper; this can serve as an implementation of Kistler & Wightman’s JASA article .

The quick and dirty summary is that for each subject’s HRTF, the unique per-subject, per-ear mean was subtracted, and then the grand mean of resulting functions was subtracted. I then took the covariance of the final set and used its most heavily-weighted eigenvectors as bases to transform the original HRTFs. Here are some of my figures:

Figure 1: Some ITD and IID slices
Figure 2: Preprocessing done to HRTF's (colloquially Directional Transfer Functions, or DTFs)
Figure 3: Covariance and correlation matrices of the mean-subtracted HRTFs
Figure 4: The first five orthogonal bases that can be used to decompose HRTFs
Figure 5: An HRTF recostruction and reconstruction error