전자파가 이용하는 주파수(RF, Radio Frequency)는 독립적인 통신을 보장하게 하는
유한하고 유용한 자원으로 볼 수 있다. 그래서 국내뿐아니라 세계적으로도 RF를 효율적으로 개발하려 하고, 또한 엄격한 기준으로 관리를 하고 있다.
이렇게 중요한 RF의 효율적인 활용계획은 과학자들끼리 잘 할테니 각설하고, 여기서는 RF를 잘 이해하고, 측정할 수 있는 도구~! 바로 스펙트럼 분석기에 대해서 알아보도록 한다.^^;
위에 화면이 바로~ 스펙트럼 분석기의 모니터화면이다.
오실로스코프가 시간에 따른 파형변화를 관찰했다면, 스펙트럼 분석기는 주파수에 따른 스펙트럼을 관찰할 수 있다. 일반적으로 스펙트럼의 크기 단위는 전력[W]이지만, dBW, dBm 등 으로 보기 쉽게 변환하여 사용한다.
그럼 스펙트럼을 구하는 원리는 무엇일까?ㅎ
Matlab에서는 놀라울 정도로, 단 몇줄의 명령어로 간단히 찾아 준다.
물론 컴퓨터는 바쁘게 행렬계산을 돌리긴 하지만,,,
먼저 두개의 Tone 신호(SNR=10dB)를 가정하고, 사각윈도우와 flattop윈도우를 적용한 스펙트럼 분석결과를 비교해 보기로하자!
N=2^6; n=0:N-1; f1=5; f2=16; s=5*cos(2*pi*f1*n/N+pi/6)+10*sin(2*pi*f2*n/N+pi/3); sp=sum(s.^2)/N; % 전력 sp=var(s) 분산 SNR=10; SNR_dB=10*log10(SNR); np=sp/SNR; noise=sqrt(np)*randn(1,N); % np=sum(n.^2)/N , std(randn)=1 r=s+noise; k=n-N/2; % sampling freq fs=2*max(k) Ck=1/N*r*exp(-i*2*pi*(n')*k/N); % =1/N*fft(x, N) figure(1), subplot(4,1,1), plot(n, r) subplot(4,1,2), plot(k, abs(Ck)) rr=xcorr(r, 'unbiased'); rr=rr(N/2:end-N/2); % 1/N*xcorr(r) subplot(4,1,3), plot(n,rr) w=window(@flattopwin, N); w=w'; RRf=1/(4*length(rr))*fftshift(fft(rr,4*length(rr))); x=w.*rr; Xf=1/(4*length(x))*fftshift(fft(x,4*length(x))); kk=k(1):1/4:k(end)+3/4; subplot(4,1,4), plot(kk, abs(RRf)) figure(2), plot(kk, 10*log10(abs(RRf)), kk, 10*log10(abs(Xf)), 'r'), ylim([-30 10]) |
s의 자기상관함수를 x 라고하면, Xf는 이산푸리에변환(DFT)을 한 것이다.
구해진 복소수 행렬 Xf의 절대값을 화면에 뿌리면, 스펙트럼 분석기처럼 얼추 비슷한 화면(PSD, Power Spectrum Density)을 관찰할 수 있다. 저 커다랗고, 복잡해 보이는 분석기도 알고보면, 이런 기능을 수행하기 위한 장비일 뿐이다. ㅎㅎ
그럼 이제 스펙트럼 분석기의 여러가지 조건 RBW, Sweep time, VBW에 대하여 각개격파를 실시하겠다. 맨위에 실제 분석기의 캡처화면에 나와있는 조건값들을 Matlab 코드와 비교하면서 설명하도록 한다.
|
일단, 주파수 범위(k)는 중심주파수 500MHz를 중심으로 300KHz, 맨위 레벨이 -40dBm, 샘플포인트(N)가 601개 라는 것을 알 수 있다.
Resolution Bandwidth(RBW)은 관찰할 수 있는 주파수 해상도이다.
중간주파수(IF) 필터는 측정신호를 검출, conv(Xf, RBW)하기 위해서 대역통과필터를 사용하는데, 이 필터의 대역폭이 RBW이라고 한다. 작을 수록 더 촘촘하고 정밀한 스펙트럼을 얻는다. 대신 좀더 많은 샘플포인트(N)를 요구하게 되어 측정데이터시간(≒sweep time)도 길어진다.
△f =fs / N=1/(N*T)
△f =fs / N = 300KHz / 600 = 500Hz , RBW =5.4*500Hz = 2700Hz
△f =fs / N = 300KHz / 600 = 500Hz , RBW =5.4*500Hz = 2700Hz
여기서 RBW은 정규화된 천이폭을 곱한다. 여기서는 5.4 정도인데, 곱하는 이유는 주엽이 넓어지더라도 부엽들의 값으로 인해 저지대역을 더 감쇠시킬 목적이다.
참고로, 아날로그 신호를 DFT로 구하는 과정(윈도우 함수를 적용하는 과정)에서 오차가 발생할 수 밖에 없다. 누설현상을 최소화하기 위해서 델타함수와 가장 가까운 모양이 되는 윈도우를 선택하여야 한다.
사각(Rectangular) 윈도우
flat top 윈도우
또, Ck=1/N*fft(x, N)에서 △k 가 커지면 N이 줄어들어 c가 커진다. 그러므로 RBW이 10배 커지면, 노이즈 레벨도 10배 증가한다.
Video Bandwidth(VBW)은 스펙트럼 분석기 화면상의 디스플레이를 위한 기능이다. 저역통과필터로 구성되어 있어, 파형의 급격한 변화를 제거하여 파형을 완만하게 만들어서 불필요한 잡음 또는 오차성분을 걸러내는 역할을 한다.
Sweep time(T_sweep) 은 신호 처리하고, 한장의 화면에 완전히 뿌려주는 시간을 의미한다. 초당 1/T_sweep 회 화면이 전환된다.
T_sweep=kf * (1/RBW) * (Span / RBW)
kf=1이라 하고 대략적인 검증을 해보면, 0.0496 ≥ (1/2700)*(300*10^3)/2700 =0.0411
이젠 실전에서, 주파수해상도를 높이는 것과 시간에 따른 스펙트럼변화 사이에서 절충하여, 적당한 분석기 조건으로 측정해야 할것이다.~~!
댓글 없음:
댓글 쓰기