Корректное понимание апсемплинга. И корректное "вычитание" одинаковых звуков в разных семплрейтах.

Смарт Элло

Well-Known Member
25 Авг 2012
3.007
1.164
113
Природа
Имеем две дорожки. 16-44 и 24-192 (апсемплнутая)

По идее при вычитании должен быть ноль. Но ага! А как вы сделаете корректное вычитание, господа? Если сессия всегда в 1 семпл рейте, и исходные звуки подгоняются под семплрейт сессии (хоть оффлайн, как в кубе и пт, хоть онлайн, как в рипере).

В итоге мы имеем разный результат сравнения двух файлов, в зависимости от семплрейта сессии.

Но апсемплнутая волна выглядщит шикарно и заставляет мозг думать ,что звучит апсемпл лучше...
Но видимо это обман. Ибо 16-44 на выходе в аналог так же превращаются в такую гладкую волну.
mx3F4B3.png



Самое интересное, вычитание какое.

Сессия в 192, то есть имеем апсемплнутый 44 в 192 (в rx), и 44 апсемплится онлайн в самом лучшем алгоритме:
mx31B03.png


=============
Сессия в 88200

Ресемплятся оба файла в 88200.
mx3DDC2.png


===============
И сессия в 44100.

Апсемплнутый файл даунсемплится назад в 44.
mx3DF72.png



Это еще на тихом месте я сравнение заскринил, можно в 10 раз увеличивать образно.

Поэтому черт его знает, звучит ли апсемпл так же или не так же. Можно только фантазировать.
 
разные алгоритмы ресемлинга=разные фильтры=разные фазовые задержки=разный результат вычитания.
о, да тут еще и разрядность разная...
 
Частота дискретизации не кратная - отсюда и лишние "квадратики". А битность ни при делах, мне кажется.
 
Но апсемплнутая волна выглядщит шикарно и заставляет мозг думать ,что звучит апсемпл лучше...
Но видимо это обман
Ну не может же звучать лучше - может либо так же(идеальный апсемплинг), либо хуже(то есть, какая-то информация утрачивается)
 
Имеем две дорожки. 16-44 и 24-192 (апсемплнутая)
По идее при вычитании должен быть ноль. Но ага! А как вы сделаете корректное вычитание, господа?

Можно 192 перевести обратно в 44 и получить (почти) ноль при вычитании, если только нет сдвига по времени или фазе. Но лучше сделать такой тест: взять сигнал изначально записанный в 192, перевести в 44, а затем обратно в 192. При вычитании будет почти ноль. Точнее, останутся частоты выше 22 кГц, а ниже будет ноль. Это докажет, что сигнал ниже 20 кГц от ресамплинга туда-сюда не страдает.

Если нет сигнала в 192, можно взять 44, перевести в более низкую (скажем, 16 кГц), а затем обратно в 44. Эффект будет тот же.


Это еще на тихом месте я сравнение заскринил, можно в 10 раз увеличивать образно.

Не совсем ясно, каков масштаб по амплитуде, т.к. не видно шкалы амплитуд. Если делать апсэмплинг и даунсэмплинг в RX 5, то исходник и результат идеально совместятся по времени для удобного вычитания. А если одну из операций делать в другой программе, то возможен фазовый или временной сдвиг, и вычитания не произойдет, хотя качество вполне может быть хорошим.
[DOUBLEPOST=1461422841][/DOUBLEPOST]
Но апсемплнутая волна выглядщит шикарно и заставляет мозг думать ,что звучит апсемпл лучше...
Но видимо это обман. Ибо 16-44 на выходе в аналог так же превращаются в такую гладкую волну.
Совершенно верно. Ведь ЦАП делает цифровой апсэмплинг как минимум в несколько раз. Качество этого апсэмплинга может быть как хуже, так и лучше программного. Хуже оно может быть из-за экономии мощности SRC-фильтра. А лучше оно в том случае, когда в ЦАП есть headroom (запас по уровню выше 0 дБ) для предотвращения клиппирования, которое с большой вероятностью возникнет при программном апсэмплинге.
 
Последнее редактирование:
разные алгоритмы ресемлинга=разные фильтры=разные фазовые задержки=разный результат вычитания.
о, да тут еще и разрядность разная...

На одном алгоритме - то же самое, проверил так же.

А суть темы и есть в разной разрядности, вообще-то. О "сравнении" вычитания разных разрядностей тема.
 
У вас в первом посте сравниваются и разрядности, и частоты дискретизации. При вычитании файлов с разной разрядностью должен получаться шум и не должно оставаться намеков на исходный сигнал (это, разумеется, в случае использования дитеринга или нойз-шейпинга).
 
При вычитании файлов с разной разрядностью должен получаться шум и не должно оставаться намеков на исходный сигнал (это, разумеется, в случае использования дитеринга или нойз-шейпинга).
В данном конкретном случае не имеет значения, потому что исходный файл в 16 и все сравнения в любом случае в хосте 64 bit float. Только менялась частота. (не суть важно, если исходник в 16, а мы делаем его "битностью" выше).
 
Если разрядность только повышается, то разница вообще будет нулевой (файлы полностью вычтутся). Имеющуюся у вас разницу я отношу на счет SRC.
 

Сейчас просматривают