Фильтры взвешивания аудио

В этом примере показано, как получить проекты для наиболее распространенных фильтров взвешивания - A-взвешивания, C-взвешивания, C-сообщения, ITU-T 0.41, и ITU-R 468-4 - использование weightingFilter Системный объект и аудио, взвешивающее разработчика фильтра, fdesign.audioweighting, в Audio Toolbox™.

Во многих приложениях, включающих акустические измерения, итоговый датчик является человеческим ухом. Поэтому акустические измерения обычно пытаются описать субъективное восприятие звука этим органом. Устройства инструментирования создаются, чтобы обеспечить линейный ответ, но ухо является нелинейным датчиком. Специальные фильтры, известные как взвешивающие фильтры, используются, чтобы составлять нелинейность.

A и C, взвешивающий (стандарт ANSI® S1.42)

Вы можете проект A и C взвешивающие фильтры, которые следуют за ANSI S1.42 [1] и IEC 61672-1 [2] стандарты с помощью weightingFilter Системный объект. Фильтр A-взвешивания является полосовым фильтром, спроектированным, чтобы симулировать воспринятую громкость низкоуровневых тонов. Фильтр A-взвешивания прогрессивно преуменьшает роль частот ниже 500 Гц. Фильтр C-взвешивания удаляет звуки вне диапазона звуковых частот от 20 Гц до 20 кГц и симулирует восприятие громкости высокоуровневых тонов. Следующий код проектирует БИХ-фильтр для A-взвешивания с уровнем выборки 48 кГц.

AWeighting = weightingFilter('A-weighting',48000)
AWeighting = 
  weightingFilter with properties:

        Method: 'A-weighting'
    SampleRate: 48000

A и проекты фильтра C-взвешивания основаны на прямой реализации передаточной функции фильтра на основе полюсов и нулей, заданных в стандарте ANSI S1.42.

IEC 61672-1 стандарт требует, чтобы величины фильтра находились в пределах заданной маски допуска. Стандарт задает две маски, один с более строгими значениями допуска, чем другой. Фильтр, который выполняет техническим требованиям допуска более строгой маски, упоминается как фильтр Класса 1. Фильтр, который выполняет техническим требованиям менее строгой маски, упоминается как фильтр Класса 2. Можно просмотреть ответ величины фильтра наряду с маской, соответствующей техническим требованиям Класса 1 или Класса 2 путем вызова visualize метод на объекте. Обратите внимание на то, что выбор значения Класса не будет влиять на само создание фильтра, но это будет использоваться, чтобы представить правильную маску допуска в графике визуализации.

visualize(AWeighting,'class 1')

Стандарты A-и C-взвешивания задают значения величины допуска максимум для 20 кГц. В следующем примере мы используем частоту дискретизации 28 кГц и проектируем фильтр C-взвешивания. Даже при том, что интервал Найквиста для этой частоты дискретизации ниже заданной частоты максимума на 20 кГц, проект все еще соответствует допускам Класса 2 как показано зеленой маской вокруг графика отклика величины. Проект, однако, не соответствует допускам Класса 1 из-за значения уровня небольшой выборки, и вы будете видеть, что маска вокруг графика отклика величины покраснела.

CWeighting = weightingFilter('C-weighting',28000)
CWeighting = 
  weightingFilter with properties:

        Method: 'C-weighting'
    SampleRate: 28000

visualize(CWeighting,'class 2')
visualize(CWeighting,'class 1')

ITU-R фильтр взвешивания 468-4

ITU-R рекомендация [3] 468-4 был разработан, чтобы лучше отразить субъективную громкость всех типов шума, в противоположность тонам. Взвешивание ITU-R 468-4 было спроектировано, чтобы максимизировать его ответ на типы импульсивного шума, часто связываемого в звуковые кабели, когда они проходят через средства переключения телефона. ITU-R 468-4 коррелята взвешивания хорошо с шумовым восприятием, поскольку исследования восприятия показали, что частоты между 1 кГц и 9 кГц являются более "раздражающими", чем обозначенный A-взвешиванием.

Вы проектируете фильтр взвешивания на основе ITU-R стандарт 468-4 с помощью fdesign.audioweighting объект спецификации. Можно выбрать между выборкой частоты или equiripple приближениями для КИХ-создания фильтра, или использовать наименьшее количество приближения P-нормы в БИХ-создании фильтра. Во всех случаях фильтры спроектированы с минимальным порядком, который выполняет стандартным техническим требованиям (маска) для частоты дискретизации под рукой.

ITUR4684Designer = fdesign.audioweighting('WT','ITUR4684',80e3)
ITUR4684Designer = 
  audioweighting with properties:

               Response: 'Audio Weighting'
          Specification: 'WT'
            Description: {'Weighting type'}
    NormalizedFrequency: 0
                     Fs: 80000
          WeightingType: 'ITUR4684'

ITUR4684FIR = design(ITUR4684Designer,'allfir','SystemObject',true);
visualizer = fvtool(ITUR4684FIR{1});
addfilter(visualizer,ITUR4684FIR{2});
legend(visualizer,'ITU-R 468-4 FIR equiripple approximation', ...
    'ITU-R 468-4 FIR frequency sampling approximation')

ITUR4684IIR = design(ITUR4684Designer,'iirlpnorm','SystemObject',true);
setfilter(visualizer,ITUR4684IIR);
legend(visualizer,'ITU-R 468-4 IIR least P-norm approximation')

В то время как БИХ-проекты дают к меньшим порядку фильтра, КИХ-проекты имеют преимущество линейного фазового отклика. В КИХ-проектах equiripple метод разработки будет обычно давать к более низким порядку фильтра, когда по сравнению с методом выборки частоты, но сможет иметь некоторые проблемы сходимости времени проектирования на уровне больших частот дискретизации.

ITU-T 0.41 и C-сообщение, взвешивающее фильтры

ITU-T 0.41 и C-сообщение, взвешивающее фильтры, являются полосовыми фильтрами, используемыми, чтобы измерить шум звуковой частоты на телефонных линиях. Фильтр ITU-T 0.41 используется в международных телефонных линиях. Фильтр C-сообщения обычно используется в североамериканских телефонных линиях. Частотная характеристика ITU-T 0.41 и C-сообщение, взвешивающее фильтры, заданы в стандарте ITU-T O.41 [4] и Системный Технический справочник 41009 [5] Bell, соответственно.

Вы проектируете фильтр взвешивания ITU-T 0.41 для частоты дискретизации 24 кГц с помощью следующего кода. Можно выбрать из КИХ-выборки частоты или equiripple приближений. Фильтры спроектированы с минимальным порядком, который выполняет стандартным техническим требованиям (маска) для частоты дискретизации под рукой.

ITUTDesigner = fdesign.audioweighting('WT','ITUT041',24e3);
ITUT = design(ITUTDesigner,'allfir','SystemObject',true);
setfilter(visualizer,ITUT{1});
addfilter(visualizer,ITUT{2});
legend(visualizer,'ITU-T 0.41 FIR equiripple approximation', ...
    'ITU-T 0.41 FIR frequency sampling approximation')

Вы проектируете C-сообщение, взвешивающее фильтр для частоты дискретизации 51,2 кГц с помощью следующего кода. Можно выбрать из КИХ-выборки частоты или equiripple приближений или из точной БИХ-реализации полюсов и нулей на основе полюсов и нулей, заданных в [6]. Вы получаете БИХ-проект путем выбора 'bell41009' метода разработки. КИХ-приближения фильтра спроектированы с минимальным порядком, который выполняет стандартным техническим требованиям (маска) для частоты дискретизации под рукой.

CMessageDesigner = fdesign.audioweighting('WT','Cmessage',51.2e3);
CMessageFIR = design(CMessageDesigner,'allfir','SystemObject',true);
setfilter(visualizer,CMessageFIR{1});
addfilter(visualizer,CMessageFIR{2});
legend(visualizer,'C-message FIR equiripple approximation', ...
    'C-message FIR frequency sampling approximation')

CMessageIIR = design(CMessageDesigner,'bell41009','SystemObject',true);
setfilter(visualizer,CMessageIIR);
legend(visualizer,'C-message weighting (IIR)')

Заключения

Некоторые стандарты взвешивания аудио не задают точный полюс/нулевые значения, вместо этого, они задают список значений частоты, величин и допусков. Если точные полюса и нули не заданы в стандарте, фильтры являются созданной с использованием выборкой частоты, equiripple, или БИХ наименьшее количество P-нормы произвольные приближения величины на основе вышеупомянутого списка значений частоты, затуханий и допусков. Порядок фильтра произвольных проектов величины выбран в качестве минимального порядка, для которого получившийся ответ фильтра в пределах маски допуска. Проекты предназначаются для допусков маски спецификации только в интервале Найквиста. Если Фс/2 будет меньшей, чем самое большое значение частоты маски, заданное стандартом, алгоритм проекта попытается выполнить техническим требованиям до Фс/2.

В КИХ-проектах equiripple метод разработки обычно дает к более низким порядку фильтра, когда по сравнению с методом выборки частоты, но может иметь некоторые проблемы сходимости на уровне больших частот дискретизации.

Ссылки

[1] 'Спроектируйте ответ взвешивания сетей для акустических измерений', американский национальный стандарт, ANSI S1.42-2001.

[2] 'Часть 1 метров уровня звука электроакустики: технические требования, IEC 61672-1, первый выпуск 2002-05.

[3] 'Измерение уровня напряжения шума звуковой частоты в звуковой широковещательной передаче', рекомендация ITU-R BS.468-4 (1970-1974-1978-1982-1986).

[4] 'Технические требования для измерительного оборудования для измерения аналоговых параметров, псофометра для использования на схемах Телефонного Типа, рекомендация 0.41 ITU-T.

[5] 'Параметры передачи, влияющие на речевые методы измерения передачи данных, системный технический справочник Bell, PUB 41009, 1972.

[6] 'IEEE® Standard Equipment Requirements и техники измерений для параметров аналоговой передачи для телекоммуникаций, станд. IEEE 743-1995 объемов, проблема, 25, сентябрь 1996.