Share via


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 * (desired filter cutoff frequency) / sampleRate)로 계산된 필터 라디안 빈도입니다. 빈도는 0보다 크거나 같아야 하며 XAUDIO2_MAX_FILTER_FREQUENCY 보다 작거나 같아야 합니다. 허용되는 최대 주파수는 소스 사운드의 샘플 속도를 최대 필터 라디안 주파수 1에 해당하는 6으로 나눈 값과 같습니다. 예를 들어 사운드의 샘플 속도가 48000이고 원하는 컷오프 빈도가 해당 샘플 속도 8000에 허용되는 최대 값인 경우 Frequency 값은 1이 됩니다. XAUDIO2_HELPER_FUNCTIONS 정의된 경우 XAudio2.h에는 헤르츠와 라디안 주파수 간 변환을 위한 XAudio2RadiansToCutoffFrequencyXAudio2CutoffFrequencyToRadians 도우미 함수가 포함됩니다. 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); DirectX SDK(XAudio 2.7)

요구 사항

   
머리글 xaudio2.h

참고 항목

IXAudio2Voice::GetFilterParameters

IXAudio2Voice::SetFilterParameters

XAudio2 구조체