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.
Proposition
b 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)
{
Console.WriteLine(freq);
Console.Beep(freq, 200);
}
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:
https://msdn.microsoft.com/en-us/library/4fe3hdb1(v=vs.110).aspx[
^]
and add:
protected enum Octave
{
same = 1,
one = 2,
two = 4,
three = 8,
four = 16,
five = 32,
six = 64,
}
and:
protected static void Play(Note[] tune, Octave octave = Octave.same)
{
foreach (Note n in tune)
{
if (n.NoteTone == Tone.REST)
Thread.Sleep((int)n.NoteDuration);
else
Console.Beep((int)n.NoteTone * (int)octave, (int)n.NoteDuration);
}
}
then we can do:
Play(Mary, Octave.two);
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.