I generate a 19kHz audio signal with sampling frequency of 44100 using Matlab. Due to the sampling, some other frequencies are generated in addition to the 19 kHz signal. When I play this audio, I hear additional voices. How I can remove these additional sides? I think it needs aliasing filtering, but I cannot filter signal after DAC, because I generate the audio signal and play it with phone or computer, I cannot put any filter after A/D.

  • $\begingroup$ If you hear any additional voices, it's not due to sampling at 44100 Hz alone; the images (on D/A side, it's "images", not "aliases") introduced by that are impossible to hear for a human. Your 19 kHz tone, by the way, is also impossible to hear for humans unless they are young-ish. $\endgroup$ – Marcus Müller Jun 28 '19 at 6:53
  • $\begingroup$ Anyway, a reconstruction filter (the filter you need to put after a D/A converter to avoid spectral images) has to be analog. $\endgroup$ – Marcus Müller Jun 28 '19 at 6:54
  • $\begingroup$ (I hope I'm interpreting "I generate a 19 kHz signal at a sampling rate of 44100 Hz and play it" correctly, as in you're digitally generate that signal and play it through a D/A converter (playback side of a soundcard)) $\endgroup$ – Marcus Müller Jun 28 '19 at 7:00

If your code is working correctly, than there should be no aliasing.

Most likely this is a problem with your playback system. Most sound cards in computers are terrible and will create a lot of noise and other artifacts. Since the 19 kHz tone is inaudible for most people, you just hear the artifacts.

It's also possible that you turn up the volume too high. The 19 kHz may easily clip your playback hardware. You can't tell if it's "too loud" since your auditory sensitivity at 19 kHz is basically zero. You may have also clipped the sine wave when sending it to the sound card.

There is also the software stack: On Windows, most sound will go through the kernel mixer, which often applies sample rate conversion and other processing. It's default behavior is quite bad, so this is also likely to create a lot of artifacts and noise.

Playing sine waves cleanly requires decent equipment. Typically a good external sound card and a dedicated SW driver that bypasses the operating system. You can try saving it as a wave file and play it over some "known good" hardware.


Not the answer you're looking for? Browse other questions tagged or ask your own question.