Audio Signal Processing 16

14. stochastic model

실제 세계의 사운드는 무작위성이 있기 떄문에 그런 시스템을 표현하기 위해 분포를 예측한 모델이 stochastic model이다.  다음 두 요소를 살펴보자. Autocorrelation : 무작위성이 높을 수록 0에 가깝다. 반면 주기성이 높다면 0에서 멀어짐.  Power spectral density : 해당 인덱스의 값이 높을 수록 그 인덱스의 주파수 성분이 강하다.  입력 신호가 특정 필터를 통과한 후, 주파수 영역에서 어떻게 바뀌었는지를 나타내는 출력을 다음처럼 표현한다.  전체적인 신호처리 프레임은 다음과 같다.  x[n]: Input signal (입력 신호)w[n]: Window function (윈도우 함수)xw[n]: Windowed input signal (윈도우 처리가 적용된 입력..

* Window_size, Hop_size, FFT_size

헷갈리는 용어들이 푸리에 변환에서 어떻게 사용이 되는지를 명확히 정의하고 싶어서 남기는 포스트 fs = 샘플링 주파수M = window sizeH = hop sizeN = FFT size 8000인 샘플링 주파수로 1초길이 음원을 분석한다고 가정해보자. M = 1024H = 512N = 1024 1. 8000개의 샘플중 0 ~ 1023구간 M(1024)의 윈도우 사이즈인 윈도우에 통과 시킨다. -> 1024크기의 시간 도메인 데이터2. 1024의 시간 도메인 데이터를 N(1024)의 FFT 사이즈에 통과 시킨다. -> 1024크기의 주파수 도메인 데이터3. 1024크기의 주파수 도메인 데이터는 0초 ~ (1023 / 8000)초 구간에 해당하는 주파수 성분.4. H(512)만큼 건너 뛰어서 512 ~ 1..

13. harmonic model analysis

이번포스트에서는 harmonic model을 이용해 주파수 분석을 해보자. 아래는 440Hz saw-tooth를 sinusoidal model을 이용해서 분석한 그림이다. 주파수에 노이즈가 껴있는걸 볼 수 있다. 아래는 위 파라미터에서 윈도우 사이즈를 늘리고 분석한 결과이다. 너무 지저분 해진 것을 확인할 수 있다. 이처럼 sinusoidal model분석은 고조파를 찾는데 윈도우 사이즈 조절에 실패하면 부정확한 분석 결과를 초래한다. 아래는 동이란 음원을 hormonic model 분석을 한 그림이다. 고조파로 스펙트럼을 제한한다는 점에서 결과가 이전에 나온 것보다 매우 좋아졌다. 위 파라미터에서 윈도우 사이즈를 줄여도 같은 결과를 내놓는다. 이번에는 바이올린 B3음을 분석한 결과이다. 윈도우 크기는 ..

12. harmonic model, F0 detection

이번 주제는 harmonic model이다. harmonic model 의 식은 다음과 같이 표현할 수 있다. 고조파의 형식은 정현파와 매우 유사한 형태이지만 다른점이 있다. 정현파는 단일 주파수를 가지는 순수한 소리인 반면, 고조파는 그 기본 주파수의 배수로 구성된 더 복잡한 파형을 형성하여 소리의 음색을 풍부하게 만든다. 또한 스펙트럼으로 변환하면  고조파를 이해하기 위해서는 정현파, 파셜, 고조파의 개념을 명확히 구분할 필요가 있다.정현파: 기본 주파수만으로 이루어진 순수한 파형으로, 피크가 하나의 주파수에만 집중된 형태파셜: 기본 주파수 외에도 다른 주파수 성분들이 포함된 파형으로, 다양한 피크가 나타날 수 있다. 이는 외부 사운드의 영향이나 다른 주파수 성분들에 의해 발생한다.고조파: 기본 주파..

11. sinusoidal model analysis

이번포스트에서는 여러 파라미터를 다르게 해서 시각화를 통해 비교해보는 실습을 진행해보자. input signal 은 440Hz와 490Hz가 합성 된 sound이다. 우선 다음 그림은 윈도우 사이즈를 충분하게 설정한경우, 작게 설정한 경우이다. 보이다시피 윈도우의 사이즈를 비교적 작게 설정하면 주파수 해상도가 현저히 떨어져 다음과 같이 두 개의 정형파를 제대로 추출하지 못한 모습이다. 그리고 다음은 오보에가 A4음을 연주하는 사운드를 입력값으로 했다. 다음은 진폭 임계값을 각각 -30dB, -80dB으로 설정할 때의 결과이다. -30의 경우 진폭이 상대적으로 큰 신호만 유지되고, 나머지는 제거되므로 약한 신호도 제거될 가능성이 있어 중요한 신호를 잃을 위험이 있다.-80의 경우는 신호 손실을 줄이는 대신..

10. sinusoidal model_3

이번 포스트에서는 사인파 모델의 합성에 대해 리뷰하겠다. 사인파 합성사인파는 시간에 따라 변하는 사인파들의 합으로 간주한다. 사인파를 합성할 때는 가산(additive synthesis)을 사용한다. 이 방법은 여러 개의 진폭과 주파수를 입력으로 받아 개별적인 사인파를 생성하고 이를 합쳐 최종 출력으로 만든다. 가장 간단한 합성 방법으로 파이썬에서 다음과 같은 계산을 하는것이 있다. 그러나 매우 많은 계산을 해야해서 비효율적이다. 다음은 파이썬 코드예제이다.Ar = .8fr = 2.0phi = pi / 2fs = 100t = arange(-1, 1, 1.0 / fs)x = Ar * cos(2 * pi * fr * t * phi) 반면 DFT를 이용하여 합성하는 방법은 주파수 스펙트럼과 위상스펙트럼을 가지..

09. sinusoidal model_2

이전시간에 이어 sinudoidal model, peak detection, time-varing sinwaves in spectrogram에 대해 리뷰해보자. 스펙트럼에서 피크를 식별하는 방법은 매우 중요하다 다음과 같은 방법으로 피크를 감지할 수 있다.  위처럼 식별하는방법도 있지만 제로패딩을 통해 해상도문제를 해결하면 더 정확하게 식별할 수 있다. 이는 계산량이 많아지지만 피크의 정확성을 높이는 데 유용하다.  또 다른 방법으로는 포물선 보간을 통해 피크를 추정하는 방법이다. 스펙트럼의 피크는 샘플포인트에서 측정되지만 샘플포인트 간의 연속적인 데이터로 보간함으로써 더 정밀한 피크 위치를 추정할 수 있다. 다음은 포물선 보간의 예시이다.정현파 모델은 단일 프레임에서의 피크 식별을 넘어서, 시간에 따라..

08. Sinusoidal model_1

이번 포스트에서는 sinusoidal model에 대해 알아보고 해당 모델의 spectrum과 sinwave의 spectral peak가 어떤지 알아보자. sinusoidal model은 다음과 같이 표현할 수 있고, A4(440Hz), B4(493Hz)의 음을 해당 모델의 예를 들어 식으로 표현해 보자. 그리고 해당 모델의 spectrum은 다음과 같다.  여러 개의 사인파 모델이 결합된 경우, 주파수 해상도를 높이기 위해 윈도우의 크기를 늘려야 합니다. 윈도우 크기를 늘리면 더 많은 데이터 포인트가 포함되기 때문에 더 세밀한 주파수 분석이 가능해집니다. 그러나 윈도우 크기를 증가시키면 시간 복잡도가 증가하게 됩니다.  다음은 윈도우 사이즈를 결정하는데 필요한 조건입니다.

07. Time_Frequency_Compromise

STFT분석을 하는데 있어서 중요한 파라미터는 윈도우의 타입, 윈도우의 사이즈, FFT의 사이즈, Hop 사이즈가 있다. 각각의 파라 미터는 시간 해상도, 주파수 해상도 성능에 영향을 끼치며 analysis visualizer를 통해 리뷰를 해보자. 윈도우 사이즈 : 1024FFT 사이즈 : 2048Hop 사이즈 : 256 위 파라미터를 이용해 분석을 하면 위처럼 시간 해상도가 낮은 걸 확인할 수 있다.  파라미터를 다르게 해서 분석해보자. 윈도우 사이즈 : 220FFT 사이즈 : 256Hop 사이즈 : 64   사이즈 변화시키니 이전 분석도에 비해 시간 해상도는 높아졌지만 주파수해상도가 낮아진걸 확인할 수 있다.  소리가 어택되기 전의 분석 구간과 어택 이후의 분석 구간을 시각화하여 비교하고, 이를 통..