There are 2 propositions one can consider:
a) You CAN hear way above 20kHz
b) The speaker is NOT vibrating at 32kHz
To test proposition a
your equipment is totally inadequate. Why do auditory labs have the equipment and facilities they have? So lets rule that out for the moment.
seems most likely. The audio amplifier may supply a 32kHz voltage but even in the world of esoteric hifi a tweeter capable of vibrating at 32kHz is very rare. The speaker is vibrating at some other frequency in response to the input and my guess would be it's resonant frequency - probably a few kHz.
This test is illuminating:
for (int freq = 100; freq < 32767; freq += 300)
The perceived increase in frequency stops long before the upper limit. This is where the audio system stops being capable of following the input.
If we consider this example:
protected enum Octave
same = 1,
one = 2,
two = 4,
three = 8,
four = 16,
five = 32,
six = 64,
protected static void Play(Note tune, Octave octave = Octave.same)
foreach (Note n in tune)
if (n.NoteTone == Tone.REST)
Console.Beep((int)n.NoteTone * (int)octave, (int)n.NoteDuration);
then we can do:
By octave 5 the notes are starting to sound the same which means we are reaching the limit of the system to faithfully reproduce the input.