структура XAUDIO2_FILTER_PARAMETERS (xaudio2.h)

Определяет параметры фильтра для исходного голоса.

Синтаксис

typedef struct XAUDIO2_FILTER_PARAMETERS {
  XAUDIO2_FILTER_TYPE Type;
  float               Frequency;
  float               OneOverQ;
} XAUDIO2_FILTER_PARAMETERS;

Члены

Type

XAUDIO2_FILTER_TYPE.

Frequency

Частота радиана фильтра вычисляется как (2 * sin(pi * (требуемая частота отсечения фильтра) / sampleRate)). Частота должна быть больше или равна 0 и меньше или равна XAUDIO2_MAX_FILTER_FREQUENCY. Максимальная допустимая частота равна частоте выборки исходного звука, разделенной на шесть, что соответствует максимальной частоте радиана фильтра 1. Например, если частота выборки звука составляет 48 000, а требуемая частота отсечения является максимально допустимым значением для этой частоты выборки 8000, значение параметра Frequency будет равно 1. Если определен XAUDIO2_HELPER_FUNCTIONS, XAudio2.h будет включать вспомогательные функции XAudio2RadiansToCutoffFrequency и XAudio2CutoffFrequencyToRadians для преобразования между частотами hertz и radian. Определение XAUDIO2_HELPER_FUNCTIONS также будет включать XAudio2CutoffFrequencyToOnePoleCoefficient для преобразования между герцом и коэффициентом с одним полюсом, подходящим для использования с LowPassOnePoleFilter и HighPassOnePoleFilter.

OneOverQ

Обратная величина Q-фактора. Управляет тем, как быстро затухают частоты, превышающие частоту. Большие значения приводят к более быстрому снижению, в то время как меньшие значения приводят к постепенному снижению. Значение должно быть больше 0 и меньше или равно XAUDIO2_MAX_FILTER_ONEOVERQ.

Комментарии

Задание XAUDIO2_FILTER_PARAMETERS со следующими значениями акустически эквивалентно полному обходу фильтра.

XAUDIO2_FILTER_PARAMETERS FilterParams;
FilterParams.Frequency = 1.0f;    
FilterParams.OneOverQ = 1.0f;
FilterParams.Type = LowPassFilter;

В следующих формулах показана связь между элементами XAUDIO2_FILTER_PARAMETERS и фильтром для каждого голоса.

Yl( n ) = F1 yb( n ) + yl( n - 1 )
Yb( n ) = F1 yh( n ) + yb( n - 1 )
Yh( n ) = x( n ) - yl( n ) - OneOverQ(yb( n - 1 )
Yn( n ) = Yl(n) + Yh(n)


Где:

Yl = lowpass output
Yb = bandpass output
Yh = highpass output
Yn = notch output
F1 = XAUDIO2_FILTER_PARAMETERS.Frequency
OneOverQ = XAUDIO2_FILTER_PARAMETERS.OneOverQ

Требования к платформе

Windows 10 (XAudio2.9); Windows 8, Windows Phone 8 (XAudio 2.8); Пакет SDK Для DirectX (XAudio 2.7)

Требования

   
Верхняя часть xaudio2.h

См. также раздел

IXAudio2Voice::GetFilterParameters

IXAudio2Voice::SetFilterParameters

Структуры XAudio2