*기본 기법 관련

 

Markov Chain/Process

HMM

RNN

Viterbi

short-term Fourier transform, sliding Blackman window, hop size, zero-padded, L2-normalized, dynamic range

 

*분야별

 

*코드 인식(Chord Recognition) 및 음성 인식(Voice Recognition)

 

acoustic model:audio signal에 집중한 model

musicological(or language) model:연속적인 chord label을 고려하는 model

 

RNN 사용시:

복잡한 long-term temporal dependencies가 반영되어 음악계에 성능이 좋다.

HMM을 능가한다.

 

 

 

 

 A/D(Analog to Digital), 참고자료:  

https://m.blog.naver.com/PostView.nhn?blogId=angleriniraq&logNo=220914462863&targetKeyword=&targetRecommendationCode=1

https://m.blog.naver.com/PostView.nhn?blogId=mino_0206&logNo=220664693016&proxyReferer=http%3A%2F%2Fwww.google.com%2Furl%3Fsa%3Dt%26rct%3Dj%26q%3D%26esrc%3Ds%26source%3Dweb%26cd%3D2%26ved%3D0ahUKEwi8oorKgoXbAhUIE5QKHXPrDccQFggrMAE%26url%3Dhttp%253A%252F%252Fm.blog.naver.com%252Fmino_0206%252F220664693016%26usg%3DAOvVaw1jT0FTPy6kVTGK7gVpX54I

A to D는 다음과 같은 절차를 거친다.

1. Sampling

2. quantization

3. coding


 

Decibel(dB): 

데시벨 = 10*log(P/P_0),

P_0:reference power(참고 소리, 주로 0데시벨의 소리 크기이며, 0데시벨은 사람이 겨우 들을 수 있는 소리의 크기),

log은 밑이 10인것을 사용

P의 소리의 크기의 데시벨의 정의이다.

10데시벨은 0데시벨보다 10배 큰 소리

20데시벨은 0데시벨보다 100배 큰 소리

60데시벨은 40데시벨보다 100배 큰 소리

(일상대화가 60데시벨, 록밴드는 110데시벨정도가 된다.)

디지털 오디오는 "6데시벨 규칙"이라는 법칙을 주로 적용한다. 1비트(depth)당 6데시벨을 할당하여 오디오의 강도(소리의 크기)를 표현하는 방법

 

Sampling rate, Sample rate: 1초당 추출되는 샘플의 수

ex)44.1KHz란 1초당 44100개로 샘플을 추출, 대개의 CD음질은 44.1KHz이다.

Sample rate가 높으면 정확한 오디오 데이터(고음질), 하지만 음성 데이터 분석시 데이터 양이 많아져서 처리하기 힘들다.

 

bit rate:초당 전송되는, 처리하는 데이터 양

(보통 bps라 함은 bits per second이다. kb:킬로비트, Mb:메가 비트, kB:킬로바이트 MB:메가 바이트, Mbps:초당 메가비트(주로 인터넷 속도에 씀))

 

bit depth:bit depth가 자연수 n이라 함은, 0부터 최댓값까지 2^n의 단계로 나눈 디지털 데이터를 가리킨다. n이 1커질수록 데이터는 정확해지지만, 데이터양은 2배씩 늘어난다.

 

sample size:bit depth와 마찬가지 개념인데 다른 것을 가리킴, bit depth가 8이면 즉 2^8, 1byte로 표현하겠다는 것, 이때 sample size는 1, 만약 bit depth가 16이면 2byte로 sample size는 2

 

frame size:채널수*sample size

채널수(mono면 1, streo면 2, 5.1채널은 6이 된다.)

frame의 길이와 오해하면 안됨, frame의 길이는 시간의 길이를 가리킨다. sampling rate*frame의 길이=1개의 frame에 있는 sample의 개수

 

Ex)16비트(depth) 48KHz 오디오란, 1초에 48000개의 sample을 얻으며, 0dB~96dB(16*6, 6데시벨 규칙에 의해)의 소리의 크기를 2^16개로 세분화시킨(즉 2byte로 표현) 정밀도로 샘플링해 표현하는 음향 신호라는 의미이다.

 

PCM(Pulse Code Modulation):Sampling부터 시작해 양자화(quantization)을 거쳐 2진 신호로 변환하는 것 까지의 일련의 과정을 가리킨다.

 

mel scale:

MFCC(Mel-frequency cepstral coefficients):


analog->digital->analog 처리 관련

Sampling, Shannon Sampling Theorem


phasor표현법

신호이론에서 대부분 2pi*f를 w라 나타낸다. 익숙해질 필요가 있다.

임의의 신호 x(t)=Acos(2pi*f*t + Φ)는 x(t)=Xcos(2pi*f*t) - Ysin(2pi*f*t)로 나타낼 수 있다. (코사인 덧셈-뺄셈 정리)

이것을 복소수 z=X+Yi로 나타내는 것을 phasor representation of x(t)이라 한다.(X=AcosΦ, Y=AsinΦ)

f가 시간에 대해 일정할 때, phasor표현의 가장 큰 장점은

x(t)=Xcos(2pi*f*t) - Ysin(2pi*f*t) <-> Z=(X,Y) 

dx(t)/dt <-> Z, 이때 Z는 x(t)의 Z에 2pi*f*i(즉 wi)를 곱해주기만 하면된다.

(여기서 미분했으니 w가 밖으로 곱해지겠고, sin과 cos은 서로 미분하면 실수에선 평행이동이지만, 복소평면상의 좌표로 봤을 땐 90도 회전이동이고 그것은 i곱셈연산에 해당되기 때문이다.)


변환관련

FS(Fourier Series)

CTFS(Continuous-time Fourier Series)

input:유한길이(t-domain)에서 정의된 함수 or 주기함수, 공역은 C여도 된다.

output:함수를 정형파의 선형 무한 급수로 나타낸 것일 뿐

별다른 약속 없이는 다음 관례를 익히도록 한다. 

input의 함수를 [-L,L]로 다룬다. 

FS사용시 복소수에서의 FS에 익숙해지도록한다. sin/cos말고

의미:

각 주파수(sin(wt), cos(wt))에 해당하는 진폭, 위상(phrase)을 알 수 있다.


DTFS(Discrete-time Fourier Series)

input:sampling period(T), sample size N, T와 original analog 신호로부터 얻은 유한개의 함숫값들(x(0), x(T), x(2T), ... x((N-1)T)), 그리고 애초에 원래 함수는 주기함수(유한길이였다면 그걸 이어붙인 주기함수 등일 때)

output:함수를 정형파의 선형 유한 급수로 나타낸 것이다.

의미:

DT domain(Discrete time domain)이란, 0, T, 2T, ..., (N-1)T에서 T를 제외한 0,1,2,...,(N-1)을 정의역으로 하는 것을 가리킨다.

sample time T(최소주기)일 때 DT domain에선 0<=f<=f_s=1/T가 0<=f<=1이 된다.

LT(Laplace Transform)(input: / output:)

double-sided LT

single-sided LT

FT(Fourier Transform)

CTFT(Continuous-time Fourier Transform)

input:실수전체(t-domain)에서 정의된 L1 function, 공역은 C여도 된다.

output:실수전체(f-domain)에서 정의된 (적분형태의)function, 공역은

의미:

푸리에 변환하여 얻은 함수(X(f)), X(f)의 크기는 진폭의 밀도함수(의 절반)이다. X(f)의 각은 f에서의 위상(phrase)를 가리킨다.

DTFT(Discrete-time Fourier Transform)

input:time-resolution(T), sample size N, T와 original analog 신호로부터 얻은 유한개의 함숫값들(x(0), x(T), x(2T), ... x((N-1)T)) 

output:실수전체(f-domain)에서 정의된 (급수형태의)function, 공역은

의미:

x(iT)에 pulse function을 곱한다음 CTFT을 씌운 것이 정의이다.

결과는 1/T을 주기로 하는 함수가 나온다(frequency-domain에서의)

반대로 frequency-domain에서 이산적인 값들(delta f(frequency-resolution)를 간격으로)로 pulse function곱한다음 CTFT의 inverse를 씌우면씌워서 얻은 time-domain의 결과는 1/f를 주기로 하는 함수가 나온다.

DT domain(Discrete time domain)이란, 0, T, 2T, ..., (N-1)T에서 T를 제외한 0,1,2,...,(N-1)을 정의역으로 하는 것을 가리킨다.

sample time T(최소주기)일 때 DT domain에선 0<=f<=f_s=1/T가 0<=f<=1이 된다.


DFT(Discrete Fourier Transform)

01.pdf

02.pdf

03.pdf

04.pdf


input:time-resolution(T), sample size N, T와 original analog 신호로부터 얻은 유한개의 함숫값들(x(0), x(T), x(2T), ..., x((N-1)T))

output:

[0,NT]에서 얻은 N개의 이산신호으로부터 구한 DFT는

원래의 연속시간 x(t)의 푸리에 변환 X(f)를 주파수상에서 frequency-resolution (1/NT)로 표본화한 이산 스펙트럼과 같다(다만 크기만 1/(delta t) 을 이산스펙트럼에 곱하면 DFT랑 같다.)

역변환도 존재

고려사항

Shannon Sampling Theorem, Analog(Original)의 관심가는 최대주파수를 B라 할 때 

delta t <= 1/(2B) // time-resolution delta t (f=(1/delta t) >= 2B에서 유도됨, f는 주파수영역에서의 주기길이)

delta f <= gamma // gamma는 신호 x(t)의 지속 구간(Shannon...을 f->t로 반대로 써서 얻은)(T_0 = 1/(delta f) >= gamma에서 유도됨, T_0는 신호영역에서의 주기길이)

N= T_0/delta t = 1/(delta t * delta f), 샘플 개수 N

실제 할 때 T_0선택하고(조금 크게), delta t을 선택(어느정도 작게)

T_0을 크게할수록 주파수의 높은 정밀도를 얻지만 N값이 커지므로 계산량이 증가한다. 

FFT(Fast Fourier Transform)

의미:DFT를 빠르게(계산량이 N^2에서 N*log(N)으로 줄여주는)해주는 방법

방법:N을 2의 power로 만들고 복소 지수함수의 특성을 이용한 것(zero-padding하는 이유)

STFT(Short-term Fourier Transform)

DFT를 하는 데에 있어서, window function을 정해서 적당히 옮겨가면서 계속 DFT를해서 시간영역에 따른 주파수 정보를 얻어내는 기법

실제론 DFT말고 FFT를 쓴다. sampled input signal에 window function을 씌운 것에 FFT씌워서 주파수의 진폭과 위상을 분석하는 것을 STFT라 한다.

STFT를 사용하는 데 결정해야될 parameters

window type(Blackman, Hanning etc)

window length L

FFT size N

frame offset(혹은 hop size라 불리는)I



time sampling(아날로그 신호(시간에 대한) 함수를 컴퓨터가 처리할 수 있게 digital화 한 다음, 다시 아날로그 신호로 바꾸는 과정)

-x_c(t):아날로그 오리지날 신호

-y_c(t)=x_c(t)*p_c(t), p_c(t):uniform impulse train이라 불리는 신호

여기서 y_c(t)의 정의역을 sample period T의 정수배로 제한시키고, DT domain화 시키면 x_d[n]을 얻는다.

-y_c(t)는 비주기 연속신호이므로 CTFT

-p_c(t)는 주기를 T로 하는 연속신호이므로 CTFS

-p_c(t)에 CTFT도 적용

-관심사

x_c(t)을 CTFT하여 얻은 X_c(f)와 x_d[n]을 DTFT하여 얻은 X_d(f)사이 관계는 무엇이며, X_d(f)을 통해 X_c(f), x_c(t)을 복구할 수 있는가?(X_c(f)만 복구하면 당연히 x_c(t)로 복구는 되겠지만)

-y_c(t)=x_c(t)*p_c(t), 모두 CTFT 적용하고 곱셈<->convolution을 이용하면 

Y_c(f)=X_d(Tf)=1/T sum over all integer k X_c(f - (k/T))를 얻는다. 

따라서 X_d(Tf)는 X_c(f)를 여러개 옆으로 붙이고 1/T배 한 것이다.

여기서 shannon sampling theorem이란, 

원래 신호의 CTFT인 X_c(f)에 대해 te B>0 s.t. |f|<B이면 X_c(f)=0, 이러한 B에 대해 T<1/(2B)인 time-resolution T를 잡았다면 왜곡현상(aliasing)이 없다는 정리 이다.

Y_c(f) 혹은 X_d(Tf)를 통해 X_c(f)로 바꾸기 위해선 an ideal low pass filter를 사용하면 된다.(어느 특정 간단한 함수일뿐)

-정리

아날로그 신호->x_d[n]만듦(적절한 T, N)->DTFT적용하여 주파수 분석->원래로 돌릴 땐 Y_c(f)=X_d(Tf)에서 Y_c(f)에 an ideal low pass filter를 곱하기만하면됨


frequency sampling(위의 time sampling에서 DTFT를 적용하여 주파수 분석에서, 결국 DTFT의 결과가 연속적인 변수를 갖게 되므로 frequency sampling도 해줘야 결국 컴퓨터 알아먹고 일처리를 하게 된다.)

-x_d[n]에 DTFT를 적용하여 얻은 연속f의 무한급수에서 유한개의 합만을 택하자. 이것을 DFT라 한다.

 

STFT쪽 다 정리하기(Window, truncation, hopsize, sample rate, frequency의 resolution 정의 등)


신호분석에서는 복소수 i말고 j를 사용한다.


2pif:각속력의 크기, rad/s단위 혹은 분당회전수 RPM을 쓰기도 함

스펙트럼이란, {(주파수, 그 주파수에 해당하는 진폭)}을 가리킨다.

Ex) Acos(wt)=A/2(exp(iwt)+exp(-iwt)), 이경우 스펙트럼은{(-f, A/2), (f,A/2)}

Ex)cos(wt)-0.2cos(3wt)는

{(-3f, 0.1), (-f, 0.5), (f, 0.5), (3f, 0.1)}


다음에 익숙해지자

f_0 = 1kHz

이면 time domain에서는 1ms(0.001초)가 주기(period)


푸리에 시리즈의 핵심내용:

모든 "주기 함수"는 하모닉의 합으로 나타낼 수 있다.

(기본주파수의 정수배를 하모닉이라 한다. exp(하모닉)*푸리에계수)

이때 주기함수의 기본 주기(fundamental period) 혹은 기본 주파수(fundamental frequency)

주기함수를 하모닉의 합(푸리에급수)으로 나타낼 때의 필요한 것은 기본주파수와 신호 x(t)의 함수 explicit형태(그래야 푸리에 계수 적분을 하니까)

만약 주기함수의 기본주기는 알지만 x(t)을 explicit하게 표현을 못한다면 X_n을 구할 때 구분구적법의 partial sum N까지만 사용(여기서 N은 sample 개수)해서 구하면 (x의 FFT)*1/N = X_n이 된다.(근사)

즉, 기본주기 T, sample 개수 N을 알면 가능




푸리에 계수를 구하는 것은 orthogonality를 사용

(주의할 것은 conjugate씌우고 내적)


푸리에시리즈의 주된 성질

superprinciple(linear)

(시간에서의)컨볼루션<->곱셈(주파수의 계수)

(time shift)x(t-t_0)<->exp(-jwnt_0)*X_n

(Parseval's thm)시간 영역 평균 전력은 주파수 성분의 제곱의 합과 같다.


------------------------------------------

푸리에변환

:비주기함수(x(t))를 X(f)로 바꾸는 것


x(t)가 비록 실수(real)신호이더라도 X(f)는 복소수가 나오며

X(f)의 크기는 f의 진폭성분(스펙트럼)을 다룸

X(f)의 각은 f의 위상성분(스펙트럼)을 다룸


x(t)가 실수이면 X(f)는 대칭성을 갖는다.

X(f)의 크기는 우함수

X(f)의 각은 기함수


기본적인 함수들의 푸리에변환 이해(그래야 읽고 비슷하게 생긴것을 예상하기 쉽다.)

δ(t)dirac delta(t)<->1인 상수함수(즉 모든 주파수를 다 갖는다)

1<->dirac delta(f), δ(f), 즉 0인 주파수만을 갖는다?

exp(j2pif_c t)<->δ(f-f_c), 즉 1개의 주파수만을 갖는다

cos(2pif_c t)<->1/2δ(f-f_c) + 1/2δ(f+f_c)

Π(t/τ) <-> τsinc(τf) (즉 rect 신호는 sinc형태로 주파수가 흔들리는 형태)

sum over all int i δ(t-iT) <-> 1/T * sum over all int i δ(f-i*1/T)



푸리에변환을 x(t)의 식을 알면 구할 수 있겠지만 현실적으론 불가능

FFT을 이용하여 보통 구한다.

먼저 필요한 것은 Ts(sample사이의 간격)을 설정(자동으로 Fs도 결정됨)

그리고 nTs마다의 sample 획득(0,x(0)), (Ts,x(Ts)), ...의 총 N개

이때 X(Fs * n/N)는 (즉 X(f)에서 f=Fs/N의 n번째 nFs/N일때의 X(f)의 값)FFT[x]*Ts가 된다. 즉 X(Fx * n/N)을 0~(N-1)까지의 부분합으로만 근사하면 얻는다.


푸리에변환의 주요 성질

불확정성원리(time resolution과 frequency resolution을 둘다 늘릴 순 없다.)

쌍대성

컨볼루션


컨볼루션이란, 

time-domain의 곱<->frequency-domain의 컨볼루션

time-domain의 컨볼루션<->frequency-domain의 곱


신호x(t)의 전력 스펙트럼(power spectrum)

10log|X(f)|^2이 전력 스펙트럼의 정의이다


주파수 영역 필터의 종류

필터는 LTI시스템

H(f)의 요구 조건(스펙)을 설계하고자 하는 목적


주파수 관점에서 필터의 종류

LPF(Low pass filter), HPF(high pass filter), BPF(Band pass filter)

저주파수만 통과, 고주파수만 통과, 중간 주파수만 통과(보통 tuner로 사용됨, 라디오같은)


구현 관점에서 필터의 종류

FIR:Finite impulse response, t-domain의 필터의 길이가 유한한

IIR:Infinite impulse response, t-domain의 필터의 길이가 무한한(다만, t->inf일 때 진폭은 0에 가까워지지만)


--------------------------------------------------------------------------------------------------------------------------------------------------------------

frequency resolution이란, frequency의 한개의 bin의 길이














논문별 분석

Audio Chord Recognition with Recurrent Neural Networks

Learning Deep Audio Features

1. STFT로 magnitude spectrogram 구함

window:Blackman (따라서 FFT의 size는 언급안함, 만약 무한길이의 window function을 truncate하여 쓰는 경우라면 FFT size도 언급 필요)

window size:500ms

hop size:64ms

기타: 

truncated at 4kHz(즉 4kHz 초과 주파수는 제거)

zero-padded





 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

*기본 컨셉

-Hidden Layers의 개수와 nodes 개수

-Hidden layer는 abstract representation of the training data를 가리킨다. (Abstraction)

-Hidden layer가 1개여도 충분히 input->taget인 function에 approximation되지만,(Universal Approximation Theorem) 여러개 사용하면 pros and cons가 있다.

-장점:더 좋은 결과(주어진 데이터 양만으로는)

-단점:Vanishing Gradient, Overfitting


-Error종류

-학습방법 종류

-SGD


 

*각종 모델링 기법(NN, FNN, RNN, LSTM, etc)

 

*핵심예제

 

*논문내용 요약, 테크닉





------------------

*심층 신경망(Deep Neural Networks, DNN)

-단일층 신경망과의 핵심적인 차이점은 층의 개수가 입력과 출력 층을 포함해 3개가 넘는 경우에 우리는 이 신경망이 깊다(deep)고 한다.

-첫 layer의 노드(특징, feature)들은 단순하고 구체적이며 후반으로 갈수록 더욱 복잡하고 추상적이다. 

-라벨링이 되어있지않더라도 각 입력값들끼리의 유사도를 비교하여 비슷한 것끼리 군집화 시켜주는 데에도 능하다.

-일반적인 기계 학습과 다른 점은 특징 추출(feature extraction)이 자동적이라는 것

-그 예로 RBM(Restricted Boltzmann Machines)가 있다.


*Autoencoder

-3 layers로 구성

-Input = output = target

-중간에 Hidden Layer 1개, nodes개수는 input의 nodes개수보다 적게

-2개의 Weight Matrix를 학습시킨다. 결국 input의 node보다 적은 abstraction을 얻는다.

-Hidden layer를 feature detector라 한다.

-Deep Learning에서의 overfitting문제를 해결할 수 있는 도구다.


*RBM(Restricted Boltzmann Machines, RBM)

-Generative Model

-2 layers로 구성(input, hidden)

-심층 신경망의 학습을 돕기 위해 쓰이기도 한다.

-연달아 은닉충을 잇고 학습하는 것이 각자 다른 층위의 특징값(feature hierarchy)을 학습하는 과정입니다. 심층 신경망은 이런 구조로 더 추상적이고 복잡한 데이터를 이해합니다. 은닉층을 새로 추가할 때마다 기존 층의 데이터를 근사할 수 있도록 가중치의 학습이 이뤄집니다. 이런 과정을 층별 탐욕 비지도 선행학습(layerwise, greedy unsupervised pre-training)이라고 합니다.

-각 층마다 최대한 오차를 줄이는 방향(D_(KL))->layerwise, greedy

-라벨의 정보가 없이 입력 데이터만을 가지고 이루어짐->unsupervised

-학습한 결과를 다시 다른 학습에 쓸 수 있기 때문에->pre-training

-이렇게 선행학습이 된 가중치는 데이터의 분포를 이미 알고있기 때문에 이 값으로 초기화한 심층 신경망은 더 좋은 성능을 보인다.(즉 RBM을 쓰는 이유는 초기가중치를 얻기 위함도 있음)

-특히 unsupervised learning에 쓰인다.

-입력층과 출력층 2개로만 구성되어 있다.

-입력층의 확률분포와 출력층으로부터 얻어온 추정한 입력층에서의 값의 확률분포에서 D_(KL)이 작아지는 방향으로 학습(자세한 이해 필요)

-이 과정을 재구성(reconstruction)이라 한다.

-입력층과 출력층의 바이어스가 다를 수 있다.

-구체적인 내용

-v:visible units, h:hidden units

-E(v,h):=energy와 softmax를 사용하여 p(v,h)의 distribution을 얻는다. 그리고 p(v)도 얻는다.

-Contrastive divergence learning procedure    



신호의 요소

T:period, 주기

f:frequency, 주파수, 


note)

인간은 20Hz 이하의 저주파는 듣지 못한다.

인간은 22kHz 이상의 고주파는 듣지 못한다.

어떠한 신호(소리)가 갖고 있는 주파수 폭(저주파수~고주파수까지의 범위)를 (주파수) 대역폭이라 한다.

일반적으로 사람의 음성은 300Hz~4kHz, 음악은 20Hz~20kHz까지의 대역폭을 갖는다.

T=1초 <-> f=1Hz

T=1ms(1/1000초) <-> f=1kHz

T=0.22ms <-> f=44kHz


기본적인 audio(analog)데이터를 컴퓨터가 처리하는 방법

Analog(Original) ->Digital ->Analog

여기서 

Analog(Original) ->Digital을 Step 1

Digital ->Analog을 Step 2라 하자.


SR(sampling rate):초당 signal이 read된 횟수(Step1에서) 대개는 44.1kHz, 48kHz 등으로 표현


note)

SR=44kHz <-> signal의 sample들 간의 시간 간격=1/44000=0.22ms


Fmax(frequency range 혹은 Nyquist Frequency):signal을 sample화하여서 read할 때 SR이 주어져있겠고 Shannon Sampling Theorem에 의해 이렇게 sample화한 신호를 복기하여서(Step 2) 들을 때의 최대 진동수(Fmax)는 SR/2이다.(즉 Shannon Sampling Theorem의 결과로서 복기(FFT등을 하여서)해서 듣는 최대진동수를 SR/2라는 것을 알 수 있고 그것을 Fmax라 하자.)

즉 Fmax는 Analog(Original)가 큰 진동수를 포함한 상황에서 SR이 그 큰 진동수를 표현하기엔 적은 양이었다면 우리가 듣는 진동수는 낮은 SR때문에 Analog(Original)가 가진 큰 진동수를 듣지 못하고 Step 2에서 최대 Fmax까지만 듣게 된다.(왜곡 aliasing이 발생)

따라서 SR을 결정하는데에 있어서 Analog(Original)의 최대 주파수(F)를 안다면, SR은 2F보다는 크게해야만 한다는 것이다. 그래야 Step 2에서 원래의 Audio에 가진 최대주파수까지 포함되어서 나온다.


어떠한 Analog(Original)(혹은 결과의 Analog든)이 최대진동수를 가지는 경우를 bandlimited라고 한다.

하지만 현실에서 이렇게 최대진동수(즉 일정 진동수 이상의 진동수를 포함하지 않는 데이터는 거의 없다.)


Analog(Original)과 Step 2의 결과물인 Analog 상에는 반드시 차이가 있을 수 밖에 없다.(애초에 Analog(Original)이 bandlimited할 경우도 없을 뿐더러 있었다 하더라도, Step 2에서의 처리과정에서는 푸리에변환등이 결국 컴퓨터가 무한개의 항에대해서 시행하진 않기 때문)

이렇게 해서 발생한 원본과의 차이를 Aliasing이라 한다.


-------------------------------------------------


Sampling:표본화, analog signal을 discrete in time

discrete-time signals을 continuous-time signals로 바꾼느 것을 reconstruction이라 한다.

Quantization:양자화, analog signal을 discrete in frequency

A/D converter라 함은 sampling과 quantization을 함께 하는 것을 가리킨다.


int over all real t |x(t)|^2 dt를 Total Energy라 한다.


----------------------------------------------------

즉 window legnth는 주파수를 분석하는데 쓸 시간

hop size는 주파수를 분석하는 것을 얼만큼 자주할거냐와 관련

(즉 magni.. spectrum에서 주파수 데이터의 시간간격을 조절하는건 hop size)




*Zero padding의 의의


N개의 샘플에 윈도우 씌운다음 윈도우 밖에 zero를 더 넣는 것을 zero padding

zero padding을 한다음에 DFT한 하면은

안한것보다 일단 DFT의 x축의 개수가 더 늘어난다.(늘린 zero만큼)

(DFT의 x축에서의 sample개수가 f의 bin의 개수인지는 모른다.???? STFT를 더 봐야할듯)

그리고 side lobes가 늘어난다.

zero padding을 많이 할수록 side lobes의 개수가 줄어들고 크기가 작아질까?아니다


zero padding을 하는 이유

X(k)(즉 DFT의 결과)가 더 detail하게 보인다.

이것이 주 사용 이유:sample의 개수가 2의 거듭제곱이면 DFT의 계산이 빠르다.


DFT를 통해 원래의 정보를 제대로 recover하려면 window의 size를 늘려야함

(window의 size를 키우면 main lobe의 크기가 커지고 side lobe의 크기를 줄이고 main이든 side든 lobe의 width를 줄임)



-------------------------------------------------------------------------------


주파수의 정밀도란 

The frequency resolution of a spectrum-analysis window is determined by its main-lobe width (Chapter 3) in the frequency domain, where a typical main lobe is illustrated in Fig.5.6 (top).  https://www.dsprelated.com/freebooks/sasp/Frequency_Resolution.html

For maximum frequency resolution, we desire the narrowest possible main-lobe width, which calls for the rectangular window (§3.1), the transform of which is shown in Fig.3.3. When we cannot be fooled by the large side-lobes of the rectangular window transform (e.g., when the sinusoids under analysis are known to be well separated in frequency), the rectangular window truly is the optimal window for the estimation of frequency, amplitude, and phase of a sinusoid in the presence of stationary noise [230,120,121].


----------------------------------------------------------------------------------

1옥타브 차이난다는 것은

주파수에서 2배차이(혹은 1/2배 차이)


pitch란 음높이(즉 주파수 혹은 A4, B3 등으로 표현한다.)


mel scale:사람의 청각은 저주파에서는 주파수의 변화를 잘 인지하는데, 고주파에서는 잘 인지 못한다. 즉 주파수가 어느정도 변했는데도 같은 음이라고 생각하는 그 주파수의 구간길이가 저주파일때 짧으나 고주파일땐 길다. 따라서 mel scale = 상수 * ln(1 + (f/700))으로 pitch를 다른 scale로 만든 것일 뿐이다.



-----------------------------------------------------

PCA가 아마 Courant-Fischer 결과아닌가 싶은데


'MachineLearning > 기본' 카테고리의 다른 글

How to handle imbalanced classification problems  (0) 2018.05.23
Speech Recognition  (0) 2018.03.28
신호분석 정리  (0) 2018.03.22

+ Recent posts