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

Этот пример показывает, как получить проекты для наиболее распространенных фильтров взвешивания - 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)

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

  weightingFilter with properties:

        Method: 'C-weighting'
    SampleRate: 28000

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.