Mirror Frequencies on FFT Spectrum

I use my PC to play a 17kHz audio wav file and record it through my STM32 EVK + ultrasound-mic to another wav file. I put it in Audacity and plot spectrum. But always see duplicate frequencies, one is on ~17kHz, the other is ~78kHz. Is it normal on FFT? could anyone tell me the possible cause? Thanks in advance.

the link of file: Dropbox - 20240401_124800.wav - Simplify your life

the link of spectrum: Dropbox - 17kHz Spectrum.png - Simplify your life



It looks like your 17kHz waveform has been resampled from 96kHz to 192kHz without anti-alias filtering. (See also Trebor’s link)

Thanks for the information, Trebor. That’s really helpful.

Also, thanks, Steve. @steve do you have any idea how to implement “anti-alias filtering”?

Yes, but it’s very complicated and you don’t need to.

Resampling from 96kHz to 192kHz will not improve anything. It just makes the file bigger, and if not done with high quality anti-aliasing it can “damage” the audio as you have observed.

The easiest solution would be to keep the audio data as 96kHz, but if there is a reason why you really need it to be 192 kHz, then convert it in Audacity. Audacity’s resampling is extremely good (it uses the excellent “soxr” resampling library).

To convert from 96kHz sampling rate to 192kHz in Audacity:

  1. Import the file
  2. Change the “Project Sample Rate” to 192kHz (see: Audio Setup Toolbar - Audacity Manual)
  3. Export in a lossless format such as WAV.


In very recent versions of Audacity you can set the sample rate in the Export dialog. (See: Export Audio - Audacity Manual)