KR101980649B1 - 디지털 신호 처리 장치 - Google Patents

디지털 신호 처리 장치 Download PDF

Info

Publication number
KR101980649B1
KR101980649B1 KR1020180109639A KR20180109639A KR101980649B1 KR 101980649 B1 KR101980649 B1 KR 101980649B1 KR 1020180109639 A KR1020180109639 A KR 1020180109639A KR 20180109639 A KR20180109639 A KR 20180109639A KR 101980649 B1 KR101980649 B1 KR 101980649B1
Authority
KR
South Korea
Prior art keywords
matrix
signal
quot
unit
module
Prior art date
Application number
KR1020180109639A
Other languages
English (en)
Inventor
안우현
송장훈
강종진
정웅
Original Assignee
한화시스템 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한화시스템 주식회사 filed Critical 한화시스템 주식회사
Priority to KR1020180109639A priority Critical patent/KR101980649B1/ko
Application granted granted Critical
Publication of KR101980649B1 publication Critical patent/KR101980649B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • H04L1/0047Decoding adapted to other signal detection operation
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S13/00Systems using the reflection or reradiation of radio waves, e.g. radar systems; Analogous systems using reflection or reradiation of waves whose nature or wavelength is irrelevant or unspecified
    • G01S13/88Radar or analogous systems specially adapted for specific applications
    • G01S13/89Radar or analogous systems specially adapted for specific applications for mapping or imaging
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M1/00Analogue/digital conversion; Digital/analogue conversion
    • H03M1/12Analogue/digital converters
    • H03M1/124Sampling or signal conditioning arrangements specially adapted for A/D converters
    • H03M1/1245Details of sampling arrangements or methods
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • H04L1/0052Realisations of complexity reduction techniques, e.g. pipelining or use of look-up tables

Landscapes

  • Engineering & Computer Science (AREA)
  • Remote Sensing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Electromagnetism (AREA)
  • General Physics & Mathematics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

본 발명은 아날로그 신호를 디지털 신호로 변환하는 아날로그-디지털 컨버터; 상기 디지털 신호를 시간 기반에서 주파수 기반으로 변환하는 고속 퓨리에 변환기; 상기 고속 퓨리에 변환기의 출력을 하나의 행렬 신호로 정렬하는 정렬부; 및 상기 정렬부로부터 입력된 행렬 신호로부터 압축 신호를 탐지하고 원신호로 복원하는 복원부를 포함하는 디지털 신호 처리 장치를 제시한다.

Description

디지털 신호 처리 장치{Digital signal processing device}
본 발명은 신호 처리 장치에 관한 것으로, 특히 압축 센싱(compressive sensing) 이론이 적용된 수신기에서 레이더와 통신 신호를 탐지하고 복원하는 디지털 신호 처리 장치에 관한 것이다.
이스라엘 테크니온 공과대학의 엘다(Eldar) 교수팀은 주파수 대역이 제한된 신호에 대해 원신호의 대역폭보다 2배 이상의 속도로 표본화해야 원신호를 복원할 수 있다는 나이퀴스트(Nyquist) 표본화 이론을 뒤엎는 혁신적인 잼플링(Xampling) 수신기를 발표하였다. 압축센싱 이론이 적용된 이 수신기는 다수의 원신호를 나이퀴스트율보다 낮게 표본화 하더라도 원신호를 디지털 신호처리를 통해 복원할 수 있어 넓은 주파수 대역에 걸쳐 있는 신호를 고속의 아날로그 디지털 변환기(analog to digital converter; ADC)없이 저속의 ADC를 통해 수신할 수 있는 장점이 있다.
잼플링 수신기와 같은 압축센싱 이론이 적용된 수신기는 크게 고주파 신호를 의사 랜덤 패턴과 혼합하여 신호를 압축하는 아날로그단과, 아날로그 신호를 디지털 신호로 변환하여 원신호로 복원하는 디지털단으로 나눌 수 있다. 디지털단에 적용되는 신호처리 방법은 압축 신호에 더해진 잡음을 제거하거나 신호의 세기를 조절하는 전처리 부분과, 직교 매칭 추구(Orthogonal matching pursuit; 이하 OMP) 알고리즘을 토대로 압축 신호를 탐지하고 복원하는 두 부분으로 나눌 수 있다. 한편, OMP 알고리즘을 주문형 반도체(ASIC) 보다는 FPGA(field programmable gate array)를 대상으로 구현한 연구가 있다.
B. Knoop은 자일링스(Xilinx) 사의 C/C++ 언어 기반 RTL(register transfer logic) 로직 설계 도구인 비바도 HLS(Vivado high level synthesis)를 활용하였다. 변형된 그람-슈미트 QR 행렬 분해를 적용하여 압축신호를 복원하고, 이때 필요한 역행렬 계산에는 블록 단위 역행렬 방법을 적용하였다.
그리고, P. Blache와 H. Rabah은 변형된 촐레스키 분해를 적용하여 루트 연산 없이 역행렬을 계산하였다. 또한, P. Blache와 H. Rabah은 매트랩 시뮬링크(Matlab Simulink)을 토대로 하는 자일링스 시스템 제너레이터(Xilinx System Generator)를 활용하여 그래픽 인터페이스 환경에서 로직을 설계하였다.
그런데, 종래의 OMP 알고리즘을 구현한 RTL 로직은 센서를 통해 입력되는 압축 신호를 저장한 후 처리하는 방식으로 실시간 처리가 필요한 시스템에는 적용하기 어렵다. 또한, 하드웨어 디스크립션 랭귀지(hardware description language; HDL)를 활용하여 OMP를 로직으로 직접 설계할 경우 많은 시간과 비용이 소모되는 문제가 있다.
한국등록특허 제10-1727088호 한국공개특허 제2018-0049035호
Yonina C. Eldar, "Xampling: Signal Acquisition and Processing in Union of Subspaces", IEEE TRANSACTIONS ON SIGNAL PROCESSING, VOL.59, NO.10, OCTOBER 2011. B. Knoop, J. Rust, S. Schmale, D. Peters-Drolshagen, and S. Paul, "Rapid Digital Architecture Design of Orthogonal Matching Pursuit", 24th European Signal Processing Conference(EUSIPCO), pp. 1857-861, 2016. P. Blache, H. Rabah, and A. Amira, "High-Level Prototyping and FPGA Implementation of the Orthogonal Matching Pursuit Algorithm", 11th International Conference on Information Science, Signal Processing and their Applications(ISSPA), pp.1336-1340, July, 2012.
본 발명은 아날로그 신호를 디지털 신호로 변환하여 원신호로 복원하는 디지털 신호 처리 장치를 제공한다.
본 발명은 자일링스(Xilinx) FPGA로 구현되어 신호를 실시간으로 처리할 수 있는 디지털 신호 처리 장치를 제공한다.
본 발명은 데이터의 흐름을 고려한 RTL 로직 구조(dataflow)를 적용하고 입력 데이터를 병렬로 처리하여 압축 신호를 주파수 영역에서 실시간으로 처리할 수 있는 디지털 신호 처리 장치를 제공한다.
본 발명의 일 양태에 따른 디지털 신호 처리 장치는 아날로그 신호를 디지털 신호로 변환하는 다채널 아날로그-디지털 컨버터; 상기 디지털 신호를 시간 기반에서 주파수 기반으로 변환하는 고속 퓨리에 변환기; 상기 고속 퓨리에 변환기의 출력을 하나의 행렬 신호로 정렬하는 정렬부; 및 상기 정렬부로부터 입력된 행렬 신호로부터 압축 신호를 탐지하고 원신호로 복원하는 복원부를 포함한다.
상기 아날로그 디지털 컨버터는 상기 디지털 신호를 복수 채널로 출력하고, 상기 고속 퓨리에 변환기는 복수 마련되어 복수의 채널로 입력되는 디지털 신호를 각각 처리하며, 상기 정렬부는 복수의 고속 퓨리에 변환기의 출력을 입력으로 하여 하나의 행렬 신호로 정렬한다.
상기 복원부의 시작 주기(initial interval)는 상기 고속 퓨리에 변환기의 시작 주기에 따라 결정된다. 여기서, 시작 주기란 RTL 로직이 반복적으로 데이터를 입력 받을 때 입력 시점간의 차이를 의미한다.
상기 복원부는 적어도 둘 이상 마련된다.
전단의 복원부에서 탐지 및 복원한 압축 신호의 성분을 제거한 나머지 압축 신호를 후단의 복원부가 탐지 및 복원한다.
상기 정렬부와 첫번째 복원부 사이, 둘 이상의 복원부 사이, 마지막 복원부의 출력 중 적어도 하나에 마련된 데이터 저장부를 더 포함한다.
상기 적어도 둘 이상의 복원부 각각은, 압축 신호를 탐지하는 정합 모듈과, 상기 탐지 모듈에서 탐지된 압축 신호를 복원하는 복원 모듈과, 복원된 압축 신호 성분을 제거한 나머지 압축 신호를 생성하는 생성 모듈을 포함한다.
정렬부로부터 입력되는 행렬(Y)은 압축 신호가 소정 주파수 구간별로 나뉘어 구성된 형태로, 상기 정합 모듈은 행렬(Y)에서 가장 큰 에너지를 포함한 주파수 구간을, 즉 최대값을 갖는 데이터를 압축 신호로 탐지한다.
상기 정합 모듈은, 측정 행렬(A)을 정규화하고 켤레전치를 취한 행렬의 1행 부터 48행을 각각 취한
Figure 112018091235081-pat00001
과 나머지 행렬(Rk)을 곱하여 [수학식 1]의 상관 행렬(Z)을 구하는 제 1 정합 모듈과(이때, k=0 인 경우 Rk는 Y와 같다), 상관 행렬(Z)의 각 원소의 크기를 구하고 열 방향으로 더한 뒤 [수학식 2]의 값이 가장 큰 행의 번호 imax를 구하는 제 2 정합 모듈과, 제 2 정합 모듈에서 구한 행 번호 imax와 0㎐(DC)를 기준으로 대칭되는 번호를 구하여 [수학식 3]의 서포트 벡터(Sk, support vector; SV)를 구하는 제 3 정합 모듈을 포함한다.
[수학식 1]
Figure 112018091235081-pat00002
[수학식 2]
Figure 112018091235081-pat00003
[수학식 3]
Figure 112018091235081-pat00004
여기서, Ac는 측정 행렬(A)의 열 크기.
상기 복원 모듈은, 측정 행렬(A)에서 서포트 벡터에 해당하는 열만을 선택하여 [수학식 4]의 행렬(As)를 생성하는 선택 모듈과, 행렬(As)과 켤레전치를 취한 행렬
Figure 112018091235081-pat00005
을 이용하여 [수학식 5]의 C 행렬을 생성하는 C 행렬 모듈과, C 행렬의 역행렬을 구하는 역행렬 모듈과, 역행렬과 행렬
Figure 112018091235081-pat00006
로부터 [수학식 6]의 사영 행렬(G)을 구하는 G 행렬 모듈과, 사영 행렬(G)와 행렬(Y)를 이용하여 [수학식 7]의 복원 신호의 스펙트럼
Figure 112018091235081-pat00007
을 계산하는 X 행렬 모듈을 포함한다.
[수학식 4]
Figure 112018091235081-pat00008
[수학식 5]
Figure 112018091235081-pat00009
[수학식 6]
Figure 112018091235081-pat00010
[수학식 7]
Figure 112018091235081-pat00011
상기 생성 모듈은, 행렬(As)와 복원 신호의 스펙트럼
Figure 112018091235081-pat00012
를 이용하여 [수학식 8]의 압축 신호
Figure 112018091235081-pat00013
를 추정하고, 수신된 압축 신호 Y에서 추정한 압축 신호
Figure 112018091235081-pat00014
을 제거한 [수학식 9]의 나머지 신호(R)을 구한다.
[수학식 8]
Figure 112018091235081-pat00015
[수학식 9]
Figure 112018091235081-pat00016
본 발명의 실시 예들에 따른 디지털 신호 처리 장치는 압축 신호를 탐지하고 복원하는 과정을 실시간으로 처리할 수 있다. 즉, 기존에는 디지털 신호의 처리 속도가 신호가 입력되는 속도보다 느려서 압축 신호를 저장한 후 저장된 압축 신호를 읽어와 처리하기 때문에 실시간 처리가 불가능하였다. 그러나, 본 발명은 압축 신호를 직교 매칭 추구(OMP) 알고리즘이 구현된 고속 FPGA로 처리하기 때문에 실시간으로 탐지 및 복원이 가능하다. 또한, 본 발명은 압축 신호를 탐지 및 복원하는 복원부가 복수로 구성되어 전단의 복원부에서 입력 압축 신호로부터 복원한 원신호를 제외한 나머지 원신호를 후단의 복원부가 탐지 및 복원하는 파이프라인 구조로 구현될 수 있다. 따라서, 본 발명은 압축 신호를 파이프라인 구조로 탐지 및 복원하고 실시간 탐지 및 복원이 가능하므로 넓은 주파수 대역에 걸쳐있는 레이더와 통신신호를 실시간으로 감시, 감청할 수 있는 수신기를 개발할 수 있다.
도 1은 본 발명의 일 실시 예에 따른 디지털 신호 처리 장치의 구성을 설명하기 위한 블럭도.
도 2는 행렬곱 연산에 이용된 HLS 소스코드.
도 3은 본 발명의 일 실시 예에 따른 디지털 신호 처리 장치의 복원부의 구성 및 처리 흐름을 설명하기 위한 블럭도.
도 4는 복원부의 정합 모듈의 동작 예를 설명하기 위한 도면.
도 5 및 도 6은 각각 본 발명의 일 실시 예에 따른 디지털 신호 처리 장치의 복원부의 입력 및 출력 데이터의 타이밍도.
도 7은 비바도 HLS 합성 시 적용한 주요 옵션을 설명하기 위한 도면.
도 8은 신호 처리 장치의 복원부의 합성 결과를 요약한 도면.
도 9는 복원부의 모듈 별 처리 시간과 자원 사용량을 비교한 도면.
도 10은 C/RTL 코시뮬레이션 결과를 나타낸 도면.
도 11은 모의 압축 신호에 대해 비바도 HLS와 매트랩(Matlab)에서 복원한 신호의 실수부와 허수부 스펙트럼.
도 12는 본 발명의 일 실시 예에 따른 디지털 신호 처리 장치와 B. Knoop에 의해 개발된 RTL 로직의 성능을 비교한 도면.
이하, 첨부된 도면을 참조하여 본 발명의 실시 예를 상세히 설명하기로 한 다. 그러나, 본 발명은 이하에서 개시되는 실시 예에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시 예들은 본 발명의 개시가 완전하도록 하며, 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이다.
1. 디지털 신호 처리 장치
도 1은 본 발명의 일 실시 예에 따른 디지털 신호 처리 장치를 설명하기 위한 블럭도이다.
도 1을 참조하면, 본 발명의 일 실시 예에 따른 디지털 신호 처리 장치는 아날로그 신호를 디지털 신호로 변환하는 아날로그-디지털 컨버터(ADC)(100)와, 디지털 신호를 시간 기반에서 주파수 기반으로 변환하는 복수의 고속 퓨리에 변환부(Fast Fourier Transform; FFT)(200)와, 복수의 FFT(200)로부터 입력되는 복수 채널의 신호를 하나의 행렬(matrix)로 정렬하는 정렬부(300)와, OMP 과정을 통해 압축 신호를 탐지 및 복원하는 적어도 하나의 복원부(400, 500)를 포함할 수 있다. 이러한 디지털 신호 처리 장치는 ADC 데이터를 실시간으로 처리하기 위하여 전체 신호 처리 RTL 로직을 파이프라인 구조로 설계할 수 있다. 즉, OMP는 현재의 출력이 다음의 입력으로 사용되는 궤한 구조이기 때문에 입력 데이터가 내부 과정을 거쳐 출력되기까지 동일 연산이 소정 횟수 만큼 반복되어 수행되어야 하기 때문이다. 한편, ADC(100), FFT(200) 및 정렬부(300)는 압축 신호를 전처리하는 전처리 부분이고, 적어도 하나의 복원부(400, 500)는 OMP를 이용하여 압축 신호를 탐지 및 복원하는 부분이다.
이러한 디지털 신호 처리 장치의 구동 방법을 설명하면 다음과 같다. 아날로그 신호가 ADC(100)를 통해 디지털 신호로 변환되고, 예를 들어 4 채널의 디지털 신호는 4개의 FFT(200)를 통해 시간 기반의 신호가 주파수 기반의 신호로 변환된다. 또한, 4개의 FFT(200)의 출력이 정렬부(300)에 의해 정렬되어 정렬부(300)는 압축 신호 Y를 출력한다. 즉, 정렬부(300)는 4개의 FFT(200)로부터 출력된 복수의 신호를 정렬하여 하나의 압축 신호, 즉 행렬 Y를 출력한다. 한편, FFT(200)에 의해 시간 기반의 신호가 주파수 기반으로 변환되면 주파수 단위별로 에너지를 가지게 되고, 복원부(400, 500)에서 주파수 단위별 에너지를 확인함으로써 압축 신호를 탐지할 수 있게 된다. 적어도 하나의 복원부(400, 500)는 압축 신호를 탐지하고 이를 풀어서 복원하여 원신호를 출력한다. 즉, 복원부(400, 500)는 최대 에너지를 갖는 신호를 탐지하여 압축 신호로 검출할 수 있다. 이때, 제 1 복원부(400)는 제 1 압축 신호를 탐지하여 복원하고, 제 2 복원부(500)는 제 1 복원부(400)로부터 넘겨받은 신호에서 제 2 압축 신호를 탐지하여 복원한다. 즉, 복원부(400, 500)는 OMP를 반복할 때마다 하나의 압축 신호를 탐지하고 복원하는데, 제 1 복원부(400)가 하나의 압축 신호를 탐지하여 복원하고, 제 2 복원부(400)가 제 1 복원부(400)에서 탐지한 압축 신호 이외의 압축 신호를 탐지하여 복원한다. 이렇게 복수의 복원부(400, 500)가 마련되어 순차적으로 압축 신호를 탐지 및 복원할 수 있다. 이때, 복수의 복원부(400, 500)가 OMP를 반복함으로써 행렬의 사이즈가 커지게 된다. 즉, 제 1 복원부(400)가 계산하는 행렬의 사이즈보다 제 2 복원부(500)가 계산하는 행렬의 사이즈가 크다. 한편, 제 1 복원부(400)는 정렬부(300)로부터 출력된 압축 신호 Y와 측정 행렬 A, 그리고 측정 행렬 A를 정규화하고 켤레전치(conjugate transp ose)를 취한 행렬의 1∼48행을 취한
Figure 112018091235081-pat00017
가 입력되고, 제 1 복원부(400)는 OMP 과정을 통해 압축 신호에서 추정한 압축 신호 성분을 제거한 나머지 신호 R(residue), 그리고 서포트 벡터(support vector; SV)를 구한다. 제 2 복원부(500)는 제 1 복원부(400)로부터 복원되고 남은 압축 신호 Y'와, 측정 행렬 A, 그리고
Figure 112018091235081-pat00018
를 입력하고, 제 1 복원부(400)로부터 나머지 신호 R 및 서포트 벡터(SV)를 입력하여 OMP 과정을 통해 복원 신호의 스펙트럼 X와 서포트 벡터 SV를 출력한다.
제 1 및 제 2 복원부(400, 500)를 통해 이루어지는 OMP 과정은 다음과 같다. 여기서, OMP 1 단계 내지 3 단계는 정합 과정으로서, 압축 신호를 탐지하는 과정이고, OMP 4 단계 내지 OMP 7 단계는 압축 신호를 복원하는 과정이며, OMP 8 단계 및 OMP 9 단계는 복원된 압축 신호를 뺀 나머지 압축 신호를 생성하는 과정이다. 압축 신호를 탐지하는 정합 과정은 압축 신호를 일정한 주파수 구간으로 나누어 구성한 행렬(Y)과 측정 행렬의 상관 행렬을 구하고, 데이터의 크기가 가장 큰 행의 번호인 서포트 벡터(SV)를 찾는다(즉 압축 신호를 탐지한다). 예를 들어, 2㎓의 주파수 범위에 걸쳐 존재하는 무선 신호와 의사 랜덤 패턴 신호를 곱하면 전체 2㎓가 31㎒ 단위의 작은 부분으로 분할되어 0㎐ 부근의 저주파 대역(기저대역)으로 각 부분이 모이게 된다. 이때, 각 부분마다 번호가 할당되어 있으며, 신호가 존재하는 부분의 번호를 찾기 위해 가장 큰 에너지를 갖는, 즉 데이터 값이 가장 큰 부분의 번호인 서포트 벡터를 찾는다. OMP 4단계 내지 OMP 7단계의 복원 과정은 측정 행렬 A에서 서포트 벡터에 해당하는 열만 선택하고 복수의 최소제곱해 과정을 거쳐 탐지된 압축 신호를 복원한다. 이러한 OMP 1 단계 내지 OMP 9 단계를 과정을 거쳐 압축 신호를 선택하고 복원하며, 복원된 압축 신호를 제외한 나머지 압축 신호를 생성한다.
OMP 1 단계(정합) : 측정 행렬 A를 정규화하고 켤레전치(conjugate transp ose)를 취한 행렬의 1부터 48행을 취한
Figure 112018091235081-pat00019
과 행렬 Rk을 곱하여 상관행렬 Z를 구한다.
Figure 112018091235081-pat00020
여기서, Rk는 나머지(residue)를 뜻하는 복소 행렬로서, 반복 횟수가 k=0일 때 R0=Y가 된다. k=0은 제 1 복원부(400)의 출력이므로 제 1 복원부(400)에 의해 생성된 행렬 R0는 행렬 Y가 된다.
OMP 2 단계(정합) : 상관 행렬 Z의 각 원소의 크기를 구하고 열 방향으로 더한 뒤 값이 가장 큰 행의 번호 imax를 구한다.
Figure 112018091235081-pat00021
OMP 3 단계(정합) : 전 단계에서 구한 가장 큰 행의 번호 imax와 0㎐(DC)를 기준으로 대칭되는 번호를 구하여 서포트 벡터(support vector; SV)를 구한다.
Figure 112018091235081-pat00022
여기서, Ac는 측정 행렬 A의 열 크기이고, 서포트 벡터의 원소 수는 매 반복마다 2(k+1)씩 증가한다.
OMP 4 단계(선택) : 측정 행렬 A에서 서포트 벡터에 해당하는 열만을 선택하여 새로운 행렬 As를 생성한다.
Figure 112018091235081-pat00023
여기서, 행렬 As의 열은 매 반복마다 2(k+1)씩 증가한다. 즉, 첫번째 OMP를 적용할 경우, 즉 제 1 복원부(400)를 통하면 행렬 As의 열은 2이고, 두번째 OMP를 적용할 경우, 즉 제 2 복원부(500)를 통하면 As의 열은 4이다.
OMP 5 단계(최소제곱해) : 행렬 As과 켤레전치를 취한 행렬
Figure 112018091235081-pat00024
을 활용하여 C 행렬을 구한다.
Figure 112018091235081-pat00025
OMP 6 단계(최소제곱해) : 전 단계에서 구한 행렬의 역행렬을 구하여 사영 행렬 G를 구한다.
Figure 112018091235081-pat00026
OMP 7 단계(최소제곱해) : 사영 행렬 G와 행렬 Y를 이용하여 복원 신호의 스펙트럼
Figure 112018091235081-pat00027
를 계산한다. 즉, 압축 신호를 복원하여 복원 신호를 생성한다.
Figure 112018091235081-pat00028
여기서,
Figure 112018091235081-pat00029
행렬의 행은 매 반복마다 2(k+1)씩 증가한다. 즉, 첫번째 OMP를 적용할 경우, 즉 제 1 복원부(400)를 통하면 행렬
Figure 112018091235081-pat00030
의 행은 2이고, 두번째 OMP를 적용할 경우, 즉 제 2 복원부(500)를 통하면
Figure 112018091235081-pat00031
의 행은 4이다.
OMP 8 단계(최소제곱해) :
Figure 112018091235081-pat00032
를 이용하여 압축 신호
Figure 112018091235081-pat00033
를 추정한다. 즉, OMP 4 단계에서 생성된 행렬 As와 복원 신호의 스펙트럼
Figure 112018091235081-pat00034
를 이용하여 압축 신호
Figure 112018091235081-pat00035
를추정한다.
Figure 112018091235081-pat00036
OMP 9 단계(나머지): 수신된 압축 신호 Y에서 추정한 압축 신호 성분
Figure 112018091235081-pat00037
을 제거한 나머지 신호 R(residue)을 구한다.
Figure 112018091235081-pat00038
사용자가 설정한 반복횟수 만큼 k를 증가시키면서 1단계부터 다시 반복하고, 최종으로 복원 신호의 스펙트럼
Figure 112018091235081-pat00039
와 서포트 벡터를 구한다
2. 제약 조건
한편, 본 발명의 디지털 신호 처리 장치는 C/C++ 언어를 자일링스(Xilinx) FPGA에 최적화된 HDL로 자동으로 변환해주는 자일링스 비바도(Xilinx Vivado) HLS를 바탕으로 설계할 수 있다. 즉, OMP 과정을 수행하는 제 1 및 제 2 복원부(400)를 자일링스 비바도 HLS를 바탕으로 설계할 수 있다. 비바도 HLS를 활용한 RTL 로직의 성능 척도로는 입력된 데이터가 출력되기까지 시간인 처리 시간(latency)과, 데이터가 입력되는 시간 간격인 시작 주기(initial interval)가 있다. 입력 데이터를 실시간으로 처리하는 장치를 설계하려면 처리 시간보다는 시작 주기 조건을 만족하는 것이 바람직하다. 이를 위해 신호 처리 장치, 즉 복원부의 시작 주기를 전처리 단계에 사용되는 FFT(200), 즉 자일링스 FFT IP에 따라 결정할 수 있다. 길이가 256이고, 스트리밍 구조를 갖는 자일링스 FFT IP의 시작 주기는 1 클록(clock)이지만, 처리 시간은 256 클록이다. 신호 처리 장치의 동작 클록을 ADC(100) 속도에 맞추어 248㎒로 설정하면, 매 클록은 1/248㎒=4ns이므로 FFT(200)의 처리 시간은 256×4ns=1,024ns가 된다. 따라서, FFT(200)의 출력을 입력받는 제 1 복원부(400)는 256 클록인 1,024ns 시간마다 데이터를 처리할 수 있어야 한다. 그러나, 동작 클록이 낮을수록 RTL 로직 구현(implementation) 과정이 수월한 것을 고려해 OMP의 동작 주파수를 124㎒로 낮추어 설정할 수 있다. 이때, 매 클록은 1/124㎒=8ns이며, 시작 주기는 1,024ns/8ns=128 클록이 되어야 한다.
3. 고정 소수점 모델링
본 발명의 일 실시 예에 따른 디지털 신호 처리 장치를 설계하기 앞서 먼저 매트랩(Matlab)으로 알고리즘을 구현하고, 비트수 변화에 따른 OMP의 성능을 모의 실험하였다. 실험 결과 14 비트 이상의 고정 소수점 변수를 사용한 경우 95% 이상의 신호 복원 성능을 확인할 수 있다. 실험 결과에 따라 결정된 입출력 데이터의 크기와 고정 소수점 형식은 [표 1]과 같다.
변수 행렬 크기 형식 비트수/소수 구분
R, Y 20×32 복소수 14/8 입출력
Figure 112018091235081-pat00040
48×20 복소수 14/8 입력
A 20×96 복소수 14/8 입력
Figure 112018091235081-pat00041
2(k+1)×32 복소수 14/10 출력
4. 입출력 모듈 설계
입출력 데이터는 주로 비트폭이 큰 복소 행렬이므로, 입출력 포트는 모두 블록램(BRAM) 인터페이스를 이용하여 설계할 수 있다. 도 1을 예로 들면, 정렬부(300)와 제 1 복원부(400) 사이, 제 1 및 제 2 복원부(400, 500) 사이, 그리고 제 2 복원부(500)의 출력에 각각 데이터를 저장할 블록램을 마련할 수 있다. 즉, 정렬부(300)의 출력과 제 1 복원부(400)의 입력 사이에 제 1 데이터 저장부를 마련할 수 있고, 제 1 복원부(400)의 출력과 제 2 복원부(500)의 입력 사이에 제 2 데이터 저장부를 마련할 수 있으며, 제 2 복원부(500)의 출력에 제 3 데이터 저장부를 마련할 수 있다. 한편, 데이터 저장부로서 블록램을 예로 설명하였으나, 블록램 이외에 DRAM, SRAM 등 다양한 저장 장치를 이용할 수 있다.
식 (1)∼(3)의 정합 연산을 빠르게 처리하기 위해 입력인 행렬 또는 행렬과 행렬을 다수의 벡터로 나누어 다량의 데이터가 동시에 입력되도록 한다. 예를 들어, 행렬을 열 방향으로 크기가 20×8인 4개의 부분 행렬로 나누고, 각 부분 행렬을 행 방향으로 크기가 18인 20개의 벡터로 나누면, 매 클록마다 20×4=80개의 표본을 동시에 모듈로 입력받을 수 있다. 그러면 식 (1)의 연산 결과인 행렬의 원소를 매 클록마다 4개씩 계산할 수 있어 행렬 곱을 고속으로 처리할 수 있다.
입력 행렬을 다수의 벡터로 나누는 비바도 HLS directive 소스 코드는 다음과 같다. 소괄호로 표시한 dim이 1이면 행 방향, 2이면 열 방향으로 variable에 표기된 포트가 개별 벡터로 나뉘어 입력된다.
#pragma HLS ARRAY_RESHAPE variable=( ) complete dim=( )
K=1, 즉 제 2 복원부(500)의 출력인 X 행렬의 크기 또한 4×32이다. X행렬을 열 방향으로 크기가 4×8인 4개의 부분 행렬로 나누고, 행의 수만큼 출력 포트를 만들어 데이터가 원활히 출력되도록 한다.
5. 행렬곱 모듈 설계
모든 OMP 하위 모듈에는 행렬곱 연산이 포함되어 있다. 행렬곱 연산은 행렬곱 HLS 소스코드를 도시한 도 2에 나타낸 바와 같이 3개의 for 반복문을 이용하여 구현할 수 있다. 예를 들어, 크기가 r×m인 행렬과 m×c인 행렬을 곱할 때, 바깥 반복문은 r번, 중간 반복문은 c번, 안쪽 반복문은 m번 수행되어야 한다. 비바도 HLS로 행렬곱을 구현할 때, 하드웨어적으로 가장 효율적인 구조는 모든 연산이 m반복문에서 수행되도록 하는 것이다.
행렬곱 연산은 총 r×c×m번의 반복이 필요하고, 행렬의 크기가 증가할수록 총 반복 횟수가 배수로 증가하기 때문에 시작주기 같은 제약조건을 만족할 수 없다. 이때, c반복문에 파이프라인 구조를 적용하면 m반복문은 자동으로 풀어지고 (unroll), 전체 반복 횟수는 r×c만큼 감소하여 처리 속도가 눈에 띄게 향상될 수 있다. 대신 m반복문에 사용되는 자원은 m배 더 증가한다.
이처럼 고속 처리가 필요한 경우 반복문 내에 자원 사용량을 늘려 처리 속도를 증가시킬 수 있다. 그러나, RTL 로직의 면적이 증가하여 레지스터간 연결 단계에서 많은 시간 위반(timing violation)이 발생할 수 있다. 따라서, 제약 조건에 맞게 자원 사용량과 행렬곱 연산 속도의 적절한 균형을 맞추는 작업이 필요하다.
6. 복원부 구조
디지털 신호 처리 장치의 전체적인 신호 흐름은 도 3과 같다. 즉, 제 1 및 제 2 복원부(400, 500)의 구조와 신호 흐름을 도 3에 도시하였다. 도 3에 도시된 바와 같이 복원부는 7개의 모듈로 구성되어 있으며, 입력 데이터가 순차적으로 모듈을 거치도록 모듈 단위 파이프라인 설계(dataflow)하였다. 즉, OMP 1 단계 내지 OMP 3 단계를 수행하는 정합 모듈(110)과, OMP 4 단계를 수행하는 선택 모듈(120)과, OMP 5 단계를 수행하는 C 행렬 모듈(130)과, C 행렬의 역행렬 C-1을 구하는 역행렬 모듈(140)과, OMP 6 단계를 수행하는 G 행렬 모듈(150)과, OMP 7 단계를 수행하는 X 행렬 모듈(160)과, OMP 8 단계 및 OMP 9 단계를 수행하는 R 행렬 모듈(170)을 포함할 수 있다. 여기서, 정합 모듈(110)은 압축 신호를 탐지하고, 선택 모듈(120) 내지 X 행렬 모듈(160)은 압축 신호를 복원하며, R 행렬 모듈(170)은 복원된 압축 신호를 제외한 나머지 압축 신호를 생성한다. 즉, 정합 모듈(110)이 압축 신호를 탐지하는 탐지 모듈이고, 선택 모듈(120) 내지 X 행렬 모듈(160)은 압축 신호를 복원하는 복원 모듈이며, R 행렬 모듈(170)은 복원된 압축 신호를 제거한 나머지 압축 신호를 생성하는 모듈이다.
정합 모듈(110)에는 3개의 for 반복문이 있고, 각 반복문의 번호를 바깥부터 차례대로 r, c, m이라 할 때, 모든 연산은 m반복문에서 수행되도록 한다. 정합 모듈의 동작 예를 도 4에 도시하였으며, 도 4에는 r과 c 반복문 번호에 따라 OMP 1단계의 Z 행렬의 원소가 생성되는 순서를 나타내었다. 도 4에 도시된 바와 같이 c값이 증가할 때마다 행렬의 0행부터 3행까지 4개의 원소가 계산된다. c반복문의 번호가 31이 될 때까지 이 값을 화살표 방향으로 누적하여 더한 값을 s라 하면, 그 벡터의 최대값과 그에 해당하는 r의 번호를 저장한다. 이때, 토너먼트 방식을 활용하여 최대값을 찾는다. 다시 Z행렬의 4행부터 7행의 원소를 누적한 s벡터를 구하고 최대값을 찾아 이전 최대값과 비교한다. 이런 방식으로 최대값을 찾고, 그 값에 해당하는 r값을 서포트 벡터로 지정한다.
한편, 입력 Y 행렬은 정합 모듈(110) 이후 X와 R 행렬을 계산하는 모듈에서도 사용된다. 비바도 HLS 매뉴얼에는 모듈간 파이프라인 동작이 수행되려면 한 모듈의 출력이 다음 모듈을 건너뛰어 전달되지 않을 것을 권장하고 있다. 따라서, Y 행렬을 비롯한 신호들이 되도록 모듈 내부를 그대로 지나쳐 다음 모듈로 전달되도록 설계한다.
선택 모듈(120)은 측정 행렬 A에서 서포트 벡터에 해당하는 열만을 가져와 새로운 행렬
Figure 112018091235081-pat00042
Figure 112018091235081-pat00043
를 생성한다. 이러한 연산은 대수 연산이 필요하지 않다.
C 행렬 모듈(130)은 선택 모듈(120)의 출력을 서로 곱하여 C 행렬을 생성한다. 정합 모듈(110)과 마찬가지로 가장 안쪽 반복문이 풀리도록 두 번째 반복문에 파이프라인 directive를 적용하였다.
역행렬 모듈(140)은 C 행렬의 역행렬을 구한다. 이때, C 행렬은 정방행렬이고 대각원소는 항상 실수이며, 대각원소를 기준으로 대칭되는 원소는 서로 복소 켤레(complex conjugate)를 취한 값이다. 또한, C 행렬의 역행렬 또한 동일한 성질을 갖는다. 이러한 특성을 활용하면 역행렬 연산에 필요한 연산과 RTL 로직 자원을 절감할 수 있다. C 행렬은 반복횟수 k에 따라 크기가 2배씩 증가한다. K=0인 경우, 즉, 제 1 복원부(400)에서의 행렬의 크기는 2×2이고 다음과 같은 역행렬 공식을 적용할 수 있다.
Figure 112018091235081-pat00044
K=1인 경우, 즉, 제 2 복원부(500)에서의 행렬의 크기는 4×4 이고, 적용할 수 있는 역행렬 공식은 다음과 같다.
Figure 112018091235081-pat00045
Figure 112018091235081-pat00046
Figure 112018091235081-pat00047
이때, C 행렬의 특성에 따라 detC는 실수 값이 된다. 고정 소수점 detC의 역수 연산은 부동소수점 연산기를 사용하여 구현한다.
G 및 X 행렬 모듈(150, 160)은 모두 복소 행렬 곱으로, 정합 모듈(110)과 유사하게 구현한다. 즉, G 및 X 행렬 모듈(150, 160)은 각각 OMP 6 단계 및 7 단계를 수행한다. G 행렬 모듈(160)은 역행렬로부터 사행 행렬 G를 구하고, X 행렬 모듈(160)은 복원 신호의 스펙트럼
Figure 112018091235081-pat00048
을 계산한다. 이때, G 행렬 모듈(160)은
Figure 112018091235081-pat00049
와 역행렬 C-1를 이용하여 사행 행렬 G를 구한다. 즉,
Figure 112018091235081-pat00050
은 C 행렬 모듈(130) 및 G 행렬 모듈(150)에 입력된다.
R 행렬 모듈(170)에서는 OMP 8 및 9단계가 같이 수행되도록 한다. 즉, R 행렬 모듈(170)은
Figure 112018091235081-pat00051
를 이용하여 압축 신호
Figure 112018091235081-pat00052
를 생성하고, 수신된 압축 신호에서 추정한 압축 신호 성분을 제거한 나머지 신호 R(residue)을 구한다. 이때, R 행렬 모듈(170)은 정합 모듈(110)과 마찬가지로 4개의 표본이 동시에 계산되도록 한다.
7. RTL 로직 최적화
불필요한 FPGA 자원의 소모를 줄이고 게이트 간 경로가 원활히 지정되도록 최적화를 수행한다. 즉, FPGA 내에는 예를 들어 곱셈기, 메모리, 룩업 테이블, 레지스터 등이 정해진 위치에 배치되어 있으며, 이들간 경로를 프로그램하여 동작된다. 이때, 곱셈기의 수를 줄여 FPGA 자원이 원활히 연결되도록 할 수 있다. 즉, 일반적인 복소곱 연산에는 아래 식의 세번째 항과 같이 A와 B를 곱하는 4개의 곱셈기가 필요하다. 그러나, 복소곱 연산을 다음 식과 같이 P0, P1, P2로 변경하면 3개의 곱셈기로도 연산이 가능하여 곱셈기 자원을 절약할 수 있다. 비바도 HLS DSP 라이브러리에는 3개의 곱셈기를 사용하는 복소 곱셈기인 hls::cmpy 함수가 있다.
Figure 112018091235081-pat00053
여기서, P0=(Ar+Ai)Bi, P1=(Br+Bi)Ar, P2=(Ai-Ar)Br 이다
설계한 RTL 로직의 처리 시간과 시작 주기가 주어진 제약 조건을 만족했더라도 구현 과정에서 FPGA 자원간 연결이 원활히 되지 않아 과도한 시간 위배(timing violation)이 발생할 수 있다. 이런 경우 FPGA에서 로직이 제대로 동작하지 않는다. 이 문제를 해결하기 위해 행렬곱 반복문 내의 시작 주기를 증가시킬 수 있다. 그러면 비바도 HLS가 반복문 내 연산이 다수 클록 동안 여유있게 수행되도록 조절하여 크리티컬 패스(critical path)가 감소하는 효과가 있다. 대신 반복문의 처리 시간이 증가하여 시작 주기 제약 조건에 어긋날 수 있다. 그러나, 반복문에 포함된 로직 사용량을 늘려서 이를 해결할 수 있다.
다음은 크리티컬 패스를 완화하는 비바도 HLS directive 소스코드이다. 시작 주기를 1에서 2로 증가시키면 처리 시간 또한 2배 증가하지만, UNROLL factor directive를 통해 반복문의 반복 횟수를 factor배 만큼 줄임으로써 자원 사용량을 2배 증가시켜 모듈의 처리시간을 그대로 유지할 수 있다.
#pragma HLS PIPELINE II=2
#pragma HLS UNROLL factor=2
상기한 바와 같은 본 발명의 일 실시 예에 따른 디지털 신호 처리 장치의 동작을 도 5 및 도 6의 타이밍 다이어그램을 이용하여 설명하면 다음과 같다.
도 5는 본 발명의 일 실시 예에 따른 디지털 신호 처리 장치의 복원부의 입력 데이터의 타이밍도이다. 도 5에 도시된 바와 같이, 복원부의 제어 신호에는 동작의 완료 알리는 ap_done, 시작 신호인 ap_start, RTL 로직 대기 상태를 알려주는 ap_idle, 입력을 받을 준비가 되었음을 알리는 ap_ready, 클록 입력인 ap_clk가 있다. ap_start가 하이(high)가 되면 복원부가 동작하기 시작한다. 그리고, ap_done 신호가 하이(high)가 되기 전에 ap_ready 신호가 하이(high)가 되어 새로운 데이터가 입력되는 것을 확인할 수 있다. 이는 도 3에 도시된 바와 같이 모듈 단위의 파이프라인 구조가 제대로 동작을 하고 있음을 의미한다. 시작 주기는 ap_ready 신호가 하이(high)가 됐을 때의 시간 T1과 T2간의 차이에 해당하고, 처리 시간은 ap_start 와 ap_done 신호가 하이(high)가 될 때의 시간인 L1과 L2의 차가 된다.
데이터 Y는 총 4개의 포트를 통해 병렬로 입력되지만, 도 5에는 단일 포트만 나타내었다. 또한, 데이터 Y는 복소수이므로 각각 실수와 허수 포트로 나뉜다. 데이터를 읽어올 블록램을 제어하기 위한 주소인 address[2:0]와 ce(chip enable) 신호가 동시에 하이(high)가 되고, 한 클록 뒤에 실제 신호가 연이어 입력되는 것을 확인할 수 있다. 데이터 포트 q0[279:0]를 통해서는 한 표본 당 14비트인 20개의 표본이 280비트씩 동시에 입력되는 것을 확인할 수 있다.
데이터
Figure 112018091235081-pat00054
역시 4개의 AeH 포트를 통해 병렬로 입력되며, 각 포트 마다 실수와 허수 값을 입력 받는다. 타이밍 완화 기법이 적용되어, 신호 Y와는 달리 ce 신호가 띄엄띄엄 하이(high)가 되는 것을 확인할 수 있다.
데이터 A는 ce가 하이(high)일 때, 행렬 A을 저장한 블록램의 address[6:0] 번지에서 한 클록 뒤에 q0[279:0] 포트를 통해 각각 280비트씩 연이어 입력되는 것을 확인할 수 있다. 행력 A의 열 크기가 96이므로 블록램의 주소는 7비트가 할당되었다.
도 6은 본 발명의 일 실시 예에 따른 디지털 신호 처리 장치의 복원부의 출력 데이터의 타이밍도이다. 도 6에 도시된 바와 같이, 대략 900ns 시점에서 정합 모듈의 결과인 서포트 벡터 값이 valid 신호와 함께 sv[31:0] 포트를 통해 출력된다. 그후 데이터 Y가 d[279:0] 포트를 통해 출력되고, 연이어 데이터 R이 출력된다. 출력 데이터를 저장할 블록램의 입력인 ce 신호와 주소 address[2:0]가 함께 출력되는 것을 확인할 수 있다. 행렬 Y와 행렬 R 모두 4개 포트로 출력되지만 도 6에는 한 개의 포트만 나타내었다. 모든 출력이 완료되면 ap_done 신호가 하이(high)가 되는 것을 확인할 수 있다. 이 후 대략 900ns에 입력된 데이터의 서포트 벡터 값이 1700ns 부근에서 출력되기 시작한다.
이어서, 본 발명의 일 실시 예에 따른 디지털 신호 처리 장치의 검증 결과를 설명하면 다음과 같다.
1) 합성(synthesis) 결과
비바도 HLS 합성 시 적용한 주요 옵션은 도 7과 같다. 비바도에서 구현 시 발생하는 시간 위배(timing violation)을 최대한 줄이기 위해 바인드(bind), 스케줄(schedule), 언서튼티(uncertainty) 3가지 옵션을 설정하였다. 바인딩은 덧셈, 곱셈과 같은 연산자를 구체적인 RTL 로직 게이트에 대응시키는 단계로, 이 옵션을 'High'로 하면 합성 시간은 오래 길지만 RTL 로직이 최적화된다. 스케줄링은 매 클록 마다 수행되는 연산을 결정하는 단계로, 'High'로 하면 합성 시간은 오래 걸리지만 최소 클록 내에서 연산이 수행되도록 한다. 도 7에 도시된 바와 같이 바인드와 스케줄은 최대로 수행되도록 설정하였고(effort=high), 클럭 주기는 7.142ns이다.
또한, 신호 처리 장치의 복원부의 합성 결과를 요약하면 도 8과 같다. 도 8에서 클럭(Clock)은 목표 클록이고, 에스티메이티드(Est.)값은 최대로 설정 가능한 클록을 나타낸다. K=0인 경우, 즉 제 1 복원부는 클럭이 7.14ns이고, 에스티메이트드값은 4.98ns이다. 즉, 제 1 복원부는 클럭이 7.14ns이고 클럭을 4.98ns로 빠르게 동작시켜도 문제가 없다. 또한, 제 1 복원부는 신호가 입력되어 출력될 때까지의 시간, 즉 처리 시간(latency)이 131 클럭이고, 첫번째 신호가 입력된 후 다음 신호가 입력될 때까지의 시간, 즉 주기(interval)가 106 클럭이다. 또한, K=1인 경우, 즉 제 2 복원부는 클럭이 7.14ns이고, 에스티메이트드값은 5.61ns이다. 즉, 제 2 복원부는 클럭이 7.14ns이고 클럭을 5.61ns로 빠르게 동작시켜도 문제가 없다. 또한, 제 2 복원부는 처리 시간(latency)이 124 클럭이고, 주기(interval)가 104 클럭이다. 따라서, 본 발명에 따른 복원부는 주기가 제약 사항인 128 클록 이하이며, 모듈 간 파이프라인 기법이 적용된 것을 알 수 있다.
2) 모듈 별 처리 시간과 자원 사용량
도 9는 복원부의 모듈 별 처리 시간과 자원 사용량을 나타낸 도면이다. 즉, 도 9에는 K=0 및 K=1, 즉 제 1 및 제 2 복원부에서 정합 모듈, 선택 모듈, C 행렬 모듈, 역행렬 모듈, G 행렬 모듈, M 행렬 모듈 및 R 행렬 모듈 각각의 BRAM, DSP, 플립플롭(FF) 및 룩업 테이블(LUT)의 사용량을 나타내었다. 도 9에 도시된 바와 같이 제 1 및 제 2 복원부 모두 정합 모듈에서 240개 이상의 DSP가 소모되고, 100 클록 이상의 처리 시간이 필요한 것을 확인할 수 있다. 또한, 정합 모듈에서 다른 모듈에 비해 플립 플롭 및 룩업 테이블의 소모가 많은 것을 알 수 있다. 주목할 점은 역행렬 계산에 필요한 DSP 사용량이 제 1 복원부보다 제 2 복원부에서 대폭 증가한 것이다. 이는 C행렬의 크기가 2배 증가했기 때문으로 OMP에서 정합과 역행렬 계산에 많은 FPGA 자원과 처리시간이 소모됨을 알 수 있다. 또한, 파이프라인 설계가 적용되어 도 8에 제시된 제 1 복원부의 복수의 모듈의 처리시간의 합보다 제 2 복원부의 복수의 모듈의 처리 시간의 합이 큰 것을 확인할 수 있다
3) C/RTL 코시뮬레이션(cosimulation) 결과
비바도 HLS에는 C와 HDL을 동시에 시뮬레이션 할 수 있는 C/RTL 코시뮬레이션(cosimulation) 기능이 있으며, 그 결과를 도 10에 나타내었다. 이때, 도 8과 도10의 처리 시간과 입력 주기값이 서로 다른 것을 주의해야 한다. 주로 C/RTL 코시뮬레이션의 시작 주기 값이 합성 결과값보다 크게 나오며, 반드시 C/RTL 코시뮬레이션 결과 값을 기준으로 설계를 해야 한다.
도 11은 모의 압축 신호에 대해 비바도 HLS와 매트랩(Matlab)에서 복원한 신호의 실수부와 허수부 스펙트럼을 나타낸 것이다. 즉, 도 11(a)는 실수부의 스펙트럼이고 도 11(b)는 허수부의 스펙트럼이다. 또한, 실선은 비바도 HLS 결과이고 점선은 매트랩 결과이다. 두 값의 정규화한 제곱평균오차(normalized mean square error, NMSE)는 약 1.8×10-3으로 계산되었다. 도시된 바와 같이 본 발명에 따른 비바도 HLS 결과(실선)와 매트랩 결과(점선)가 거의 일치함을 알 수 있다.
4) 성능 비교
본 발명의 일 실시 예에 따른 디지털 신호 처리 장치와 B. Knoop에 의해 개발된 로직의 성능을 비교한 결과를 도 12에 나타내었다. 본 발명의 로직 파라미터는 N=48, M=20, K=2이고, Kintex Ultrascale FPGA(xcku115-flvb2104-2-i)를 타겟으로 하였다. B. Knoop은 N=128, M=32, K=5에 대해 Virtex7 FPGA를 사용하였다. 즉, 본 발명은 48×20 행렬에 대해 2회의 OMP 과정을 수행하였고, B. Knoop은 128×32 행렬에 대해 5회의 OMP 과정을 수행하였다. 도 12에 도시된 바와 같이 본 발명은 B. Knoop에 비해 블록램(BRAM)은 16배, DSP 코어 약 2.5배, 플립플롭(FF)은 약 5.6배, 룩업 테이블(LUT)은 약 9.7배로 보다 많은 자원을 사용하지만, 처리 시간은 약 10배 빠른 것을 알 수 있다. 이는 실시간 처리를 목표로 디지털 신호 처리 장치를 설계했기 때문이다.
한편, 본 발명의 기술적 사상은 상기 실시 예에 따라 구체적으로 기술되었으나, 상기 실시 예는 그 설명을 위한 것이며, 그 제한을 위한 것이 아님을 주지해야 한다. 또한, 본 발명의 기술분야에서 당업자는 본 발명의 기술 사상의 범위 내에서 다양한 실시 예가 가능함을 이해할 수 있을 것이다.
100 : ADC 200 : FFT
300 : 정합부 400 : 제 1 복원부
500 : 제 2 복원부

Claims (11)

  1. 아날로그 신호를 디지털 신호로 변환하는 아날로그-디지털 컨버터;
    상기 디지털 신호를 시간 기반에서 주파수 기반으로 변환하는 고속 퓨리에 변환기;
    상기 고속 퓨리에 변환기의 출력을 하나의 행렬 신호로 정렬하는 정렬부; 및
    상기 정렬부로부터 입력된 행렬 신호로부터 압축 신호를 탐지하고 원신호로 복원하는 복원부를 포함하고,
    상기 복원부는 적어도 둘 이상 마련되며,
    상기 적어도 둘 이상의 복원부 각각은,
    압축 신호를 탐지하는 정합 모듈과,
    상기 정합 모듈에서 탐지된 압축 신호를 복원하는 복원 모듈과,
    복원된 압축 신호 성분을 제거한 나머지 압축 신호를 생성하는 생성 모듈을 포함하는 디지털 신호 처리 장치.
  2. 청구항 1에 있어서, 상기 아날로그 디지털 컨버터는 상기 디지털 신호를 복수 채널로 출력하고, 상기 고속 퓨리에 변환기는 복수 마련되어 복수의 채널로 입력되는 디지털 신호를 각각 처리하며, 상기 정렬부는 복수의 고속 퓨리에 변환기의 출력을 입력으로 하여 하나의 행렬 신호로 정렬하는 디지털 신호 처리 장치.
  3. 청구항 2에 있어서, 상기 복원부의 시작 주기는 상기 고속 퓨리에 변환기의 시작 주기에 따라 결정되는 디지털 신호 처리 장치.
  4. 삭제
  5. 청구항 2에 있어서, 전단의 복원부에서 탐지 및 복원한 압축 신호의 성분을 제거한 나머지 압축 신호를 후단의 복원부가 탐지 및 복원하는 디지털 신호 처리 장치.
  6. 청구항 5에 있어서, 상기 정렬부와 첫번째 복원부 사이, 둘 이상의 복원부 사이, 마지막 복원부의 출력 중 적어도 하나에 마련된 데이터 저장부를 더 포함하는 디지털 신호 처리 장치.
  7. 삭제
  8. 청구항 5에 있어서, 상기 정렬부로부터 입력되는 행렬(Y)은 압축 신호가 소정 주파수 구간별로 나뉘어 구성된 형태이고, 상기 정합 모듈은 행렬(Y)와 측정 행렬(
    Figure 112019011767039-pat00055
    )의 상관을 구한 행렬에서 가장 큰 에너지를 포함한 주파수 구간을 탐지하는 디지털 신호 처리 장치.
  9. 청구항 8에 있어서, 상기 정합 모듈은,
    측정 행렬(A)을 정규화하고 켤레전치를 취한 행렬의 1부터 48행을 각각 취한
    Figure 112019011767039-pat00056
    과 나머지 행렬(Rk)을 곱하여 [수학식 1]의 상관 행렬(Z)을 구하는 제 1 정합 모듈과,
    상관 행렬(Z)의 각 원소의 크기를 구하고 열 방향으로 더한 뒤 [수학식 2]의 값이 가장 큰 행의 번호 imax를 구하는 제 2 정합 모듈과,
    제 2 정합 모듈에서 구한 행 번호 imax와 0㎐(DC)를 기준으로 대칭되는 번호를 구하여 [수학식 3]의 서포트 벡터(Sk)를 압축 신호로 구하는 제 3 정합 모듈을 포함하는 디지털 신호 처리 장치.
    [수학식 1]
    Figure 112019011767039-pat00057

    [수학식 2]
    Figure 112019011767039-pat00058

    [수학식 3]
    Figure 112019011767039-pat00059

    여기서, Ac는 측정 행렬(A)의 열 크기.
  10. 청구항 9에 있어서, 상기 복원 모듈은,
    측정 행렬(A)에서 서포트 벡터에 해당하는 열만을 선택하여 [수학식 4]의 행렬(As)를 생성하는 선택 모듈과,
    행렬(As)과 켤레전치를 취한 행렬
    Figure 112018091235081-pat00060
    을 이용하여 [수학식 5]의 C 행렬을 생성하는 C 행렬 모듈과,
    C 행렬의 역행렬을 구하는 역행렬 모듈과,
    역행렬과 행렬
    Figure 112018091235081-pat00061
    로부터 [수학식 6]의 사영 행렬(G)을 구하는 G 행렬 모듈과,
    사영 행렬(G)와 행렬(Y)를 이용하여 [수학식 7]의 복원 신호의 스펙트럼
    Figure 112018091235081-pat00062
    을 계산하는 X 행렬 모듈을 포함하는 디지털 신호 처리 장치.
    [수학식 4]
    Figure 112018091235081-pat00063

    [수학식 5]
    Figure 112018091235081-pat00064

    [수학식 6]
    Figure 112018091235081-pat00065

    [수학식 7]
    Figure 112018091235081-pat00066

  11. 청구항 10에 있어서, 상기 생성 모듈은, 행렬(As)와 복원 신호의 스펙트럼
    Figure 112018091235081-pat00067
    를 이용하여 [수학식 8]의 압축 신호
    Figure 112018091235081-pat00068
    를 추정하고, 수신된 압축 신호 Y에서 추정한 압축 신호
    Figure 112018091235081-pat00069
    을 제거한 [수학식 9]의 나머지 신호(R)을 구하는 디지털 신호 처리 장치.
    [수학식 8]
    Figure 112018091235081-pat00070

    [수학식 9]
    Figure 112018091235081-pat00071
KR1020180109639A 2018-09-13 2018-09-13 디지털 신호 처리 장치 KR101980649B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180109639A KR101980649B1 (ko) 2018-09-13 2018-09-13 디지털 신호 처리 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180109639A KR101980649B1 (ko) 2018-09-13 2018-09-13 디지털 신호 처리 장치

Publications (1)

Publication Number Publication Date
KR101980649B1 true KR101980649B1 (ko) 2019-05-21

Family

ID=66676062

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180109639A KR101980649B1 (ko) 2018-09-13 2018-09-13 디지털 신호 처리 장치

Country Status (1)

Country Link
KR (1) KR101980649B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102135336B1 (ko) * 2020-03-04 2020-07-17 한화시스템 주식회사 압축신호 복원방법, 압축신호 복원기, 및 이를 구비하는 광대역 신호 수신장치
CN117526943A (zh) * 2024-01-08 2024-02-06 成都能通科技股份有限公司 一种基于fpga的高速adc性能测试系统及方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990079224A (ko) * 1998-04-02 1999-11-05 윤종용 직교 주파수 분할 다중 방식에서의 주파수 오프셋 정정장치
KR101727088B1 (ko) 2013-05-17 2017-05-02 후아웨이 테크놀러지 컴퍼니 리미티드 압축 센싱에 기초한 ofdm 변조-복조 방법, 장치 및 시스템
KR20170084503A (ko) * 2016-01-12 2017-07-20 한국전자통신연구원 영상 재구성 장치, 그것의 영상 재구성 방법, 및 그것을 포함하는 영상 시스템
KR20180049035A (ko) 2015-09-04 2018-05-10 레이데온 컴퍼니 선택적 신호 제거를 위한 장치 및 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990079224A (ko) * 1998-04-02 1999-11-05 윤종용 직교 주파수 분할 다중 방식에서의 주파수 오프셋 정정장치
KR101727088B1 (ko) 2013-05-17 2017-05-02 후아웨이 테크놀러지 컴퍼니 리미티드 압축 센싱에 기초한 ofdm 변조-복조 방법, 장치 및 시스템
KR20180049035A (ko) 2015-09-04 2018-05-10 레이데온 컴퍼니 선택적 신호 제거를 위한 장치 및 방법
KR20170084503A (ko) * 2016-01-12 2017-07-20 한국전자통신연구원 영상 재구성 장치, 그것의 영상 재구성 방법, 및 그것을 포함하는 영상 시스템

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
B. Knoop, J. Rust, S. Schmale, D. Peters-Drolshagen, and S. Paul, "Rapid Digital Architecture Design of Orthogonal Matching Pursuit", 24th European Signal Processing Conference(EUSIPCO), pp. 1857-861, 2016.
G. Orchard et al, "Real Time Compressive Sensing Video Reconstruction in Hardware", IEEE Journal on Emerging and Selected Topics in Circuits and System, vol.2, no.3, Sep. 2012.* *
P. Blache, H. Rabah, and A. Amira, "High-Level Prototyping and FPGA Implementation of the Orthogonal Matching Pursuit Algorithm", 11th International Conference on Information Science, Signal Processing and their Applications(ISSPA), pp.1336-1340, July, 2012.
Yonina C. Eldar, "Xampling: Signal Acquisition and Processing in Union of Subspaces", IEEE TRANSACTIONS ON SIGNAL PROCESSING, VOL.59, NO.10, OCTOBER 2011.

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102135336B1 (ko) * 2020-03-04 2020-07-17 한화시스템 주식회사 압축신호 복원방법, 압축신호 복원기, 및 이를 구비하는 광대역 신호 수신장치
CN117526943A (zh) * 2024-01-08 2024-02-06 成都能通科技股份有限公司 一种基于fpga的高速adc性能测试系统及方法
CN117526943B (zh) * 2024-01-08 2024-03-29 成都能通科技股份有限公司 一种基于fpga的高速adc性能测试系统及方法

Similar Documents

Publication Publication Date Title
Septimus et al. Compressive sampling hardware reconstruction
US9363068B2 (en) Vector processor having instruction set with sliding window non-linear convolutional function
Bellasi et al. VLSI design of a monolithic compressive-sensing wideband analog-to-information converter
Pfander et al. The restricted isometry property for time–frequency structured random matrices
Sinha et al. Energy scalable system design
Esposito et al. On the use of approximate adders in carry-save multiplier-accumulators
KR101980649B1 (ko) 디지털 신호 처리 장치
Liu et al. The implementation of the improved OMP for AIC reconstruction based on parallel index selection
Milder et al. Formal datapath representation and manipulation for implementing DSP transforms
KR101990077B1 (ko) 디지털 신호 처리 방법
Roy et al. Low-complexity architecture of orthogonal matching pursuit based on QR decomposition
Colak et al. FPGA implementation of the automatic multiscale based peak detection for real-time signal analysis on renewable energy systems
Meher et al. Area-delay efficient architecture for MP algorithm using reconfigurable inner-product circuits
Roy et al. Fast OMP algorithm and its FPGA implementation for compressed sensing‐based sparse signal acquisition systems
CN105551503B (zh) 基于原子预选择的音频匹配追踪方法与系统
Mookherjee et al. A hardware efficient technique for linear convolution of finite length sequences
Salaskar et al. FFT/IFFT implementation using Vivado™ HLS
Jarrah et al. Optimized FPGA based implementation of discrete wavelet transform
Lucius et al. An algorithm for extremal eigenvectors computation of hermitian matrices and its FPGA implementation
Kamboh et al. An algorithmic transformation for FPGA implementation of high throughput filters
Niu et al. FPGA based architectures for high performance adaptive FIR filter systems
Jarrah et al. Reconfigurable FPGA/GPU-based architecture of block compressive sampling matching pursuit algorithm
Barrios et al. Speeding up FPGA Prototyping on Space Programs with HLS Workflow. Use Case: Video Compression On-board Satellites
JP5985079B2 (ja) スペクトル推定装置及びスペクトル推定方法
Yin et al. A novel flexible foldable systolic architecture FIR filters generator

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant