Этот пример показывает, как получить проекты для наиболее распространенных весовых фильтров - A-взвешивания, C-взвешивания, C-сообщения, ITU-T 0.41 и ITU-R 468-4 - с использованием weightingFilter
Системный объект и проектировщик весовых фильтров, fdesign.audioweighting
, в Audio Toolbox™.
Во многих приложениях, связанных с акустическими измерениями, конечным датчиком является ухо человека. По этой причине акустические измерения обычно пытаются описать субъективное восприятие звука этим органом. Приборы инструментирование построены, чтобы обеспечить линейную характеристику, но ухо является нелинейным датчиком. Специальные фильтры, известные как весовые фильтры, используются для расчета нелинейности.
Вы можете проектировать весовые фильтры A и C, которые соответствуют стандартам ANSI S1.42 [1] и IEC 61672-1 [2] с помощью weightingFilter
Системный объект. А-взвешивающий фильтр является полосно-пропускающим фильтром, предназначенным для моделирования воспринимаемой громкости низкоуровневых тонов. Фильтр для взвешивания А постепенно снимает акцент на частотах ниже 500 Гц. Фильтр С-взвешиванием удаляет звуки вне аудио области значений от 20 Гц до 20 кГц и имитирует громкость восприятия высокоуровневых тонов. Следующий код проектирует БИХ для А-взвешивания со частотой дискретизации 48 кГц.
AWeighting = weightingFilter('A-weighting',48000)
AWeighting = weightingFilter with properties: Method: 'A-weighting' SampleRate: 48000
Создания фильтра A и C основаны на прямой реализации передаточной функции фильтра, основанной на полюсах и нулях, заданных в стандарте ANSI S1.42.
Стандарт МЭК 61672-1 требует, чтобы величины фильтра попадали в заданную маску допуска. Стандарт задает две маски, одна с более строгими значениями допуска, чем другая. Фильтр, который соответствует спецификациям допуска более строгой маски, упоминается как фильтр класса 1. Фильтр, который соответствует спецификациям менее строгой маски, упоминается как фильтр класса 2. Можно просмотреть величину ответ фильтра вместе с маской, соответствующей спецификациям класса 1 или класса 2, вызвав visualize
метод для объекта. Обратите внимание, что выбор значения класса не повлияет на само создание фильтра, но будет использоваться, чтобы отобразить правильную маску допуска на графике визуализации.
visualize(AWeighting,'class 1')
Стандарты взвешивания A- и C определяют значения величины допуска до 20 кГц. В следующем примере мы используем частоту дискретизации 28 кГц и проектируем фильтр С-взвешиванием. Несмотря на то, что интервал Nyquist для этой частоты дискретизации ниже максимальной заданной частоты 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 [3] была разработана для лучшего отражения субъективной громкости всех типов шума в отличие от тонов. Взвешивание ITU-R 468-4 было спроектировано, чтобы максимизировать свою реакцию на типы импульсного шума, часто связанного с аудио кабелей, когда они проходят через средства телефонной коммутации. Взвешивание ITU-R 468-4 хорошо коррелирует с шумовым восприятием, поскольку исследования восприятия показали, что частоты между 1 кГц и 9 кГц являются более «раздражающими», чем указано А-взвешиванием.
Вы проектируете фильтр взвешивания на основе стандарта ITU-R 468-4 используя fdesign.audioweighting
объект спецификации. Можно выбрать между частотной дискретизацией или эквивалентными аппроксимациями для проекта КИХ-фильтра или использовать аппроксимацию наименьшей 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')
В то время как проекты БИХ дают меньшие порядки фильтра, проекты конечные импульсные характеристики имеют преимущество линейного фазового отклика. В проектах конечных импульсных характеристиках метод разработки равновесия обычно приводит к более низким порядкам фильтра по сравнению со способом частотной выборки, но может иметь некоторые проблемы сходимости во время проектирования при больших скоростях дискретизации.
Весовые фильтры ITU-T 0,41 и C-сообщений являются полосно-пропускающими фильтрами, используемыми для измерения звукового шума на телефонных схемах. Фильтр ITU-T 0.41 используется для международных телефонных каналов. Фильтр C-сообщений обычно используется для телефонных каналов Северной Америки. Частотная характеристика весовых фильтров ITU-T 0.41 и C-сообщений задана в стандартах ITU-T O.41 [4] и Bell System Technical Reference 41009 [5], соответственно.
Вы проектируете весовой фильтр ITU-T 0.41 для частоты дискретизации 24 кГц с помощью следующего кода. Можно выбрать из конечной импульсной характеристики частотной дискретизации или эквивалентных приближений. Фильтры разработаны с минимальным порядком, который соответствует стандартным спецификациям (маска) для частоты дискретизации.
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 кГц с помощью следующего кода. Вы можете выбрать из конечной импульсной характеристики частотной выборки или эквивалентных приближений или из точной реализации БИХ полюсов и нулей на основе полюсов и нулей, заданных в [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)')
Некоторые стандарты взвешивания звука не определяют точные значения полюса/нуля, вместо этого они определяют список значений частот, величин и допусков. Если точные полюсы и нули не заданы в стандарте, фильтры проектируются с использованием частотной выборки, равновесия или произвольных величин наименьшей P-нормы БИХ приближений основанных на вышеупомянутом списке значений частот, ослаблений и допусков. Порядок фильтра проектов произвольной величины выбирается как минимальный порядок, для которого результирующая реакция фильтра находится в пределах маски допуска. Проекты нацелены на допуски маски спецификации только в интервале Nyquist. Если Fs/2 меньше, чем самое большое значение частоты маски, заданное стандартом, алгоритм проекта постарается удовлетворить спецификациям до Fs/2.
В проектах конечных импульсных характеристиках метод разработки равновесия обычно приводит к более низким порядкам фильтра по сравнению со способом частотной дискретизации, но может иметь некоторые проблемы сходимости при больших скоростях дискретизации.
[1] 'Проект ответа весовых сетей для акустических измерений', Американский национальный стандарт, ANSI S1.42-2001.
[2] 'Electroacoustics Sound Level Meters Part 1: Спецификации, IEC 61672-1, First Edition 2002-05.
[3] 'Measurement of Audio-Frequency Noise Voltage Level in Sound Broadcasting', Рекомендация ITU-R BS.468-4 (1970-1974-1978-1982-1986).
[4] 'Спецификации на измерительное оборудование для измерения аналоговых параметров, псофометр для использования на телефонных схемах', Рекомендация ITU-T 0.41.
[5] 'Transmission Parameters Weeking Voiceband Data-Measurement Technologies', Bell System Technical Reference, PUB 41009, 1972.
[6] «Требования к стандартному оборудованию IEEE ® и методы измерения параметров аналоговой передачи для телекоммуникаций», IEEE Std 743-1995 Volume, Issue, 25, September 1996.