Некоторое время назад я пробовал разные способы рисования цифровых сигналов , и одна из вещей, которые я пробовал, вместо стандартного силуэта огибающей амплитуды отображать его больше как осциллограф. Вот так выглядит синусоидальная волна в области видимости:
Наивный способ сделать это:
- Разделите аудиофайл на один фрагмент на горизонтальный пиксель в выходном изображении
- Рассчитайте гистограмму амплитуд выборки для каждого куска
- Постройте гистограмму по яркости в виде столбца пикселей
Это производит что-то вроде этого:
Это прекрасно работает, если на блоке много выборок, а частота сигнала не связана с частотой дискретизации, но не иначе. Например, если частота сигнала является точной кратной частоте дискретизации, выборки всегда будут происходить с одинаковыми амплитудами в каждом цикле, а гистограмма будет состоять только из нескольких точек, даже если между этими точками существует реальный восстановленный сигнал. Этот синусоидальный импульс должен быть таким же плавным, как левый выше, но это не так, потому что он ровно 1 кГц, и отсчеты всегда происходят вокруг одних и тех же точек:
Я попытался увеличить частоту дискретизации, чтобы увеличить количество точек, но это не решает проблему, а только помогает сгладить ситуацию в некоторых случаях.
Так что мне бы очень хотелось, чтобы был способ рассчитать истинный PDF (вероятность и амплитуда) непрерывного восстановленного сигнала из его цифровых выборок (амплитуда в зависимости от времени). Я не знаю, какой алгоритм использовать для этого. В общем случае PDF функции является производной ее обратной функции .
PDF греха (х):
Но я не знаю, как рассчитать это для волн, где обратная функция является многозначной , или как сделать это быстро. Разбейте его на ветви и вычислите обратное для каждого, возьмите производные и сложите их все вместе? Но это довольно сложно, и, вероятно, есть более простой способ.
Этот «PDF интерполированных данных» также применим к попытке, которую я сделал для оценки плотности ядра трека GPS. Он должен был иметь форму кольца, но поскольку он смотрел только на образцы и не учитывал интерполированные точки между образцами, KDE больше походил на горб, чем на кольцо. Если образцы все, что мы знаем, то это лучшее, что мы можем сделать. Но образцы не все, что мы знаем. Мы также знаем, что между образцами есть путь. Для GPS не существует идеальной реконструкции Найквиста, как для аудио с ограниченной полосой пропускания, но основная идея все еще применима, с некоторыми догадками в функции интерполяции.