С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Нет, окно Кайзера как раз всегда сходится. Во всяком случае, с его помощью гораздо легче создать фильтр высокого порядка (~10000) по сравнению с методом Ремеза.
Но повторяю: фильтр, сгенерированный методом окна Кайзера будет на 20-30% длиннее, чем фильтр с такими же характеристиками, сгенерированный методом Ремеза. А это - лишняя нагрузка на проц при обработке сигнала таким фильтром.
Ситуации бывают разные, но легко представить такую, когда 20% разница в скорости является более важной, чем возможность генерировать фильтр "на лету".
Гы-гы, это смотря для каких целей "без окна" - это значит "с прямоугольным окном" - такой фильтр будет иметь в полосе подавления лепестки с амплитудой до -22дБ, да и на границе полосы пропускания тоже будут большие выбросы. "Явление Гиббса" называется. Именно для контроля этих эффектов используются окна.
Во-первых, объясни, зачем это нужно? Зачем кому-то может понадобиться генерировать звук на частотах дискретизации, отличных от 44100 или 48000?
Во-вторых, многие звуковые карты поддерживают только одну из вышеназванных частот. Например, Creative SB128 поддерживает только 44100. Можно из винды запустить какой-нибудь сигнал и на частоте 48000, но при этом он будет звучать в сильно искаженном виде. Можешь проверить свою звуковую карточку, сгенерив в звуковом редакторе и послушав частоты в районе 8-15кГц.
С другой стороны, у меня на материнке ASUS P4B533 была встроенная звуковуха, которая наоборот, давала чистый звук на частоте 48000Гц, а на 44100Гц наоборот, искаженный.
Также высокий уровень искажений наблюдается на всех звуковых картах потребительского уровня при воспроизведении звука на частотах дискретизации 22050, 11025, 8000Гц. Плохо подавляются зеркальные компоненты.
Это иллюзия, что оборудование поддерживает такой широкий спектр частот дискретизации. На самом деле, когда программа воспроизводит звук на нестандартной частоте, то используется аппаратный или программный ресэмплинг. Качество этого ресэмплинга нигде не нормировано, и вообще лишних обработок сигнала следует по возможности избегать, потому что каждая такая обработка портит качество.
Что ты конкретно имеешь в виду? Что ненужное нужно резать, почему только на крутых наушниках, и зачем для этого фильтры высокого порядка?
Кое-что там регулируется, но какой в этом смысл? Часто ли ты регулируешь эти настройки? И главное - чего ты пытаешься добиться, изменяя их? Качество улучшить?
Последний раз редактировалось Barmaley_m; 19.08.2009 в 18:10. Причина: исправил опечатку
проблема в том, что так и так придется резать, если делать все правильно. а у поголовного большинства как раз 44100. реже - 48000. больше - еще реже. так что порезав для 44100 не сильно потеряешь.
ну и так или иначе, но частоты дискретизации-таки фиксированные. ничто не мешает сделать пусть и 10 наборов коэффициентов.
Да, дороговато, но она того стоит, поверь. Я сначала ее в библиотеке читал, несколько месяцев, а потом понял, что надо ее купить. Где-то года полтора читал, пока въехал.
Кроме того, в Google Books ее можно онлайн почитать (правда, не полностью).
Зарубежная научная литература вообще дорого стоит, $70 - это еще очень божеская цена. Я все зарился на еще одну интересную книжку N.J. Fliege - "Multirate digital signal processing" (тоже в библиотеке ее читал), но она вообще стоит под $200, так что пока не решусь никак
Ну мне такие порядки не нужны. Максимум- 100
А тип фильтра (КИХ/БИХ) влияет на набор применяемых методов и трудоемкость расчета/выполнения?
Слышал сию фамилию при описании алгоритма JPEG
Предусмотреть весь спектр оборудования у конечного пользователя (а также его предпочтения и проч) невозможно.
Например, при воспроизведении звука через встроенные в ноут хреноватые колонки достаточно 22кГц, тогда как для нормальных наушников 48 нормально.
А это разве не зависит от того, что частота 44100 вообще не кратна степеням двойки ни разу? Плюс еще зависит от внутренней частоты звуковухи...
Сравнительно высокого. В моем случае КИХ с порядком <10 практически не оказывает влияния на звук, тогда как >30 уже ощутимо меняет.
Ну, с такими порядками фактор сходимости и ресурсоемкости при расчете фильтра перестает играть существенную роль, хотя остаются факторы баланса параметров и компромиссов при постановке задачи расчета фильтра. В простых случаях эти параметры можно рассчитывать исходя из каких-то критериев, но в сложных случаях (а также с целью избежать программирования еще и этих критериев) заранее рассчитанный фильтр остается предпочтительным вариантом.
Все зависит от конкретной задачи. Я в принципе не отрицал преимущества расчета фильтров "на лету", просто хотел показать, что это не всегда предпочтительный вариант.
Определяющим образом!
У КИХ (FIR) и БИХ (IIR) фильтров разные области применения. Например, если подавлять с помощью КИХ-фильтра постоянную составляющую, то для этого потребуется фильтр высокого порядка - сотен этак пять, а может и еще больше. В то время как с этим справляется рассмотренный нами БИХ-фильтр 1го порядка.
С другой стороны, ресэмплинг - это область применения практически исключительно КИХ-фильтров.
Все эти вещи в наши дни легко ищутся и находятся в Википедии.
Для этого существуют драйвера и операционная система.
Известно, что на частоте дискретизации 44100 или 48000Гц можно синтезировать звук с ЦД-качеством. Следовательно, более высокие частоты дискретизации использовать нет смысла. Более низкие частоты имело бы смысл использовать, если бы комп был очень медленным - но сегодняшние компы с обработкой звука справляются обычно без особых затруднений на лету. Поэтому понижать fs тоже нет смысла. С целью поддержки воспроизведения CD (44100) и DVD (48000) все современные звуковые карты поддерживают хотя бы одну из указанных выше частот без существенных искажений.
Любое отклонение от указанных двух частот чревато существенным ухудшением качества звука, а пользы не может дать практически никакой.
44.1 или 48 - это вопрос аппаратной поддержки (определяется экспериментально). Разности в качестве звука между ними нет никакой. Использовать 22.5кГц имело бы смысл только в случае тормознутого компа, а так ничто не мешает играть и на ноуте звук на 44.1.
Эта частота является стандартом для системы Compact Disc. Ее выбор был обусловлен рядом факторов (читать в Википедии), но для нас это не имеет большого значения. Есть стандартная частота, и если нет серьезных причин отклоняться от нее, то ее надо использовать.
48кГц - это тоже произвольно выбранная стандартная частота, сначала применявшаяся на цифровых магнитных лентах (DAT), а потом и на DVD. Критерии ее выбора тоже для нас не важны, а важно лишь то, что она является стандартом.
Да, тут ты прав. Звуковухи не всегда точно реализуют эту частоту. Например, Creative SB16 / AWE32 / AWE64 - одни из первых звуковух, на которых на PC впервые появилось CD-качество звука - реализовывали частоту 44100 с существенным отклонением. Но это никому обычно не мешает. Программа просит 44100 - звуковуха дает какую-то другую неизвестную частоту, близкую к заданной. Программа всегда должна быть к этому готова.
Ты так и не ответил, с какой целью и что режется у тебя в звуке.
Ну в моем случае было несколько факторов:
1) полная независимость от аппаратуры и поддерживаемых ею режимов
2) банальное отсутствие матлаба (а также знаний его использования), но наличие примера расчета в коде)
С другой стороны, если известно, что с частотой 48кГц звуковуха справляется наилучшим образом, стоит сразу гнать на нее сигнал в такой частоте, а не полагаться на способности драйверов (или самой звуковухи) по ресамплингу.
Полосовой фильтр с регулируемыми границами отсечения. Отсечением постоянки пока не занимался, хотя может быть и понадобится - потому и расспрашиваю)
Каюсь... 260кгц :-[
Сейчас выбор этой частоты сильно критикуют, и в общем не факт что у end-user железка которая на эти (44100 и 48000) частоты зациклена. У каждого ЦАПа вообще своя выходная характеристика, и бывает что частота 96кгц более оптимальна, а кроме того есть ещё драйвера (кривость которых тоже обсуждаема), которые умудряются передискретизировать сигнал, даваемый на "родной" частоте.
Маленько оффтопа: теорема Котельникова работает для дискретных по времени и аналоговых по амлитуде сигналов (типа магнитной ленты аналоговых аудио- и видеокассет), матаппарата для рассчёта перехода от аналогового к полностью цифровому сигналу и рассчёта степени искажений конечного цифрового сигнала вроде как и нет (или я не знаю). Банальный перенос по Т. Котельникова "ухо слышит на 22кгц - надо записывать аудио-ЦД на 44кгц и нет потерь" тут не работает, фаны аудио до сих пор слушают винилы, покупают DVD-Audio и SACD.
О критике я тоже слышал, только забыл, что именно не нравится в этом выборе критикующим. Может быть ты знаешь и мог бы напомнить?
И все же эта частота являются стандартом, и разрабочик любой звуковой железки с высокой вероятностью предусмотрит реализацию именно ее.
Вот поставив себя на место разработчика, я бы рассуждал следующим образом. Поддерживать много разных частот дискретизации - накладно, требует удорожания аппаратуры. Поэтому нужно поддержать только одну-две стандартные частоты, а в случае использования программой других частот - передискретизировать ценой некоторого ухудшения качества звука.
Вот такие вот рассуждения.
А на что же она тогда должна быть "зациклена", учитывая, что вся практически музыка, будь то мп3 или флак/апе, идет на 44100, а все практически фильмы идут на 48000?
Гарантий, конечно, никаких нет, но см. выше про аргументацию разработчика.
Все эти факторы будут ухудшать качество воспроизведения музыки в стандартных форматах на такой аппаратуре... Так что, если разработчик некой программы будет синтезировать звук только на одной или обеих стандартных частотах, то тем самым он гарантированно получит результат не хуже, чем обычные звуковые/видеоплееры.
Ты имеешь в виду то, что теорема Котельникова не учитывает квантование сигнала по амплитуде?
В этом нет никаких проблем. Искажения, вызванные квантованием, обычно рассматриваются как "шум квантования". И спектром этого шума можно управлять - называется это Noise Shaping. Ценой увеличения общей энергии шума можно сконцентрировать этот шум в области высоких частот, там, где ухо его слышит хуже. Тем самым достигается увеличение динамического диапазона в области средних частот. Современные записи на компакт-дисках, как правило, так и подготавливаются. Технологии вроде Super Bit Mapping - это все из той области.
Так что мат. аппарат вроде бы все предусматривает, насколько мне известно. Есть даже теоремы о дискретизации, аналогичные теореме Котельникова, для случаев дискретизации с нерегулярными интервалами между отсчетами. Все-таки столько лет прошло со времен открытия этой теоремы - а наука не стоит на месте.
Частотные границы чувствительности человеческого уха - это не т. Котельникова, а скорее физиология слуха, но не в этом суть. Про фанов и их повадки я слышал, только вот аргументации убедительной от них не поступало. Если ухо не слышит выше 20кГц - то 44кГц для оцифровки должно быть достаточно, и теория это гарантирует (при условии грамотной технической реализации). Если для оцифровки 44кГц объективно недостаточно - то значит ухо слышит выше 20кГЦ, но это противоречит данным из биологии.
И вообще даже 20кГц слышат далеко не все. Я вот в юности слышал 20кГц, а сейчас едва-едва 18200 одним ухом, а вторым - и того меньше. И среди людей, которые участвовали в моих экспериментах, это один из лучших результатов. Остальные, кого измерял, и того не слышали (всего было около 8-10 человек). Обычно на 15-17кГц оканчивалась их способность слышать хоть какой-то звук, излучаемый динамиком.
В этом присутствует глобальная несправедливость. В молодости, когда слышишь хорошо - нет денег на хорошую аудиосистему, а позже, когда деньги можно найти - она уже не нужна.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)