티스토리 뷰
1. 푸리에변환(Fourier transform)
- 임의의 입력 신호를 다양한 주파수를 갖는 주기 함수들의 합으로 분해하여 표현
- (= 여러 함수를 조합해 데이터/함수를 표현하는 것은 1800년 푸리에(Fourier)가 함수를 사인과 코사인의 합으로 표현)
- 퓨리에 변환 하는 이유? 모든 시간의 정보를 표현 불가, 주파수 domain은 전 구간 표현 가능(해석 및 분석 용이)
- 고주파부터 저주파까지 다양한 주파수 대역의 sin,cos 함수들로 원본 신호를 분해하는 것
<단점>
시간에 대한 연속성 고려되지 않음
신호 데이터에 불연속성, 날카롭게 도출된 부분(고주파 성분)이 포함될 경우, 신호의 특징 분석이 난이
→ DTFT, STFT, 웨이블릿변환, 가버변환, MFCCs
- continuous time domain과 Discrete time domain으로 많이 나눌 수 있다.
- 신호를 A/D 변환하여 discrete time domain에서 많이 분석한다.
- Discrete time domain에서 주파수 해석을 하기 위해서 다양한 알고리즘이 개발 -> FFT (Fast Fourier Transform)
- 현재는 거의 DFT = FFT로 사용 된다.
푸리에 급수나 푸리에 변환 대신에 이산 푸리에 변환이 쓰이는 이유?
- 푸리에 급수와 변환의 가정은 시간 영역의 신호가 연속이어야 함.
- But, 컴퓨터 등과 같은 디지털 신호 장치는 시간함수도 이산적이고 변환된 주파수 함수도 이산적으로 저장될 수 밖에 없음
- 결론적으로! 이산 푸리에 변환이 사용
2. 이산푸리에변환(DFT, Discrete Fourier Transform)
<DFT와 FFT의 차이>
- DFT(Discrete Fourier Transform-이산(불연속) 퓨리에 변환)
- 연속적인 신호를 시간에 따라 sampling을 한 형태의 신호로 생각하여 퓨리에 변환식을 그대로 계산
- 계산량 O(N*N)
이산적인 입력 신호에 대한 푸리에 변환으로, 디지털 신호 분석과 같은 분야에 사용.
이산 푸리에 변환은 고속 푸리에 변환(FFT)을 이용해 빠르게 계산 가능
- FFT (Fast Fourier Transform-고속 퓨리에 변환)
- DFT가 계산시간이 너무 오래 걸리기 때문에 고안된 방법
- sampling된 신호의 전부를 변환시키는 것이 아니라 필요한 신호만을 골라내어서 최소화하여 고속으로 퓨리에 변환을 연산
- N개의 표본 자료를 홀수번호와 짝수 번호로 나누어 계산
- 총 100개의 DFT신호가 있을경우 그중 10개를 골라낸후 10개의 신호를 단순히 연결함으로써 제외된 신호들의 예상치를 적용
- 계산량 O(N*log N)
3. STFT(Short Time Fourier Transform)
- 시간에 대해 구간을 짧게 나누어 나누어진 여러 구간의 데이터를 각각 푸리에 변환하는 방법
- 창함수(Window function)사용하여 변환범위를 시간축에 따라 이동한다.
- 창함수의 크기는 시간-주파수 영역의 분해능 결정
- Ex) FFT 변환? 9초 길이 전체에 대해 푸리에 변환
- Ex) STFT 변환? 9초 구간을 임의의 크기로 나누어 (0~3초, 3~6초, 6~9초 사이) 나누어진 데이터를 각각 푸리에 변환하는 것을 의미
- STFT 사용해서 spectrogram 시행
- STFT(Short Time Fourier Transform) 단점
- 양자역학의 불확정성의 원리처럼 STFT로는 시간해상도, 주파수해상도를 함께 구할 수 없다.
- Window의 크기를 크게 하면 주파수의 해상도는 올라가는 대신에 시간축의 해상도는 떨어진다
- Window의 크기를 작게 하면 시간축의 해상도는 올라가지만 주파수축의 해상도가 떨어진다.
- 윈도우 사이즈의 크기를 바꿔가면서 여러 번 STFT하는 것이 Wavelet !
'Engineering > signal' 카테고리의 다른 글
양자역학에 대한 생각와 양자 신호처리 (1) | 2020.06.19 |
---|---|
신호에 대한 이해 (0) | 2020.06.19 |
나이퀴스트 이론 Nyquist-Shannon sampling theorem = 샘플링 정리 (0) | 2020.06.19 |
신호처리 - 웨이블렛(wavelet) (0) | 2019.10.16 |
python FFT 구현 (0) | 2019.09.11 |
댓글