구형파를 주파수영역에서 보면 우수성분(even component)의 주파수는 0이고 기수성분(odd component)의 유한한 주파수 성분을 볼 수있는데 가장 처음의 성분을 기본 주파수(fundamental frequency)라 하고 나머지 성분들을 n-차 하모닉(harmonic)성분이라고 한다. [그림 1]에 보인 예처럼 1GHz의 구형파 신호를 주파수 영역에서 보면 1GHz에서 기본 주파수를 볼 수 있고 3GHz, 5GHz, 7GHz... 등에서 그 3차, 5차, 7차하모닉을 볼 수 있다. 기본 주파수와 하모닉의 진폭은 푸리에 계수(Fourier Coefficient)에 의해 결정되며 시간영역에서 전압진폭이 1V일 경우 n 이 하모닉 수이면 하모닉 진폭 Ao = 4/(π n)가 된다. [그림 1]의 아래에 보인 그래프를 주파수 스펙트럼(frequency spectrum)이라고 하는데 이것이 의미하는 바는 스펙트럼에서 보여진 모든 주파수성분을 갖는 정현파(sinusoidal waveform)들을 합하면 1GHz의 구형파가 생성된다는 것이다.
[그림 1]
각각의 스펙트럼 성분들을 시간영역에서 다시 보이면 [그림 2]와 같다. 그림에서 보는 것처럼 먼저 기본 주파수(fundamental frequency)인 1GHz의 sine파형으로 시작해서 각각의 하모닉성분들을 합해갈 수록 1GHz 구형파에 가까워 짐을 알 수 있다. [그림 2]에서 보여진 예는 [그림 1]의 주파수 스펙트럼에서 보여진 것처럼 19번째 하모닉인 19GHz sine파형까지 합한 경우이다. 이 말을 달리 표현하면 [그림 2]의 신호는 19GHz의 주파수 대역(frequency bandwidth)을 갖는 구형파라고도 할 수 있다. 여기서 또 한가지 알 수 있는 것은 고주파수의 성분들이 합해질수록 신호의 상승시간(rise time)이 빨라진다는 것이다. 즉, 상승시간이 빠를수록 그 신호안에는 보다 더 많은 고주파성분을 가지고 있다는 것이다. 상승시간을 가지고 얼마나 높은 주파수 성분이 들어있나 알아 볼 수 있는 방법이 바로 지난 시간에 설명한 FBW = 0.35/Tr 또는 Tr = 0.35/FBW 이다.
[그림 2]
## 구형파의 Fourier Series(Python 2.7)
## Written by SimplyPHY
from numpy import *
from pylab import *
import matplotlib.pyplot as plt
L = 1000
N = 2*L
M = 10
d = 100
Xk = fft(xn,N) # 구형파의 FFT
for s in range(1,N):
Hk[s]=2*real(Xk[s])/(s*pi)
plt.subplot(211)
plot(xn)
ylim(-1.1, 1.1)
xticks(arange(0, N, N/xtick_intval), arange(0, N/N+1/xtick_intval, N/xtick_intval/N))
xlabel('Time(nsec)')
ylabel('Voltage(V)')
plt.subplot(212)
stem(arange(0,N/d),abs(Hk[0:len(Hk)/d]))
xlabel('Frequency(GHz)')
ylabel('Harmonic Amplitude')
t=arange(-pi,pi,1.0/N)
x = zeros((len(t)))
y = zeros((M+1, len(t))) # 푸리에급수를 저장할 2차원 matrix
# 퓨리에급수
for i in range(1,2*M,2):
x = x + 4/pi*sin(i*t)/i
y[(i+1)/2,:] = x
yy = len(y.T)
plt.figure()
plot(y[1:M:1,:].T)
xlim(0, 1.1)
xticks(arange(0, yy+yy/xtick_intval, yy/xtick_intval), arange(0, yy/yy+1/xtick_intval, yy/xtick_intval/yy))
xlabel('Time(nsec)')
show()
댓글 없음:
댓글 쓰기