
서강대학교 고급전자회로실험 결과 보고서
생성
'periodogram' 함수는 입력 신호의 power spectral density(PSD)를 계산하는 MATLAB 함수이다. PSD는 신호의 주파수 스펙트럼을 나타내는데, 주파수 영역에서 신호의 전력 분포를 보여준다.
'periodogram' 함수는 다음과 같은 형태로 사용된다:
[pxx, f] = periodogram(x, window, f, fs)
여기서 'x'는 입력 신호, 'window'는 창 함수, 'f'는 주파수 벡터, 'fs'는 샘pling 주파수이다.
'periodogram' 함수의 주요 특징은 다음과 같다.
1. 입력 신호 'x'의 PSD를 계산하여 'pxx'로 반환한다. 'pxx'는 주파수 성분들의 전력 스펙트럼을 나타낸다.
2. 'f'는 주파수 벡터로, 계산된 PSD에 대한 주파수 축을 제공한다. 'f'의 길이는 최소 2개 이상이어야 한다.
3. 'window' 매개변수를 사용하여 창 함수를 적용할 수 있다. 창 함수는 누설 효과(leakage effect)를 줄이기 위해 사용된다. 보통 'window'를 비우면 자동으로 직사각형 창 함수가 적용된다.
4. 'fs'는 입력 신호의 샘플링 주파수이다. 이 값을 제공하면 'f'의 단위가 Hz로 표현된다.
따라서 'periodogram' 함수는 입력 신호의 주파수 스펙트럼 분석에 유용하게 사용될 수 있다. 신호의 주요 주파수 성분을 파악하거나, 노이즈 레벨 및 전력 분포를 확인하는 등의 용도로 활용할 수 있다.
hilbert 변환은 time domain에서의 임펄스 응답은 h(t)= { 1} over { pit }이고 frequency domain에서의 임펄스 응답은 H(w)=-jsgn(w)이다. 따라서 입력 신호 x(t)를 hilbert 변환하는 것은 임펄스 응답과 x(t)를 convolution하는 것이고 hat{x} (t)= {1} over {pit } *x(t)이다. Frequency domain에서는 hat { X}(w)=-jsgn(w)X(w)이다. 이는 신호의 주파수를 ?90도 만큼 delay시키는 선형 연산이다. 따라서 matlab에서 hilbert 함수는 message signal을 ?90도 만큼 delay시킨다. 사용 방법은 다음과 같다. x = hilbert(xr) xr은 message signal으로 hilbert 함수를 사용하면 x=xr+i*xi을 반환하게 되는데 여기서 실수부인 xr은 message signal을 나타내고 허수부인 xi는 hilbert 변환이 이루어진 성분이다. 이 실수부와 허수부의 위상차를 살펴보면 90도가 나타나게 된다."
ylim 함수는 그래프의 y축 범위를 설정하는 함수이다. "ylim 함수는 그래프의 축의 limit을 설정해주는 함수이다. 즉 그래프를 확인할 때 y 값을 원하는 범위에서 볼 수 있게 한다. 사용 방법은 ylim([-2 2])와 같이 사용하며 이는 y축의 범위를 -2부터 2까지로 제한한다."라고 할 수 있다.
제공된 문서에 따르면, x(t)의 파형과 스펙트럼에 대한 내용은 다음과 같다.
x(t)의 파형은 3개의 sine 함수로 구성되어 있다. 각 sine 함수의 주기와 진폭이 서로 다르기 때문에, x(t)의 파형은 복잡한 모양을 보인다. 이러한 복잡한 파형은 sine 함수의 최소 공배수 주기만큼 반복되는 것을 확인할 수 있다.
x(t)의 스펙트럼을 살펴보면, 1kHz, 750Hz, 500Hz에서 피크가 나타나는 것을 알 수 있다. 이는 x(t)에 포함된 주파수 성분이 이 주파수들임을 의미한다. 즉, x(t)는 3개의 주파수 성분으로 구성된 복합 신호라고 할 수 있다.
이를 통해 x(t)는 3개의 sine 함수로 이루어진 복잡한 파형이며, 이 복합 신호의 주파수 구성은 1kHz, 750Hz, 500Hz라고 볼 수 있다.
'1.2.2. DSB Signal Generation'
입력 신호 x(t)의 파형과 스펙트럼을 확인한 후 이를 사용하여 DSB(Double Sideband) 신호를 생성하였다. 여기서 DSB 신호는 반송 주파수 f_c를 이용하여 x(t)를 변조한 신호로, 기저대역 신호인 x(t)의 상단 및 하단 대역(Upper Sideband, Lower Sideband)이 반송 주파수 f_c를 중심으로 생성된다.
우선, 샘플링 주파수 f_s = 10kHz, 시간 t = 0 ~ 0.1초 구간에서 x(t)의 파형을 plot하였다. x(t)는 3개의 sine 함수로 구성되어 있으며, 각각의 주기와 진폭이 다르다. 따라서 x(t)의 파형에는 이러한 특성이 반영되어 나타나게 된다.
다음으로 x(t)의 스펙트럼을 확인하기 위해 periodogram 함수를 사용하였다. 그 결과, x(t)의 주파수 성분이 1kHz, 750Hz, 500Hz에서 높게 나타나는 것을 알 수 있다.
이러한 x(t)를 f_c = 2.5kHz의 반송 주파수로 DSB 변조하여 s_DSB(t)를 생성하였다. 왼쪽의 그래프를 보면 입력 신호 x(t)가 envelope가 되어 반송 주파수 2.5kHz로 변조된 s_DSB(t)가 나타나 있다. 실선은 x(t), 점선은 s_DSB(t)를 나타낸다.
오른쪽의 스펙트럼을 보면, 입력 신호 x(t)의 스펙트럼이 반송 주파수 2.5kHz를 중심으로 양측 대역(Upper Sideband, Lower Sideband)에 나타나는 것을 확인할 수 있다. 즉, x(t)의 주파수 성분들이 반송 주파수 2.5kHz를 기준으로 상하 대칭적으로 이동하여 DSB 신호가 생성된 것이다.
따라서 입력 신호 x(t)를 반송 주파수 f_c로 DSB 변조하면 x(t)의 스펙트럼이 f_c를 중심으로 상하 대칭적으로 나타나는 DSB 신호 s_DSB(t)가 생성된다고 할 수 있다.
'1.2.3. x(t)'s Spectrum and z(t)'s Spectrum'
Matlab의 hilbert 함수를 사용하면 입력 신호 x(t)에 대해 해당 신호의 Hilbert 변환 ĥ(x)(t)를 구할 수 있다. Hilbert 변환은 시간 영역에서 입력 신호 x(t)와 convolution 관계에 있는 신호로, 주파수 영역에서는 x(w)에 곱셈 관계(-j sign(w))에 있다.
따라서 입력 신호 x(t)의 Hilbert 변환 ĥ(x)(t)를 구하면, x(t)와 ĥ(x)(t)는 주파수 영역에서 서로 직교하는 관계를 가지게 된다. 이는 x(t)와 ĥ(x)(t)의 푸리에 변환인 X(w)와 Ĥ(w)가 각각 실수부와 허수부를 구성하게 됨을 의미한다.
즉, z(t) = x(t) + j ĥ(x)(t)는 x(t)의 복소 표현으로, 주파수 영역에서 Z(w) = X(w) + j Ĥ(w)가 된다. 따라서 X(w)와 Ĥ(w)는 서로 직교하는 관계를 가지게 된다.
이러한 복소 표현 z(t)의 스펙트럼 Z(w)를 살펴보면, 양의 주파수 영역에서는 X(w)가 유지되고 음의 주파수 영역에서는 -X(w)가 나타나게 된다. 즉, 입력 신호 x(t)의 스펙트럼 X(w)가 음의 주파수 영역까지 확장된 형태가 된다. 이는 복소 신호 z(t)의 스펙트럼 Z(w)가 실수 입력 신호 x(t)의 스펙트럼 X(w)에 비해 2배 더 넓은 주파수 대역을 차지하게 됨을 의미한다.
따라서 입력 신호 x(t)의 스펙트럼 X(w)와 복소 표현 z(t)의 스펙트럼 Z(w)를 비교하면, Z(w)가 X(w)에 비해 더 넓은 주파수 대역을 가지며 양의 주파수 영역에서는 X(w)와 동일하지만 음의 주파수 영역에서는 -X(w)가 나타나는 것을 확인할 수 있다.
x(t)의 USB 성분을 f_c 주파수로 up-conversion하여 s_(t)를 생성하는 과정은 다음과 같다.
먼저, x(t)의 USB 성분을 추출하기 위해 z=hilbert(x)를 사용한다. hilbert 변환은 입력 신호 x(t)를 +90도 지연시킨 신호 hat{x}(t)를 생성한다. 즉, z(t)=x(t)+j hat{x}(t)가 된다. 이때 z(t)의 실수부는 x(t)이고 허수부는 hat{x}(t)가 된다. 따라서 z(t)의 실수부인 x(t)의 USB 성분을 추출할 수 있다.
다음으로, s_(t)=z(t)e^(j2πf_ct)와 같이 USB 성분 z(t)에 반송파 e^(j2πf_ct)를 곱하여 up-conversion을 수행한다. 이렇게 생성된 s_(t)는 x(t)의 USB 성분이 반송파 f_c로 변조된 신호가 된다.
이에 대한 block diagram과 MATLAB 코드, 그리고 spectrum은 다음과 같다.
block diagram:
x(t) -> Hilbert Transform -> z(t) = x(t) + j hat{x}(t)
-> s_(t) = z(t)e^(j2πf_ct)
MATLAB 코드:
x_p = real(hilbert(x)); % x(t)의 USB 성분 추출
s_p = x_p .* exp(1i*2*pi*fc*t); % USB 성분에 반송파 곱하기
spectrum:
x_p의 spectrum에서는 오직 양의 주파수 대역만 존재하고, s_p의 spectrum에서는 반송파 주파수 f_c를 중심으로 USB 성분이 나타난다.
즉, x(t)의 USB 성분을 hilbert 변환을 통해 추출하고, 이를 반송파 e^(j2πf_ct)와 곱하여 up-conversion함으로써 s_(t)를 생성할 수 있다.
x(t)의 LSB 성분을 반송 주파수로 up-conversion하여 s-(t)를 생성하는 방법으로 다음과 같은 두 가지 과정을 거친다.
먼저, x(t)의 USB성분과 LSB성분은 서로 켤레복소수 관계를 가진다. LSB성분을 추출하기 위해 먼저 z=hilbert(x)를 사용하여 x(t)의 USB성분인 x+(t)를 추출한다. 그다음으로 LSB성분을 추출하기 위해 x+(t)를 conj()함수를 사용하여 LSB성분인 x-(t)를 추출한다.
다음으로 s-(t)=x-(t)e^(j2πf_ct)이므로 LSB성분 x-(t)에 e^(j2πf_ct)를 곱한다. 이에 관한 block diagram과 matlab code, spectrum은 다음과 같다.
block diagram을 보면, x(t)의 USB 성분을 추출하기 위해 hilbert 변환을 수행하고, 그 결과에서 복소공액을 취해 LSB 성분 x-(t)를 구한다. 그리고 이를 반송 주파수 f_c로 up-conversion하여 s-(t)를 생성한다.
matlab code를 보면, 먼저 hilbert 함수를 통해 x(t)의 USB 성분 x+(t)를 구하고, conj() 함수를 이용해 LSB 성분 x-(t)를 구한다. 그리고 이에 e^(j2πf_ct)를 곱하여 s-(t)를 생성하고 있다.
s-(t)의 spectrum을 살펴보면, 반송 주파수 f_c를 기준으로 LSB 성분이 up-conversion된 것을 확인할 수 있다. 이는 x(t)의 LSB 성분이 반송 주파수로 옮겨졌음을 의미한다.
따라서 x(t)의 LSB 성분을 반송 주파수로 up-conversion하여 s-(t)를 생성하는 과정은 다음과 같이 요약할 수 있다.
1. hilbert 변환을 통해 x(t)의 USB 성분 x+(t)를 추출한다.
2. 복소공액을 통해 x+(t)로부터 LSB 성분 x-(t)를 구한다.
3. x-(t)에 e^(j2πf_ct)를 곱하여 s-(t)를 생성한다.
4. s-(t)의 spectrum 분석을 통해 LSB 성분이 반송 주파수로 up-conversion된 것을 확인한다.
USB 변조 신호인 s(t)는 입력 신호 x(t)와 그에 대한 Hilbert 변환 ĥ(x)(t)를 이용하여 생성할 수 있다. 먼저 밑에서 생성한 s+(t)의 Real 부분을 취하면 s(t) = Re{s+(t)} = x(t)cos(wct) - ĥ(x)(t)sin(wct)가 된다.
이때 s(t)의 스펙트럼을 살펴보면 다음과 같다. s(t)의 Fourier 변환은 S(w) = [X(w-wc) + X(w+wc)]/2 - j[H(w-wc) - H(w+wc)]/2가 된다. 여기서 H(w)는 x(t)의 Hilbert 변환 ĥ(x)(t)의 Fourier 변환이다.
X(w-wc)와 X(w+wc)는 각각 x(t)의 USB와 LSB 스펙트럼 성분이다. 그리고 H(w-wc)와 H(w+wc)는 이들 USB와 LSB 성분에 대한 Hilbert 변환 성분이다.
따라서 s(t)의 스펙트럼은 USB와 LSB 성분을 포함하게 되며, 이때 USB와 LSB의 크기는 각각 [X(w-wc) + X(w+wc)]/2, -j[H(w-wc) - H(w+wc)]/2가 된다. 즉, USB와 LSB 성분은 x(t)와 ĥ(x)(t)의 합성된 결과로 나타난다.
즉, s(t) = x(t)cos(wct) - ĥ(x)(t)sin(wct)를 생성함으로써 x(t)의 USB 변조 신호를 얻을 수 있으며, 이에 대한 스펙트럼 분석을 통해 USB와 LSB 성분을 확인할 수 있다.
matlab의 hilbert 함수는 z=hilbert(x)로 사용할 경우 z(t)=x(t)+j ĥ(x)(t)를 반환한다. 여기서 ĥ(x)(t)는 x(t)의 Hilbert transform이다. Hilbert transform은 시간 영역에서의 임펄스 응답이 h(t) = {1}/{πt}이고 주파수 영역에서의 임펄스 응답이 H(ω) = -jsgn(ω)이다. 따라서 입력 신호 x(t)를 Hilbert 변환하는 것은 임펄스 응답 h(t)와 x(t)를 convolution하는 것과 같으며, ĥ(x)(t) = {1}/{πt} * x(t)이다. 주파수 영역에서는 ĥ{X}(ω) = -jsgn(ω)X(ω)이다. 이는 신호의 주파수를 -90도 만큼 지연시키는 선형 연산이다.
matlab에서 hilbert 함수를 사용하면 입력 신호 x(t)의 Hilbert transform인 ĥ(x)(t)를 추출할 수 있다. 이를 통해 x(t)의 실수부와 허수부를 각각 얻을 수 있으며, 두 성분의 위상차가 약 90도 나타나는 것을 확인할 수 있다. 이러한 Hilbert transform 특성을 활용하면 입력 신호 x(t)의 amplitude와 phase를 분리하여 분석할 수 있다.
또한 Hilbert transform은 신호의 해석적 신호(analytic signal)를 얻는데 사용된다. 복소평면 상에서 실수부가 원신호 x(t), 허수부가 Hilbert transform ĥ(x)(t)인 복소 신호 z(t) = x(t) + j ĥ(x)(t)를 생성할 수 있다. 이 복소...
해피캠퍼스는 구매자와 판매자 모두가 만족하는 서비스가 되도록 노력하고 있으며, 아래의 4가지 자료환불 조건을 꼭 확인해주시기 바랍니다.
파일오류 | 중복자료 | 저작권 없음 | 설명과 실제 내용 불일치 |
---|---|---|---|
파일의 다운로드가 제대로 되지 않거나 파일형식에 맞는 프로그램으로 정상 작동하지 않는 경우 | 다른 자료와 70% 이상 내용이 일치하는 경우 (중복임을 확인할 수 있는 근거 필요함) | 인터넷의 다른 사이트, 연구기관, 학교, 서적 등의 자료를 도용한 경우 | 자료의 설명과 실제 자료의 내용이 일치하지 않는 경우 |