별의 공부 블로그 🧑🏻‍💻
728x90
728x170

푸리에 해석(Fourier Analysis)

푸리에 해석(Fourier Analysis)

  • 프랑스의 수학자이자 물리학자인 장 밥티스트 조제프 푸리에(Jean-Baptiste Joseph Fourier)가 1803년 그의 저서 <열의 해석적 이론>에서 "임의의 함수는 삼각함수의 급수로 나타낼 수 있다."고 주장했는데, 이것을 푸리에 정리(Fourier Theorem)라 한다.
  • 푸리에 정리를 바탕으로 주기 함수삼각함수의 급수로 나타내는 것을 푸리에 급수(Fourier Series)라고 한다.
  • 주기 함수가 아닌 유한 구간에서 정의된 함수주기 함수로 만들어서 삼각함수의 급수로 나타내는 것을 푸리에 전개(Fourier Expansion)이라고 한다.
  • 이것을 무한 확장한 것을 푸리에 변환(Fourier Transform)이라고 한다.

 

연속 시간 푸리에 급수(CTFS, Continuous-Time Fourier Series)

  • 모든 주기신호는 진폭과 주파수가 다른 정현파들의 급수로 나타낼 수 있다.
  • 임의의 연속 시간 주기 신호를 다른 연속 시간 주기 신호들의 합으로 표현하는 것을 연속시간 푸리에 급수(CTFS, Continuous-Time Fourier Series)라고 한다.

 

삼각함수에 의한 연속 시간 푸리에 급수

  • 연속 시간 주기 신호의 CTFS를 삼각함수식으로 일반화하면 다음과 같이 나타낼 수 있다.

 

  • 여기서 각 항의 계수는 다음과 같으며, CTFS 계수(CTFS Coefficient)라고 부른다.

 

  • 여기서 `\sigma_{T}`는 주기신호 `x(t)`의 한 주기 동안의 적분을 의미한다.
  • `w_{0}`는 기본 라디안 주파수(Fundamental Radian Frequency)를 나타내며, 주기가 `T_{0}`이면 `f_{0} = \frac{1}{T_{0}}` 이다.
  • 푸리에 급수를 구성하는 각 항의 신호들을 기저 신호(Basis Signal)라 하며, 이와 같은 기저 신호들로 구성되는 정현파 신호들은 기본 주파수 `f_{0}`의 정수배인 고조파 신호(Harmonic Signal)들이다.
    • 고조파 신호들은 서로 직교(Orthogonal)하는 성질을 가지고 있다.

 

복소 지수에 의한 연속 시간 푸리에 급수

  • 삼각 함수에 의한 연속 시간 푸리에 급수는 사인 항과 코사인 항의 가중합으로 표현된다.

 

  • 오일러 공식을 적용하면 두 번째 항과 세 번째 항은 다음과 같이 된다.

 

  • 그러므로 삼각함수 신호에 의한 CTFS식은 복소지수함수 신호에 의한 식과 같이 가중합 항이 하나 뿐인 매우 간편한 식으로 표현할 수 있게 된다.

 

  • `c_{k}`는 복소지수 형태의 연속 시간 주기 신호에 대한 CTFS 계수이다.

 

연속 시간 푸리에 변환(CTFT, Continuous-Time Fourier Transform)

  • 현실에서의 실질적인 신호들은 대부분이 주기 신호가 아닌 비주기 신호들이다.
  • 따라서 비주기신호들의 주파수 성분을 찾는 방법이 필요하며, 연속 시간 푸리에 변환(CTFT, Continuous-Time Fourier Transform)을 사용한다.
  • 비주기신호는 기본 주기가 무한대인 주기 신호라고 가정할 수 있으며, 시간 영역에서 주기를 무한대로 접근시키면, 주파수 영역에서는 주파수 선 간격이 0으로 줄어들어 극한으로는 모든 선이 연결되는 연속 스펙트럼이 된다.

 

import numpy as np
import matplotlib.pyplot as plt

w = np.arange(-2 * np.pi, 2 * np.pi, 0.1)    # 주파수축 설정
N = len(w)    # 전체 주파수축 길이
Xw = np.zeros(N)    # CTFT 결과 계수 저장 배열
T = 1    # 주기를 1로 둔다.
for i in range(-int(N/2), int(N/2)) :    # x축의 N개의 주파수 성분에 대하여
    if i == 0 :
        Xw[i + int(N/2)] = 1    # 싱크함수 f=0에서의 조건
    if i != 0 :
        Xw[i + int(N/2)] = np.sin(i * T/2) / (i / 2)    # CTFT 계수 X(f) 계산

plt.plot(w, Xw, "blue")    # 연속선 그리기
plt.stem(w, Xw, "blue")    # 불연속선 그리기
plt.grid()    # 눈금 그리기
plt.xlabel("w, fequency in radians")    # x축 레이블 넣기
plt.ylabel("X(w)")  # y축 레이블 넣기
plt.title("CTFT, of a non-periodic signal")    # 제목 넣기
728x90
그리드형(광고전용)

'In-depth Study > Signal Processing' 카테고리의 다른 글

디지털 신호 처리 개요  (0) 2022.06.14
⚠️AdBlock이 감지되었습니다. 원할한 페이지 표시를 위해 AdBlock을 꺼주세요.⚠️
starrykss
starrykss
별의 공부 블로그 🧑🏻‍💻


📖 Contents 📖