본문 바로가기
Development/Signal Processing

[디지털 신호처리]매트랩으로 FDM된 신호 분리하기

by 다봄이 2020. 8. 7.

FDM : Frequency Distribution Modulation

작년 DSP 프로젝트 발표 ppt에서 발췌. 정확한 출처는 까먹음.

한국어로는 주파수 분할 다중화라 한다.여러 신호를 다른 주파수로 다중화하여 한 채널로 전송하는, 전송채널 대역폭의 효율을 높이기 위한 기술이다.

 

반대로 주파수 분할 다중화된 하나의 신호를 필터링을 거쳐 분리하는 과정을 DFDM(역다중화)라고 한다.

 

 


주어진 조건은 다음과 같다.

 

주어진 신호 xFDM[n] : FDM된 신호의 .mat 파일, 96kHz로 샘플링.
원래 신호 x(t) : 4kHz로 대역제한됨.
캐리어 주파수 f1 : 4kHz
캐리어 주파수 f2 : 12kHz
... 
X1=length(signal_LPF); t
ime_carrier=[0:Ts:Ts*(X1-1)]; %carrier를 생성을 위한 Time의 범위지정 
carrier=cos(2*pi*f1*time_carrier); %carrier를 생성 
carrier1=carrier'; % 행,열을 바꿈, 곱셈을 위해서 
X2=signal_LPF.*carrier1; %low pass 필터를 통과시킨 신호를 복조 
D_out=conv(X2,LPF); %복조된 신호를 low pass 필터를 통과시킴 
X2=500*D_out; %진폭 확대 
sound(X2,fs); %음악 확인 
...

4kHz의 저주파 캐리어 주파수를 갖는 신호를 복원하기 위해서는 LPF 필터를 사용한다.

LPF는 버터워스 필터를 이용하는 것이 일반적이지만, 당시 이를 수업시간에 배우지 않았기 때문에 sinc함수의 특징을 이용하여 LPF를 구현하였다. 차단주파수는 계산하여 8kHz로 결정되었다.

 

... 
HP=[zeros(1,10000) ones(1,6000) zeros(1,2000)]; % 주파수 영역 High Pass Filter 설계 
HPF=fftshift(HP); % 시간영역 High Pass Filter 설계를 위한 푸리에 변환 
Y2_1=conv(Ys,HPF); % 음악 신호를 high pass filtering(컨볼루션) 
time_carrier1=[0:1/fs:1/fs*(length(Y2_1)-1)]; % f2캐리어의 시간 영역 설정 
carrier1=cos(2*pi*f2*time_carrier1); % f2 캐리어 설정 
carrier1=carrier1'; % 행,열을 바꾸기 곱셈 하기위해 
Y2_2=Y2_1.*carrier1;% 필터링된 음악 신호 복조 
Y2=conv(Y2_2,LPF); % 복조된 신호를 저역대역 필터링을 통해 고주파수 성분 제거 
Y2=100*Y2; %진폭 확대 
sound(Y2,fs); %음악 확인 
...

12kHz의 캐리어 주파수를 갖는 신호를 복원할 땐 편의상 HPF를 사용하였다.

 

 

 


 

결과 신호

FDM된 신호, 4kHz로 복원된 신호, 12kHz로 복원된 신호.

 

 

 

 

첫 번째 신호는 Chris De Burge의 'The Girl with April in Her Eyes'라는 노래였다.

 

두 번째 신호는 이소라의 '겨울, 이별'이라는 곡이다.

 


사실 위 프로젝트는 굉장히 기본적인 FDM신호의 분리 방법이다. 주어진 조건대로라면 IFFT를 하여 임펄스 응답을 구하고, 시간축에서 shift하고 truncation하여 casual FIR필터의 임펄스 응답을 구하는 과정을 거쳐야 한다.

 

댓글