[vDSP] [신호 처리] 오디오/사운드 분석으로 통하는 도 8FFT 사운드의 밝기

[vDSP] [신호 처리] 오디오/음성 분석으로 향하는 도로 7FFT 소리의 밝기


개요


이번에는 FFT를 통해 얻은 스펙트럼 ral 정보를 분석해 소리의 밝기를 측정하는 척도 중 하나인 스펙트럼 중심(Centroid)을 쓰겠습니다.
FFT와 관련이 없는 프로그램입니다.과거이 보도이 보도를 참고하세요.
스펙트럼 중심은 스펙트럼의 중심 위치(Hz 단위)를 계산하여 얻을 수 있습니다.예를 들어 440hz의 순음 Centroid는 이론적으로 440Hz의 Centroid가 있다.또한 고주파와 순음을 더하면 Centroid의 값은 주파수가 증가함에 따라 커진다.

공식.


Centroid의 계산 방법은 다음과 같습니다.
Centroid_t = \frac{\sum_{n=0}^{N-1} (F_n \cdot M_n)}{ \sum_{k=0}^{N-1} M_n}

FFT 프레임t에서 주파수 F와 사운드 강도 M의 적합을 사운드 강도 M의 합계로 나눈 값입니다.N은 FFT 사이즈입니다.

및: vDSPsve


vDSP에는 합계를 이루는 함수가 준비되어 있습니다.
void vDSP_sve (
   float *__vDSP_A,
   vDSP_Stride __vDSP_I,
   float *__vDSP_C,
   vDSP_Length __vDSP_N
);

Centroid


wikipedia
소리의 강도는Magnitude의 계산은 다음과 같다.
 MagnitudeSum = sqrt(real * real + img * img);
vDSP 함수 사용
vDSP_zvabs(&splitComplex,1,magnitude,1,ffthalfsize);
FFT의 각 bin에 해당하는 주파수는 다음과 같이 계산됩니다.
float freq_bin = SamplingRate/fftsize;
그래서 Centroid식의 분자 부분
float cen = 0;
for(i=0;i<ffthalfsize;i++){
    cen = freq_bin * i * magnitude[i];
}
centroid 표시
centroid = cen/MagnitudeSum;
.단위는 Hz다.
Centroid는 소리의 밝기를 나타내는 척도이지만 Centroid의 수치 단일체는 신뢰성과 관련이 있을 수 있습니다.
예를 들어, 다음 스펙트럼을 예로 들 수 있습니다.

위의 그림은 스펙트럼 중심에 강한 강도를 가진 신호를 나타낸다.
이런 상황에서 얻은 Centroid는 스펙트럼 중심점에서 샘플링 확률이 44.1Hz이면 10kHz 정도이다.
하지만 다음 주제를 보십시오.

이번에는 최저음과 최고음의 강도에 대한 신호로 스펙트럼 중심을 경계선으로 대칭한다.
이 Centroid는 어떤 값일까요?Centroid는 스펙트럼의 중심을 계산하기 때문에 처음 그림과 같이 10kHz 근처의 값을 얻을 수 있습니다.이렇게 하면 성질이 완전히 다른 음신호라도 같은 Centroid 값이 있을 수 있다.
위와 같은 문제를 해결하기 위해 Centroid는 사운드의 성질을 별도로 평가하기보다 아래 Spectral spread의 잣대와 함께 처리하면 신뢰성을 높일 수 있습니다.

Spectral Spread


Spectral Spread는 스펙트럼에서 각 종이 상자의 강도가 어떻게 분포되는지를 나타냅니다.분포도는 다음 공식에 의해 정의됩니다.
Spread = \frac{\sum_{n=0}^{N-1} (|F_n - C \cdot M_n)}{ \sum_{k=0}^{N-1} M_n}

C는 Centroid를 나타냅니다.
1FFTframe의 Spectral Spread 계산 방법은 다음과 같습니다.
spread
for(i=0;i<ffthalfsize;i++){
    accum_spread += magnitude[i] * fabs(i*freq_bin - Centroid);
    accum_mag += magnitude[i];

}
마지막
spread2
    spread = accum_spread / accum_mag;
를 참고하십시오.
Spread의 값이 크면 여러 가지 스펙트럼을 포함하는 음신호가 있고, 반대로 작으면 순음에 가까운 음신호가 된다.

총결산


이번 목적은 신호의 스펙트럼 정보를 분석하고 신호의 성질을 측정하는 것이다.한 척도만 이용하면 정확한 소리의 성질을 얻기 어렵다.나는 여러 척도를 잘 조합함으로써 더욱 정확한 척도를 얻을 수 있을 것이라고 생각한다.어쨌든 사용하는 음신호의 성질을 미리 파악하고 적당한 분석법을 선택하는 것이 가장 좋은 방법일 수도 있다.

좋은 웹페이지 즐겨찾기