Я генерировал квадратными волны сигнала и поместить его в звуковой файл, используя этот код:ореолы на звуковой сигнал показан на osciloscope
import sys, os, wave, random, struct
noise_output = wave.open('noise.wav', 'w')
noise_output.setparams((1, 2, 1000, 0, 'NONE', 'not compressed'))
SAMPLE_LEN = 1000
for i in range(0, SAMPLE_LEN):
value = random.choice([-32000, 32000])
for j in range(100):
packed_value = struct.pack('h', value)
noise_output.writeframes(packed_value)
я ожидал услышать несколько коротких трещотки, когда слушал, потому что это не означает «действительный» аудиосигнал. Вместо этого я как-то слышал некоторые погремушки, не могу описать это.
Тогда я использовал osciloscope, чтобы увидеть выходной сигнал от звуковой карты, и это выглядит следующим образом:
Выход смотрит на меня что-то вроде эффекта Гиббса. Мой вопрос: почему это выглядит так? Я был исключен, чтобы не видеть звон артефакта на osciloscope. Как работает ЦАП со звуковой карты и какие цифровые/аналоговые фильтры выдают этот сигнал?
Поздравляем - вы видите явление [Гиббса] (https://en.wikipedia.org/wiki/Gibbs_phenomenon#The_square_wave_example). Квадратная волна ограничивается диапазоном чуть ниже Nyquist с помощью фильтра восстановления звуковой карты (аналоговый фильтр нижних частот на выходе ЦАП). –