KR101990077B1 - Digital signal processing method - Google Patents

Digital signal processing method Download PDF

Info

Publication number
KR101990077B1
KR101990077B1 KR1020180109640A KR20180109640A KR101990077B1 KR 101990077 B1 KR101990077 B1 KR 101990077B1 KR 1020180109640 A KR1020180109640 A KR 1020180109640A KR 20180109640 A KR20180109640 A KR 20180109640A KR 101990077 B1 KR101990077 B1 KR 101990077B1
Authority
KR
South Korea
Prior art keywords
matrix
signal
quot
compressed signal
compressed
Prior art date
Application number
KR1020180109640A
Other languages
Korean (ko)
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 KR1020180109640A priority Critical patent/KR101990077B1/en
Application granted granted Critical
Publication of KR101990077B1 publication Critical patent/KR101990077B1/en

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)
  • Complex Calculations (AREA)

Abstract

The present invention proposes a method for processing a digital signal comprising the processes of: converting an analog signal into a digital signal; converting the digital signal from time-based to frequency-based; arranging the frequency-based signal into one matrix signal; detecting a compressed signal from the matrix signal; and restoring the detected compressed signal into an original signal.

Description

디지털 신호 처리 방법{Digital signal processing method}[0001] Digital signal processing method [0002]

본 발명은 신호 처리 방법에 관한 것으로, 특히 압축 센싱(compressive sensing) 이론이 적용된 수신기에서 레이더와 통신 신호를 탐지하고 복원하는 디지털 신호 처리 방법에 관한 것이다.The present invention relates to a signal processing method, and more particularly, to a digital signal processing method for detecting and restoring a radar and a communication signal in a receiver to which a compressive sensing theory is applied.

이스라엘 테크니온 공과대학의 엘다(Eldar) 교수팀은 주파수 대역이 제한된 신호에 대해 원신호의 대역폭보다 2배 이상의 속도로 표본화해야 원신호를 복원할 수 있다는 나이퀴스트(Nyquist) 표본화 이론을 뒤엎는 혁신적인 잼플링(Xampling) 수신기를 발표하였다. 압축센싱 이론이 적용된 이 수신기는 다수의 원신호를 나이퀴스트율보다 낮게 표본화 하더라도 원신호를 디지털 신호처리를 통해 복원할 수 있어 넓은 주파수 대역에 걸쳐 있는 신호를 고속의 아날로그 디지털 변환기(analog to digital converter; ADC)없이 저속의 ADC를 통해 수신할 수 있는 장점이 있다.Eldar, professor at the Technion Institute of Technology in Israel, says that the frequency-limited signal should be sampled at twice the bandwidth of the original signal to reconstruct the original signal. An innovative approach to overthrowing the Nyquist sampling theory Announced the Xampling receiver. The receiver, which uses the compression sense theory, can reconstruct the original signal through digital signal processing even if the original signals are sampled lower than the Nyquist rate, so that the signals over a wide frequency band can be converted to analog to digital ADC without the need for a low-speed ADC.

잼플링 수신기와 같은 압축센싱 이론이 적용된 수신기는 크게 고주파 신호를 의사 랜덤 패턴과 혼합하여 신호를 압축하는 아날로그단과, 아날로그 신호를 디지털 신호로 변환하여 원신호로 복원하는 디지털단으로 나눌 수 있다. 디지털단에 적용되는 신호처리 방법은 압축 신호에 더해진 잡음을 제거하거나 신호의 세기를 조절하는 전처리 부분과, 직교 매칭 추구(Orthogonal matching pursuit; 이하 OMP) 알고리즘을 토대로 압축 신호를 탐지하고 복원하는 두 부분으로 나눌 수 있다. 한편, OMP 알고리즘을 주문형 반도체(ASIC) 보다는 FPGA(field programmable gate array)를 대상으로 구현한 연구가 있다. A receiver using a compression sensing theory such as a jam-flipping receiver can be roughly classified into an analog stage for compressing a signal by mixing a high-frequency signal with a pseudo-random pattern and a digital stage for converting an analog signal into a digital signal to restore the original signal. A signal processing method applied to a digital stage includes a preprocessing part for removing noise added to a compression signal or adjusting a signal intensity and two parts for detecting and restoring a compression signal based on an orthogonal matching pursuit . On the other hand, there is a research that implements the OMP algorithm on a field programmable gate array (FPGA) rather than an application-specific semiconductor (ASIC).

B. Knoop은 자일링스(Xilinx) 사의 C/C++ 언어 기반 RTL(register transfer logic) 로직 설계 도구인 비바도 HLS(Vivado high level synthesis)를 활용하였다. 변형된 그람-슈미트 QR 행렬 분해를 적용하여 압축신호를 복원하고, 이때 필요한 역행렬 계산에는 블록 단위 역행렬 방법을 적용하였다.B. Knoop utilized Vivado high level synthesis (VLS), a register transfer logic (RTL) logic design tool based on Xilinx's C / C ++ language. The modified Gram - Schmidt QR matrix decomposition is applied to recover the compressed signal, and the block inverse matrix method is applied to the inverse matrix calculation required.

그리고, P. Blache와 H. Rabah은 변형된 촐레스키 분해를 적용하여 루트 연산 없이 역행렬을 계산하였다. 또한, P. Blache와 H. Rabah은 매트랩 시뮬링크(Matlab Simulink)을 토대로 하는 자일링스 시스템 제너레이터(Xilinx System Generator)를 활용하여 그래픽 인터페이스 환경에서 로직을 설계하였다.And, P. Blache and H. Rabah applied the modified Cholesky decomposition to calculate the inverse matrix without root computation. In addition, P. Blache and H. Rabah designed the logic in a graphical interface environment using the Xilinx System Generator based on Matlab Simulink.

그런데, 종래의 OMP 알고리즘을 구현한 RTL 로직은 센서를 통해 입력되는 압축 신호를 저장한 후 처리하는 방식으로 실시간 처리가 필요한 시스템에는 적용하기 어렵다. 또한, 하드웨어 디스크립션 랭귀지(hardware description language; HDL)를 활용하여 OMP를 로직으로 직접 설계할 경우 많은 시간과 비용이 소모되는 문제가 있다.However, the RTL logic implementing the conventional OMP algorithm is a method of storing the compressed signal input through the sensor and processing it, and thus it is difficult to apply to a system requiring real-time processing. In addition, when designing OMP as logic by utilizing hardware description language (HDL), there is a problem that it takes much time and cost.

한국등록특허 제10-1727088호Korean Patent No. 10-1727088 한국공개특허 제2018-0049035호Korean Patent Publication No. 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.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.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. 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, ISSPA, pp.1336-1340 , July, 2012.

본 발명은 아날로그 신호를 디지털 신호로 변환하여 원신호로 복원하는 디지털 신호 처리 방법을 제공한다.The present invention provides a digital signal processing method for converting an analog signal into a digital signal and restoring the original signal.

본 발명은 자일링스(Xilinx) FPGA로 구현되어 신호를 실시간으로 처리할 수 있는 디지털 신호 처리 방법을 제공한다.The present invention provides a digital signal processing method implemented in a Xilinx FPGA to process signals in real time.

본 발명은 데이터의 흐름을 고려한 RTL 로직 구조(dataflow)를 적용하고 입력 데이터를 병렬로 처리하여 압축 신호를 주파수 영역에서 실시간으로 처리할 수 있는 디지털 신호 처리 방법을 제공한다.The present invention provides a digital signal processing method capable of processing a compressed signal in real time in a frequency domain by applying an RTL logic structure considering data flow and input data in parallel.

본 발명의 일 양태에 따른 디지털 신호 처리 방법은 아날로그 신호를 디지털 신호로 변환하는 과정; 상기 디지털 신호를 시간 기반에서 주파수 기반으로 변환하는 과정; 상기 주파수 기반의 신호를 하나의 행렬 신호로 정렬하는 과정; 및 상기 행렬 신호로부터 압축 신호를 탐지하고 원신호로 복원하는 과정을 포함한다.According to an aspect of the present invention, there is provided a digital signal processing method comprising: converting an analog signal to a digital signal; Converting the digital signal from time based to frequency based; Arranging the frequency-based signals into one matrix signal; And detecting a compressed signal from the matrix signal and recovering the original signal.

상기 디지털 신호는 복수 채널로 출력되고, 복수 채널의 디지털 신호를 각각 주파수 기반으로 변환하며, 상기 복수의 주파수 기반 신호를 하나의 행렬(Y)로 정렬한다.The digital signal is output on a plurality of channels, converts a plurality of channels of digital signals into frequency-based signals, and arranges the plurality of frequency-based signals into one matrix (Y).

상기 원신호로 복원하는 과정의 시작 주기는 상기 주파수 기반 신호로 변환하는 과정의 시작 주기에 따라 결정된다.The start period of the process of restoring the original signal is determined according to the start period of the process of converting into the frequency-based signal.

상기 압축 신호의 탐지 및 복원 과정은 적어도 둘 이상으로 나뉘어 실시된다.The process of detecting and restoring the compressed signal is divided into at least two.

전단에서 탐지 및 복원한 압축 신호의 성분을 제거한 나머지 압축 신호가 후단에서 탐지 및 복원된다.And the remaining compressed signal after the component of the compressed signal detected and restored at the previous stage is removed is detected and restored at the latter stage.

상기 압축 신호의 탐지 및 복원 과정은, 압축 신호를 탐지하는 과정과, 탐지된 압축 신호를 복원하는 과정과, 복원된 압축 신호 성분을 제거한 나머지 압축 신호를 생성하는 과정을 포함한다.The process of detecting and recovering the compressed signal includes a process of detecting a compressed signal, a process of recovering the detected compressed signal, and a process of generating a residual compressed signal from which the recovered compressed signal is removed.

압축 신호가 소정 주파수 구간별로 나뉘어 구성된 행렬(Y)과 측정 행렬(

Figure 112018091235126-pat00001
)의 상관 행렬을 구하고, 상관 행렬에서 가장 큰 에너지를 포함한 주파수 구간을 탐지한다. 즉, 값이 가장 큰 행의 번호인 서포트 벡터를 구한다.A matrix (Y) formed by dividing a compressed signal by a predetermined frequency interval and a measurement matrix
Figure 112018091235126-pat00001
), And detects a frequency interval including the largest energy in the correlation matrix. That is, a support vector which is the number of the row having the largest value is obtained.

상기 압축 신호를 탐지하는 과정은, 반복횟수를 k∈{0, 1}이라 할 때, 측정 행렬(A)을 정규화하고 켤레전치를 취한 행렬의 1부터 48행을 각각 취한

Figure 112018091235126-pat00002
과 나머지 행렬(Rk, k=0 인 경우 Rk는 Y와 같다)을 곱하여 [수학식 1]의 상관 행렬(Z)을 구하는 과정과, 상관 행렬(Z)의 각 원소의 크기를 구하고 열 방향으로 더한 뒤 [수학식 2]의 값이 가장 큰 행의 번호 imax를 구하는 과정과, 행 번호 imax와 0㎐(DC)를 기준으로 대칭되는 번호를 구하여 [수학식 3]의 서포트 벡터(Sk)를 압축 신로호 구하는 과정을 포함한다.The process of detecting the compressed signal is performed by normalizing the measurement matrix A and taking 1 to 48 rows of the matrix obtained by taking the conjugate transpose when k ∈ {0, 1}
Figure 112018091235126-pat00002
And the rest of the matrix (R k, if k = 0 R k are the same as Y) for multiplying to obtain the size of each element of the process of calculating a correlation matrix (Z) of Equation 1 and a correlation matrix (Z) column and it adds the direction equation (2) values are obtained for the process of calculating the number i max of greater rows and row number i max and the number to be symmetrical relative to the 0㎐ (DC) of [equation 3] on the Support Vector (S k ) as a compressed signal.

[수학식 1][Equation 1]

Figure 112018091235126-pat00003
Figure 112018091235126-pat00003

[수학식 2]&Quot; (2) "

Figure 112018091235126-pat00004
Figure 112018091235126-pat00004

[수학식 3]&Quot; (3) "

Figure 112018091235126-pat00005
Figure 112018091235126-pat00005

여기서, Ac는 측정 행렬(A)의 열 크기.Where A c is the column size of the measurement matrix (A).

상기 복원 과정은, 측정 행렬(A)에서 서포트 벡터에 해당하는 열만을 선택하여 [수학식 4]의 행렬(As)를 생성하는 과정과, 행렬(As)과 켤레전치를 취한 행렬

Figure 112018091235126-pat00006
을 이용하여 [수학식 5]의 C 행렬을 생성하는 과정과, C 행렬의 역행렬을 구하는 과정과, 역행렬과 행렬
Figure 112018091235126-pat00007
로부터 [수학식 6]의 사영 행렬(G)을 구하는 과정과, 사영 행렬(G)와 행렬(Y)를 이용하여 [수학식 7]의 복원 신호의 스펙트럼
Figure 112018091235126-pat00008
을 계산하는 과정을 포함한다.The restoring process includes the steps of generating a matrix A s of [Equation 4] by selecting only a column corresponding to a support vector in the measurement matrix A, and a matrix A s ,
Figure 112018091235126-pat00006
, Generating a C matrix of Equation (5) using an inverse matrix and a matrix, obtaining an inverse matrix of a C matrix,
Figure 112018091235126-pat00007
(G) of the restored signal of Equation (6) using the projection matrix (G) and the matrix (Y)
Figure 112018091235126-pat00008
.

[수학식 4]&Quot; (4) "

Figure 112018091235126-pat00009
Figure 112018091235126-pat00009

[수학식 5]&Quot; (5) "

Figure 112018091235126-pat00010
Figure 112018091235126-pat00010

[수학식 6]&Quot; (6) "

Figure 112018091235126-pat00011
Figure 112018091235126-pat00011

[수학식 7]&Quot; (7) "

Figure 112018091235126-pat00012
Figure 112018091235126-pat00012

상기 나머지 압축 신호를 생성하는 과정은, 행렬(As)와 복원 신호의 스펙트럼

Figure 112018091235126-pat00013
를 이용하여 [수학식 8]의 압축 신호
Figure 112018091235126-pat00014
를 추정하는 과정과, 수신된 행렬(Y)에서 추정한 압축 신호
Figure 112018091235126-pat00015
을 제거한 [수학식 9]의 나머지 신호(R)을 구하는 과정을 포함한다.The step of generating the rest of the compressed signal is a matrix of the spectrum (A s) and the reconstructed signal
Figure 112018091235126-pat00013
The compression signal of the equation (8)
Figure 112018091235126-pat00014
Estimating a received compression matrix Y,
Figure 112018091235126-pat00015
(R) of Equation (9) by removing the residual signal (R).

[수학식 8]&Quot; (8) "

Figure 112018091235126-pat00016
Figure 112018091235126-pat00016

[수학식 9]&Quot; (9) "

Figure 112018091235126-pat00017
Figure 112018091235126-pat00017

본 발명의 실시 예들에 따른 디지털 신호 처리 방법은 압축 신호를 탐지하고 복원하는 과정을 실시간으로 처리할 수 있다. 즉, 기존에는 디지털 신호의 처리 속도가 신호가 입력되는 속도보다 느려서 압축 신호를 저장한 후 저장된 압축 신호를 읽어와 처리하기 때문에 실시간 처리가 불가능하였다. 그러나, 본 발명은 압축 신호를 직교 매칭 추구(OMP) 알고리즘이 구현된 고속 FPGA로 처리하기 때문에 실시간으로 탐지 및 복원이 가능하다. 또한, 본 발명은 압축 신호를 탐지 및 복원하는 복원부가 복수로 구성되어 전단의 복원부에서 입력 압축 신호로부터 복원한 원신호를 제외한 나머지 원신호를 후단의 복원부가 탐지 및 복원하는 파이프라인 구조로 구현될 수 있다. 따라서, 본 발명은 압축 신호를 파이프라인 구조로 탐지 및 복원하고 실시간 탐지 및 복원이 가능하므로 넓은 주파수 대역에 걸쳐있는 레이더와 통신신호를 실시간으로 감시, 감청할 수 있는 수신기를 개발할 수 있다.The digital signal processing method according to embodiments of the present invention can process the process of detecting and restoring the compressed signal in real time. That is, since the processing speed of the digital signal is lower than the input speed of the signal, the compressed signal is stored and then the stored compressed signal is read and processed. However, since the present invention processes the compressed signal in a high-speed FPGA implemented with an orthogonal matching seek (OMP) algorithm, it can detect and restore in real time. In addition, the present invention provides a pipeline structure in which a reconstructing unit for detecting and restoring a compressed signal is composed of a plurality of reconstructing units, and the restored original signal excluding the original signal restored from the input compressed signal by the reconstructing unit at the previous stage is detected and restored . Accordingly, the present invention can detect and restore a compressed signal in a pipeline structure, and real-time detection and restoration are possible, so that a receiver capable of monitoring and intercepting a radar and a communication signal over a wide frequency band in real time can be developed.

도 1은 본 발명의 일 실시 예에 따른 디지털 신호 처리 장치의 구성을 설명하기 위한 블럭도.
도 2는 행렬곱 연산에 이용된 HLS 소스코드.
도 3은 본 발명의 일 실시 예에 따른 디지털 신호 처리 장치의 복원부의 구성 및 처리 흐름을 설명하기 위한 블럭도.
도 4는 복원부의 정합 모듈의 동작 예를 설명하기 위한 도면.
도 5 및 도 6은 각각 본 발명의 일 실시 예에 따른 디지털 신호 처리 장치의 복원부의 입력 및 출력 데이터의 타이밍도.
도 7은 비바도 HLS 합성 시 적용한 주요 옵션을 설명하기 위한 도면.
도 8은 신호 처리 장치의 복원부의 합성 결과를 요약한 도면.
도 9는 복원부의 모듈 별 처리 시간과 자원 사용량을 비교한 도면.
도 10은 C/RTL 코시뮬레이션 결과를 나타낸 도면.
도 11은 모의 압축 신호에 대해 비바도 HLS와 매트랩(Matlab)에서 복원한 신호의 실수부와 허수부 스펙트럼.
도 12는 본 발명의 일 실시 예에 따른 디지털 신호 처리 장치와 B. Knoop에 의해 개발된 RTL 로직의 성능을 비교한 도면.
1 is a block diagram illustrating a configuration of a digital signal processing apparatus according to an embodiment of the present invention.
2 is an HLS source code used for matrix multiplication.
3 is a block diagram illustrating a configuration and a processing flow of a reconstruction unit of a digital signal processing apparatus according to an embodiment of the present invention.
4 is a diagram for explaining an operation example of a matching module of a restoration unit;
5 and 6 are timing diagrams of input and output data of a reconstruction unit of a digital signal processing apparatus according to an embodiment of the present invention, respectively.
7 is a diagram for explaining major options applied in the synthesis of Vibado HLS.
8 is a diagram summarizing synthesis results of a restoration section of a signal processing apparatus;
FIG. 9 is a view showing a comparison between a processing time and a resource use amount for each module of the restoration unit; FIG.
10 is a diagram showing a result of C / RTL nose simulation.
11 shows the real part and the imaginary part spectrum of a signal restored by Vibado HLS and Matlab for a simulated compression signal.
12 is a diagram comparing performance of RTL logic developed by B. Knoop with a digital signal processing apparatus according to an embodiment of the present invention.

이하, 첨부된 도면을 참조하여 본 발명의 실시 예를 상세히 설명하기로 한 다. 그러나, 본 발명은 이하에서 개시되는 실시 예에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시 예들은 본 발명의 개시가 완전하도록 하며, 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. It should be understood, however, that the invention is not limited to the disclosed embodiments, but is capable of other various forms of implementation, and that these embodiments are provided so that this disclosure will be thorough and complete, It is provided to let you know completely.

1. 디지털 신호 처리 장치1. Digital signal processing device

도 1은 본 발명의 일 실시 예에 따른 디지털 신호 처리 장치를 설명하기 위한 블럭도이다. 1 is a block diagram for explaining a digital signal processing apparatus according to an embodiment of the present invention.

도 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를 이용하여 압축 신호를 탐지 및 복원하는 부분이다.1, an apparatus for processing a digital signal according to an exemplary embodiment of the present invention includes an analog-to-digital converter (ADC) 100 for converting an analog signal into a digital signal, A plurality of Fast Fourier Transforms (FFTs) 200, an arranging unit 300 for arranging signals of a plurality of channels input from a plurality of FFTs 200 into a matrix, And at least one decompression unit (400, 500) for detecting and restoring the compressed signal. Such a digital signal processing device can design the entire signal processing RTL logic into a pipeline structure in order to process the ADC data in real time. That is, since the OMP is a feedback structure in which the current output is used as the next input, the same operation must be repeated a predetermined number of times until the input data is output through the internal process. The ADC 100, the FFT 200, and the sorting unit 300 are pre-processing units for pre-processing the compressed signal, and at least one of the restoring units 400 and 500 includes a part for detecting and restoring the compressed signal using the OMP, to be.

이러한 디지털 신호 처리 장치의 구동 방법을 설명하면 다음과 같다. 아날로그 신호가 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 112018091235126-pat00018
가 입력되고, 제 1 복원부(400)는 OMP 과정을 통해 압축 신호에서 추정한 압축 신호 성분을 제거한 나머지 신호 R(residue), 그리고 서포트 벡터(support vector; SV)를 구한다. 제 2 복원부(500)는 제 1 복원부(400)로부터 복원되고 남은 압축 신호 Y'와, 측정 행렬 A, 그리고
Figure 112018091235126-pat00019
를 입력하고, 제 1 복원부(400)로부터 나머지 신호 R 및 서포트 벡터(SV)를 입력하여 OMP 과정을 통해 복원 신호의 스펙트럼 X와 서포트 벡터 SV를 출력한다.A driving method of such a digital signal processing apparatus will be described below. An analog signal is converted into a digital signal through the ADC 100, and a time-based signal is converted into a frequency-based signal through four FFTs 200, for example, a digital signal of four channels. In addition, the outputs of the four FFTs 200 are aligned by the alignment unit 300, and the alignment unit 300 outputs the compressed signal Y. FIG. That is, the arranging unit 300 arranges a plurality of signals output from the four FFTs 200 and outputs one compressed signal, that is, a matrix Y. Meanwhile, when the time-based signal is converted into a frequency-based signal by the FFT 200, energy is provided for each frequency unit, and the compressed signal can be detected by checking the energy of each frequency unit in the restoration units 400 and 500. At least one restoration unit (400, 500) detects a compressed signal, solves it, restores it, and outputs the original signal. That is, the restoration units 400 and 500 can detect a signal having the maximum energy as a compressed signal. At this time, the first decompression unit 400 detects and restores the first compressed signal, and the second decompression unit 500 detects and restores the second compressed signal from the signal received from the first decompression unit 400. That is, each of the restoring units 400 and 500 detects and restores one compressed signal every time the OMP is repeated. The first restoring unit 400 detects and restores one compressed signal, and the second restoring unit 400 Detects and compresses the compressed signal other than the compressed signal detected by the first decompression unit 400. [ The plurality of decompression units 400 and 500 may be provided to sequentially detect and recover the compressed signal. At this time, the size of the matrix is increased by repeating the OMP by the plurality of restoring units 400 and 500. That is, the size of the matrix computed by the second decompression unit 500 is larger than the size of the matrix computed by the first decompression unit 400. Meanwhile, the first reconstructing unit 400 normalizes the compressed signal Y output from the aligning unit 300, the measurement matrix A, and the measurement matrix A, and takes 1 to 48 rows of the matrix obtained by taking conjugate transparency
Figure 112018091235126-pat00018
And the first decompression unit 400 obtains a residual signal R (residue) obtained by removing the compressed signal component estimated in the compressed signal through the OMP process, and a support vector (SV). The second reconstructing unit 500 reconstructs the compressed signal Y 'restored from the first reconstructing unit 400, the measurement matrix A, and
Figure 112018091235126-pat00019
And inputs the remaining signal R and the support vector SV from the first reconstructing unit 400 and outputs the spectral X of the reconstructed signal and the support vector SV through the OMP process.

제 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 단계를 과정을 거쳐 압축 신호를 선택하고 복원하며, 복원된 압축 신호를 제외한 나머지 압축 신호를 생성한다.The OMP process performed through the first and second restoration units 400 and 500 is as follows. Here, the OMP stages 1 to 3 are a process of detecting a compressed signal, and the OMP stage 4 to the OMP stage 7 is a process of restoring a compressed signal, and the OMP stage 8 and the OMP stage 9 are stages of restoring the compressed signal And then generating the compressed signal. In the matching process for detecting a compressed signal, a correlation matrix between a matrix (Y) formed by dividing a compressed signal by a constant frequency interval and a measurement matrix is obtained, and a support vector (SV) Signal). For example, when a radio signal existing over a frequency range of 2 GHz is multiplied by a pseudo-random pattern signal, the entire 2 GHz is divided into small portions of 31 MHz units, and each portion is divided into low frequency bands (base band) Gathered. At this time, a number is assigned to each part, and a search is made for a support vector having the largest energy, that is, the number of the part having the largest data value, in order to find the number of the part where the signal exists. The restoration process of the OMP 4 stage to the OMP 7 stage selects only the column corresponding to the support vector in the measurement matrix A and restores the detected compressed signal through a plurality of least squares processes. The OMP 1 stage through the OMP 9 stage are performed to select and restore the compressed signal, and the remaining compressed signals except for the recovered compressed signal are generated.

OMP 1 단계(정합) : 측정 행렬 A를 정규화하고 켤레전치(conjugate transp ose)를 취한 행렬의 1부터 48행을 취한

Figure 112018091235126-pat00020
과 행렬 Rk을 곱하여 상관행렬 Z를 구한다. OMP 1 step (matching): normalizing the measurement matrix A and taking 1 to 48 rows of the matrix taking the conjugate transposse
Figure 112018091235126-pat00020
And the matrix R k to obtain a correlation matrix Z.

Figure 112018091235126-pat00021
Figure 112018091235126-pat00021

여기서, Rk는 나머지(residue)를 뜻하는 복소 행렬로서, 반복 횟수가 k=0일 때 R0=Y가 된다. k=0은 제 1 복원부(400)의 출력이므로 제 1 복원부(400)에 의해 생성된 행렬 R0는 행렬 Y가 된다.Here, R k is a complex matrix representing the residue, and R 0 = Y when the number of repetitions is k = 0. Since k = 0 is the output of the first decompression unit 400, the matrix R 0 generated by the first decompression unit 400 becomes the matrix Y. [

OMP 2 단계(정합) : 상관 행렬 Z의 각 원소의 크기를 구하고 열 방향으로 더한 뒤 값이 가장 큰 행의 번호 imax를 구한다.OMP Step 2 (Matching): Find the size of each element of the correlation matrix Z, add it in the column direction, and find the number i max of the row with the largest value.

Figure 112018091235126-pat00022
Figure 112018091235126-pat00022

OMP 3 단계(정합) : 전 단계에서 구한 가장 큰 행의 번호 imax와 0㎐(DC)를 기준으로 대칭되는 번호를 구하여 서포트 벡터(support vector; SV)를 구한다.Step 3 (Matching) of OMP: Obtain a support vector (SV) by finding the symmetric number based on the number i max and 0 Hz (DC) of the largest row obtained in the previous step.

Figure 112018091235126-pat00023
Figure 112018091235126-pat00023

여기서, Ac는 측정 행렬 A의 열 크기이고, 서포트 벡터의 원소 수는 매 반복마다 2(k+1)씩 증가한다.Here, A c is the column size of the measurement matrix A, and the number of elements of the support vector increases by 2 (k + 1) every repetition.

OMP 4 단계(선택) : 측정 행렬 A에서 서포트 벡터에 해당하는 열만을 선택하여 새로운 행렬 As를 생성한다.OMP Step 4 (optional): Create a new matrix A s by selecting only the column corresponding to the support vector in the measurement matrix A.

Figure 112018091235126-pat00024
Figure 112018091235126-pat00024

여기서, 행렬 As의 열은 매 반복마다 2(k+1)씩 증가한다. 즉, 첫번째 OMP를 적용할 경우, 즉 제 1 복원부(400)를 통하면 행렬 As의 열은 2이고, 두번째 OMP를 적용할 경우, 즉 제 2 복원부(500)를 통하면 As의 열은 4이다. Here, the column of the matrix A s increases by 2 (k + 1) every repetition. That is, the first case of applying the OMP, i.e. of the case to 1, and when through the restoration unit 400, the column of the matrix A s is 2, applying a second OMP, that is, if through the second decompression unit (500) A s The heat is 4.

OMP 5 단계(최소제곱해) : 행렬 As과 켤레전치를 취한 행렬

Figure 112018091235126-pat00025
을 활용하여 C 행렬을 구한다.OMP 5th step (least squares): matrix with matrix A s and conjugate transpose
Figure 112018091235126-pat00025
To obtain a C matrix.

Figure 112018091235126-pat00026
Figure 112018091235126-pat00026

OMP 6 단계(최소제곱해) : 전 단계에서 구한 행렬의 역행렬을 구하여 사영 행렬 G를 구한다. OMP Step 6 (least squares): Obtain the inverse matrix of the matrix obtained in the previous step and obtain the projection matrix G.

Figure 112018091235126-pat00027
Figure 112018091235126-pat00027

OMP 7 단계(최소제곱해) : 사영 행렬 G와 행렬 Y를 이용하여 복원 신호의 스펙트럼

Figure 112018091235126-pat00028
를 계산한다. 즉, 압축 신호를 복원하여 복원 신호를 생성한다.OMP Step 7 (Least squares): Spectra of reconstructed signal using projection matrix G and matrix Y
Figure 112018091235126-pat00028
. That is, the restored signal is generated by restoring the compressed signal.

Figure 112018091235126-pat00029
Figure 112018091235126-pat00029

여기서,

Figure 112018091235126-pat00030
행렬의 행은 매 반복마다 2(k+1)씩 증가한다. 즉, 첫번째 OMP를 적용할 경우, 즉 제 1 복원부(400)를 통하면 행렬
Figure 112018091235126-pat00031
의 행은 2이고, 두번째 OMP를 적용할 경우, 즉 제 2 복원부(500)를 통하면
Figure 112018091235126-pat00032
의 행은 4이다. here,
Figure 112018091235126-pat00030
The row of the matrix increases by 2 (k + 1) every repetition. That is, when the first OMP is applied, that is, through the first restoring unit 400,
Figure 112018091235126-pat00031
Is 2, and when the second OMP is applied, that is, through the second restoration unit 500
Figure 112018091235126-pat00032
Is 4.

OMP 8 단계(최소제곱해) :

Figure 112018091235126-pat00033
를 이용하여 압축 신호
Figure 112018091235126-pat00034
를 추정한다. 즉, OMP 4 단계에서 생성된 행렬 As와 복원 신호의 스펙트럼
Figure 112018091235126-pat00035
를 이용하여 압축 신호
Figure 112018091235126-pat00036
를추정한다.OMP Step 8 (least squares):
Figure 112018091235126-pat00033
Lt; RTI ID = 0.0 >
Figure 112018091235126-pat00034
. That is, the matrix A s generated in step 4 of the OMP and the spectrum of the restored signal
Figure 112018091235126-pat00035
Lt; RTI ID = 0.0 >
Figure 112018091235126-pat00036
.

Figure 112018091235126-pat00037
Figure 112018091235126-pat00037

OMP 9 단계(나머지): 수신된 압축 신호 Y에서 추정한 압축 신호 성분

Figure 112018091235126-pat00038
을 제거한 나머지 신호 R(residue)을 구한다. OMP step 9 (remainder): Compressed signal component estimated from received compressed signal Y
Figure 112018091235126-pat00038
And the remaining signal R (residue).

Figure 112018091235126-pat00039
Figure 112018091235126-pat00039

사용자가 설정한 반복횟수 만큼 k를 증가시키면서 1단계부터 다시 반복하고, 최종으로 복원 신호의 스펙트럼

Figure 112018091235126-pat00040
와 서포트 벡터를 구한다Repeating the steps from the first step while increasing k by the number of repetitions set by the user,
Figure 112018091235126-pat00040
And a support vector

2. 제약 조건2. Constraints

한편, 본 발명의 디지털 신호 처리 장치는 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 클록이 되어야 한다.Meanwhile, the digital signal processing apparatus of the present invention can be designed based on Xilinx Vivado HLS which automatically converts C / C ++ language into HDL optimized for Xilinx FPGA. That is, the first and second restoring units 400 for performing the OMP process can be designed based on the Xilinx Vibado HLS. The performance measure of RTL logic using Vivado HLS is latency which is the time until input data is output and initial interval which is the time interval when data is input. In order to design a device that processes input data in real time, it is desirable to satisfy a start cycle condition rather than a processing time. To this end, the start period of the signal processing unit, that is, the restoration unit, may be determined according to the FFT 200 used in the preprocessing step, that is, the Xilinx FFT IP. The length is 256, and the start period of the Xilinx FFT IP having the streaming structure is 1 clock, but the processing time is 256 clocks. If the operation clock of the signal processing apparatus is set to 248 MHz in accordance with the speed of the ADC 100, since the clock is 1/248 MHz = 4 ns, the processing time of the FFT 200 is 256 x 4 ns = 1,024 ns. Accordingly, the first reconstruction unit 400 receiving the output of the FFT 200 should be able to process data every 1,024 ns, which is 256 clocks. However, considering that the RTL logic implementation process is easier as the operation clock is lower, the operating frequency of the OMP can be set to 124 MHz. At this time, every clock is 1 / 124MHz = 8ns and the start period should be 1,024ns / 8ns = 128 clocks.

3. 고정 소수점 모델링3. Fixed-point modeling

본 발명의 일 실시 예에 따른 디지털 신호 처리 장치를 설계하기 앞서 먼저 매트랩(Matlab)으로 알고리즘을 구현하고, 비트수 변화에 따른 OMP의 성능을 모의 실험하였다. 실험 결과 14 비트 이상의 고정 소수점 변수를 사용한 경우 95% 이상의 신호 복원 성능을 확인할 수 있다. 실험 결과에 따라 결정된 입출력 데이터의 크기와 고정 소수점 형식은 [표 1]과 같다.Prior to designing a digital signal processing apparatus according to an embodiment of the present invention, an algorithm is implemented in Matlab and the performance of OMP according to the number of bits is simulated. Experimental results show that more than 95% of signal restoration performance can be obtained when fixed-point variables of 14 bits or more are used. Table 1 shows the size and fixed-point format of input / output data determined according to the experimental results.

변수variable 행렬 크기Matrix size 형식form 비트수/소수Number of bits / decimal 구분division R, YR, Y 20×3220 x 32 복소수Complex number 14/814/8 입출력I / O

Figure 112018091235126-pat00041
Figure 112018091235126-pat00041
48×2048 x 20 복소수Complex number 14/814/8 입력input AA 20×9620 x 96 복소수Complex number 14/814/8 입력input
Figure 112018091235126-pat00042
Figure 112018091235126-pat00042
2(k+1)×322 (k + 1) x 32 복소수Complex number 14/1014/10 출력Print

4. 입출력 모듈 설계4. I / O module design

입출력 데이터는 주로 비트폭이 큰 복소 행렬이므로, 입출력 포트는 모두 블록램(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 등 다양한 저장 장치를 이용할 수 있다.Since the input / output data is a complex matrix having a large bit width, all the input / output ports can be designed using a block RAM (BRAM) interface. For example, in FIG. 1, data may be stored in the outputs of the arranging unit 300 and the first restoring unit 400, between the first and second restoring units 400 and 500, and in the output of the second restoring unit 500 Block RAM can be provided. That is, a first data storage unit may be provided between the output of the sorting unit 300 and the input of the first decompression unit 400, and the output of the first decompression unit 400 and the input of the second decompression unit 500 And a third data storage unit may be provided at the output of the second decompression unit 500. In this case, Meanwhile, although the block RAM is described as an example of a data storage unit, various storage units such as a DRAM and an SRAM may be used in addition to the block RAM.

식 (1)∼(3)의 정합 연산을 빠르게 처리하기 위해 입력인 행렬 또는 행렬과 행렬을 다수의 벡터로 나누어 다량의 데이터가 동시에 입력되도록 한다. 예를 들어, 행렬을 열 방향으로 크기가 20×8인 4개의 부분 행렬로 나누고, 각 부분 행렬을 행 방향으로 크기가 18인 20개의 벡터로 나누면, 매 클록마다 20×4=80개의 표본을 동시에 모듈로 입력받을 수 있다. 그러면 식 (1)의 연산 결과인 행렬의 원소를 매 클록마다 4개씩 계산할 수 있어 행렬 곱을 고속으로 처리할 수 있다.In order to process the mathematical expressions (1) - (3) quickly, input matrix or matrix and matrix are divided into multiple vectors so that a large amount of data is simultaneously input. For example, if we divide the matrix by four submatrices of size 20 × 8 in the column direction and divide each submatrix by 20 vectors of size 18 in the row direction, 20 × 4 = 80 samples per clock At the same time, the module can receive input. Then, the elements of the matrix, which is the result of the operation of Equation (1), can be computed every four clocks, so that matrix multiplication can be processed at high speed.

입력 행렬을 다수의 벡터로 나누는 비바도 HLS directive 소스 코드는 다음과 같다. 소괄호로 표시한 dim이 1이면 행 방향, 2이면 열 방향으로 variable에 표기된 포트가 개별 벡터로 나뉘어 입력된다.The Vibado HLS directive source code for dividing the input matrix into multiple vectors is as follows. If the dim indicated by parentheses is 1, the port indicated by variable in the row direction and 2 by the column direction are divided into separate vectors.

#pragma HLS ARRAY_RESHAPE variable=( ) complete dim=( )#pragma HLS ARRAY_RESHAPE variable = () complete dim = ()

K=1, 즉 제 2 복원부(500)의 출력인 X 행렬의 크기 또한 4×32이다. X행렬을 열 방향으로 크기가 4×8인 4개의 부분 행렬로 나누고, 행의 수만큼 출력 포트를 만들어 데이터가 원활히 출력되도록 한다.K = 1, that is, the size of the X matrix, which is the output of the second decompression unit 500, is also 4 × 32. The X matrix is divided into four sub-matrices each having a size of 4 x 8 in the column direction, and an output port is formed by the number of rows, so that data is output smoothly.

5. 행렬곱 모듈 설계5. Matrix multiplication module design

모든 OMP 하위 모듈에는 행렬곱 연산이 포함되어 있다. 행렬곱 연산은 행렬곱 HLS 소스코드를 도시한 도 2에 나타낸 바와 같이 3개의 for 반복문을 이용하여 구현할 수 있다. 예를 들어, 크기가 r×m인 행렬과 m×c인 행렬을 곱할 때, 바깥 반복문은 r번, 중간 반복문은 c번, 안쪽 반복문은 m번 수행되어야 한다. 비바도 HLS로 행렬곱을 구현할 때, 하드웨어적으로 가장 효율적인 구조는 모든 연산이 m반복문에서 수행되도록 하는 것이다.All OMP submodules contain matrix multiplication operations. The matrix multiplication operation can be implemented using three for loop statements as shown in FIG. 2, which shows the matrix product HLS source code. For example, when multiplying a matrix of size r × m by a matrix of m × c, the outer loop should be r, the intermediate loop c times, and the inner loop m times. When implementing the matrix multiplication with Vivado HLS, the most efficient hardware structure is that all operations are performed on the m-loop.

행렬곱 연산은 총 r×c×m번의 반복이 필요하고, 행렬의 크기가 증가할수록 총 반복 횟수가 배수로 증가하기 때문에 시작주기 같은 제약조건을 만족할 수 없다. 이때, c반복문에 파이프라인 구조를 적용하면 m반복문은 자동으로 풀어지고 (unroll), 전체 반복 횟수는 r×c만큼 감소하여 처리 속도가 눈에 띄게 향상될 수 있다. 대신 m반복문에 사용되는 자원은 m배 더 증가한다.The matrix multiplication requires a total of r × c × m repetitions. As the matrix size increases, the total number of iterations increases by a factor of several. In this case, applying the pipeline structure to the c loop, the m loops are automatically unrolled, and the total number of iterations is reduced by r × c, so the processing speed can be significantly improved. Instead, the resources used in the m-loop increase by m times.

이처럼 고속 처리가 필요한 경우 반복문 내에 자원 사용량을 늘려 처리 속도를 증가시킬 수 있다. 그러나, RTL 로직의 면적이 증가하여 레지스터간 연결 단계에서 많은 시간 위반(timing violation)이 발생할 수 있다. 따라서, 제약 조건에 맞게 자원 사용량과 행렬곱 연산 속도의 적절한 균형을 맞추는 작업이 필요하다.If such high-speed processing is required, the processing speed can be increased by increasing the resource usage in the loop. However, the area of the RTL logic increases, and timing violations may occur in the register-to-register connection stage. Therefore, it is necessary to balance the resource usage with the matrix multiplication rate to meet the constraints.

6. 복원부 구조6. Rescue structure

디지털 신호 처리 장치의 전체적인 신호 흐름은 도 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)은 복원된 압축 신호를 제거한 나머지 압축 신호를 생성하는 모듈이다.The overall signal flow of the digital signal processing apparatus is shown in FIG. That is, the structure and signal flow of the first and second restoration units 400 and 500 are shown in FIG. As shown in FIG. 3, the decompression unit is composed of seven modules, and the module-based pipeline design (dataflow) is performed so that the input data sequentially passes through the module. That is, the matching module 110 for performing the OMP 1 stage to the OMP 3 stage, the selection module 120 for performing the OMP 4 stage, the C matrix module 130 for performing the OMP 5 stage, to obtain the inverse matrix C -1 module 140 and the G matrix module 150 to perform the OMP step 6, and X matrix module 160 to perform the OMP step 7, OMP performing step 8 and step 9 OMP R matrix module 170 as shown in FIG. Here, the matching module 110 detects the compressed signal, the selection module 120 to the X matrix module 160 restore the compressed signal, and the R matrix module 170 restores the remaining compressed signals except for the recovered compressed signal . That is, the matching module 110 is a detection module for detecting a compressed signal, and the selection module 120 to the X matrix module 160 are reconstruction modules for reconstructing the compressed signal. The R matrix module 170 reconstructs the reconstructed compressed signal And generates the remaining compressed signals.

정합 모듈(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값을 서포트 벡터로 지정한다.There are three for loops in the matching module 110, and when the numbers of each loop are r, c, and m in order from the outside, all operations are performed in the m loop. FIG. 4 shows an operation example of the matching module. FIG. 4 shows the order in which elements of the Z matrix of the OMP 1 stage are generated according to the r and c loop numbers. As shown in FIG. 4, each time the value of c increases, four elements from the 0th row to the 3th row of the matrix are calculated. c Store the value of the maximum value of the vector and the number of r corresponding to it, if s is the value obtained by accumulating this value in the direction of the arrow until the number of the loop is 31. At this time, the tournament method is utilized to find the maximum value. Then, s vector which accumulates the elements of the 4th to 7th rows of the Z matrix is sought and the maximum value is found and compared with the previous maximum value. In this way, the maximum value is searched, and the r value corresponding to the value is designated as a support vector.

한편, 입력 Y 행렬은 정합 모듈(110) 이후 X와 R 행렬을 계산하는 모듈에서도 사용된다. 비바도 HLS 매뉴얼에는 모듈간 파이프라인 동작이 수행되려면 한 모듈의 출력이 다음 모듈을 건너뛰어 전달되지 않을 것을 권장하고 있다. 따라서, Y 행렬을 비롯한 신호들이 되도록 모듈 내부를 그대로 지나쳐 다음 모듈로 전달되도록 설계한다.The input Y matrix, on the other hand, is also used in the module to compute the X and R matrices after the matching module 110. The Vivado HLS manual recommends that the output of one module should not be passed over to the next module for inter-module pipeline behavior. Therefore, it is designed so that the signal including the Y matrix passes through the inside of the module and is transmitted to the next module.

선택 모듈(120)은 측정 행렬 A에서 서포트 벡터에 해당하는 열만을 가져와 새로운 행렬

Figure 112018091235126-pat00043
Figure 112018091235126-pat00044
를 생성한다. 이러한 연산은 대수 연산이 필요하지 않다. The selection module 120 takes only the column corresponding to the support vector in the measurement matrix A and generates a new matrix
Figure 112018091235126-pat00043
and
Figure 112018091235126-pat00044
. These operations do not require logarithmic operations.

C 행렬 모듈(130)은 선택 모듈(120)의 출력을 서로 곱하여 C 행렬을 생성한다. 정합 모듈(110)과 마찬가지로 가장 안쪽 반복문이 풀리도록 두 번째 반복문에 파이프라인 directive를 적용하였다.The C matrix module 130 multiplies the output of the selection module 120 to generate a C matrix. Like the matching module 110, the pipeline directive is applied to the second loop so that the innermost loop is released.

역행렬 모듈(140)은 C 행렬의 역행렬을 구한다. 이때, C 행렬은 정방행렬이고 대각원소는 항상 실수이며, 대각원소를 기준으로 대칭되는 원소는 서로 복소 켤레(complex conjugate)를 취한 값이다. 또한, C 행렬의 역행렬 또한 동일한 성질을 갖는다. 이러한 특성을 활용하면 역행렬 연산에 필요한 연산과 RTL 로직 자원을 절감할 수 있다. C 행렬은 반복횟수 k에 따라 크기가 2배씩 증가한다. K=0인 경우, 즉, 제 1 복원부(400)에서의 행렬의 크기는 2×2이고 다음과 같은 역행렬 공식을 적용할 수 있다.The inverse matrix module 140 obtains the inverse matrix of the C matrix. In this case, the C matrix is a square matrix, the diagonal elements are always real numbers, and the elements symmetric with respect to the diagonal elements are complex conjugate values. The inverse matrix of the C matrix also has the same property. Using these characteristics can reduce the computation and RTL logic resources required for inverse operations. The C matrix increases in size by a factor of 2 according to the number of repetitions k. When K = 0, that is, the size of the matrix in the first decompression unit 400 is 2 × 2, and the following inverse matrix formula can be applied.

Figure 112018091235126-pat00045
Figure 112018091235126-pat00045

K=1인 경우, 즉, 제 2 복원부(500)에서의 행렬의 크기는 4×4 이고, 적용할 수 있는 역행렬 공식은 다음과 같다.If K = 1, that is, the size of the matrix in the second decompression unit 500 is 4 × 4, and the applicable inverse matrix formula is as follows.

Figure 112018091235126-pat00046
Figure 112018091235126-pat00046

Figure 112018091235126-pat00047
Figure 112018091235126-pat00047

Figure 112018091235126-pat00048
Figure 112018091235126-pat00048

이때, C 행렬의 특성에 따라 detC는 실수 값이 된다. 고정 소수점 detC의 역수 연산은 부동소수점 연산기를 사용하여 구현한다.At this time, detC is a real value depending on the characteristics of the C matrix. The inverse operation of the fixed-point detC is implemented using a floating-point operator.

G 및 X 행렬 모듈(150, 160)은 모두 복소 행렬 곱으로, 정합 모듈(110)과 유사하게 구현한다. 즉, G 및 X 행렬 모듈(150, 160)은 각각 OMP 6 단계 및 7 단계를 수행한다. G 행렬 모듈(160)은 역행렬로부터 사행 행렬 G를 구하고, X 행렬 모듈(160)은 복원 신호의 스펙트럼

Figure 112018091235126-pat00049
을 계산한다. 이때, G 행렬 모듈(160)은
Figure 112018091235126-pat00050
와 역행렬 C-1를 이용하여 사행 행렬 G를 구한다. 즉,
Figure 112018091235126-pat00051
은 C 행렬 모듈(130) 및 G 행렬 모듈(150)에 입력된다.The G and X matrix modules 150 and 160 are all complex matrix multiplications and are implemented similar to the matching module 110. That is, the G and X matrix modules 150 and 160 perform OMP steps 6 and 7, respectively. The G matrix module 160 obtains a meander matrix G from the inverse matrix, and the X matrix module 160 obtains the spectrum
Figure 112018091235126-pat00049
. At this time, the G matrix module 160
Figure 112018091235126-pat00050
And the inverse matrix C -1 . In other words,
Figure 112018091235126-pat00051
Are input to the C matrix module 130 and the G matrix module 150. [

R 행렬 모듈(170)에서는 OMP 8 및 9단계가 같이 수행되도록 한다. 즉, R 행렬 모듈(170)은

Figure 112018091235126-pat00052
를 이용하여 압축 신호
Figure 112018091235126-pat00053
를 생성하고, 수신된 압축 신호에서 추정한 압축 신호 성분을 제거한 나머지 신호 R(residue)을 구한다. 이때, R 행렬 모듈(170)은 정합 모듈(110)과 마찬가지로 4개의 표본이 동시에 계산되도록 한다.In the R matrix module 170, OMPs 8 and 9 are performed simultaneously. That is, the R matrix module 170
Figure 112018091235126-pat00052
Lt; RTI ID = 0.0 >
Figure 112018091235126-pat00053
And obtains a residual signal R (residue) by removing the compressed signal component estimated from the received compressed signal. At this time, the R matrix module 170 allows four samples to be calculated simultaneously as in the case of the matching module 110.

7. RTL 로직 최적화7. RTL logic optimization

불필요한 FPGA 자원의 소모를 줄이고 게이트 간 경로가 원활히 지정되도록 최적화를 수행한다. 즉, FPGA 내에는 예를 들어 곱셈기, 메모리, 룩업 테이블, 레지스터 등이 정해진 위치에 배치되어 있으며, 이들간 경로를 프로그램하여 동작된다. 이때, 곱셈기의 수를 줄여 FPGA 자원이 원활히 연결되도록 할 수 있다. 즉, 일반적인 복소곱 연산에는 아래 식의 세번째 항과 같이 A와 B를 곱하는 4개의 곱셈기가 필요하다. 그러나, 복소곱 연산을 다음 식과 같이 P0, P1, P2로 변경하면 3개의 곱셈기로도 연산이 가능하여 곱셈기 자원을 절약할 수 있다. 비바도 HLS DSP 라이브러리에는 3개의 곱셈기를 사용하는 복소 곱셈기인 hls::cmpy 함수가 있다.Optimization is performed to reduce unnecessary FPGA resource consumption and to smoothly route the gates. That is, for example, a multiplier, a memory, a lookup table, a register, and the like are disposed in predetermined positions in the FPGA, and the paths between them are programmed and operated. At this time, it is possible to reduce the number of multipliers so that FPGA resources can be connected smoothly. That is, for the general complex multiplication operation, four multipliers are required to multiply A and B as in the third term of the following equation. However, if the complex multiplication operation is changed to P 0 , P 1 , and P 2 as shown in the following equation, it is possible to operate with three multipliers, thereby saving the multiplier resources. The Vivado HLS DSP library has a hls :: cmpy function that is a complex multiplier that uses three multipliers.

Figure 112018091235126-pat00054
Figure 112018091235126-pat00054

여기서, P0=(Ar+Ai)Bi, P1=(Br+Bi)Ar, P2=(Ai-Ar)Br 이다Where a, P 0 = (A r + A i) B i, P 1 = (B r + B i) A r, P 2 = (A i -A r) B r

설계한 RTL 로직의 처리 시간과 시작 주기가 주어진 제약 조건을 만족했더라도 구현 과정에서 FPGA 자원간 연결이 원활히 되지 않아 과도한 시간 위배(timing violation)이 발생할 수 있다. 이런 경우 FPGA에서 로직이 제대로 동작하지 않는다. 이 문제를 해결하기 위해 행렬곱 반복문 내의 시작 주기를 증가시킬 수 있다. 그러면 비바도 HLS가 반복문 내 연산이 다수 클록 동안 여유있게 수행되도록 조절하여 크리티컬 패스(critical path)가 감소하는 효과가 있다. 대신 반복문의 처리 시간이 증가하여 시작 주기 제약 조건에 어긋날 수 있다. 그러나, 반복문에 포함된 로직 사용량을 늘려서 이를 해결할 수 있다.Even if the processing time and the start period of the designed RTL logic satisfy the given constraints, the FPGA resources may not be connected smoothly in the implementation process, resulting in excessive timing violation. In this case, the logic in the FPGA does not work properly. To solve this problem, we can increase the start period in the matrix multiplication loop. Thus, the Vivado also has the effect of reducing the critical path by adjusting the operation of the HLS in the iterative operation so that it can be carried out freely for a plurality of clocks. Instead, the processing time of the iteration may increase, which may be against the start cycle constraint. However, it can be solved by increasing the amount of logic involved in the loop.

다음은 크리티컬 패스를 완화하는 비바도 HLS directive 소스코드이다. 시작 주기를 1에서 2로 증가시키면 처리 시간 또한 2배 증가하지만, UNROLL factor directive를 통해 반복문의 반복 횟수를 factor배 만큼 줄임으로써 자원 사용량을 2배 증가시켜 모듈의 처리시간을 그대로 유지할 수 있다.The following is the Vivado HLS directive source code to mitigate the critical path. Increasing the start cycle from 1 to 2 increases the processing time by a factor of two, but by using the UNROLL factor directive, the number of iterations of the loop is reduced by factor times, thereby doubling the resource usage and maintaining the processing time of the module.

#pragma HLS PIPELINE II=2#pragma HLS PIPELINE II = 2

#pragma HLS UNROLL factor=2#pragma HLS UNROLL factor = 2

상기한 바와 같은 본 발명의 일 실시 예에 따른 디지털 신호 처리 장치의 동작을 도 5 및 도 6의 타이밍 다이어그램을 이용하여 설명하면 다음과 같다.The operation of the digital signal processing apparatus according to an embodiment of the present invention as described above will be described with reference to the timing diagrams of FIGS. 5 and 6. FIG.

도 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의 차가 된다.5 is a timing diagram of input data of a restoration unit of a digital signal processing apparatus according to an embodiment of the present invention. As shown in FIG. 5, the control signal of the restoration unit includes ap_done to notify completion of operation, ap_start as a start signal, ap_idle to indicate RTL logic wait state, ap_ready to inform that it is ready to receive input, and ap_clk as a clock input. When ap_start becomes high, the restoration section starts to operate. Before the ap_done signal becomes high, the ap_ready signal becomes high and new data is input. This means that the module-based pipeline structure is operating properly as shown in FIG. The start period corresponds to the difference between the times T1 and T2 when the ap_ready signal becomes high and the processing time is the difference between L1 and L2 which is the time when the ap_start and ap_done signals become high.

데이터 Y는 총 4개의 포트를 통해 병렬로 입력되지만, 도 5에는 단일 포트만 나타내었다. 또한, 데이터 Y는 복소수이므로 각각 실수와 허수 포트로 나뉜다. 데이터를 읽어올 블록램을 제어하기 위한 주소인 address[2:0]와 ce(chip enable) 신호가 동시에 하이(high)가 되고, 한 클록 뒤에 실제 신호가 연이어 입력되는 것을 확인할 수 있다. 데이터 포트 q0[279:0]를 통해서는 한 표본 당 14비트인 20개의 표본이 280비트씩 동시에 입력되는 것을 확인할 수 있다.Data Y is input in parallel through a total of four ports, but only a single port is shown in FIG. Since the data Y is a complex number, it is divided into a real number and an imaginary number port. The addresses [2: 0] and ce (chip enable), which are addresses for controlling the block RAM to read data, are simultaneously high and the actual signals are inputted one clock after one clock. Through the data port q0 [279: 0], we can see that 20 samples of 14 bits per sample are input simultaneously at 280 bits.

데이터

Figure 112018091235126-pat00055
역시 4개의 AeH 포트를 통해 병렬로 입력되며, 각 포트 마다 실수와 허수 값을 입력 받는다. 타이밍 완화 기법이 적용되어, 신호 Y와는 달리 ce 신호가 띄엄띄엄 하이(high)가 되는 것을 확인할 수 있다. data
Figure 112018091235126-pat00055
It is also input in parallel through four AeH ports, and real and imaginary values are input to each port. As the timing relaxation technique is applied, it can be confirmed that the ce signal is spatially high, unlike the signal Y. [

데이터 A는 ce가 하이(high)일 때, 행렬 A을 저장한 블록램의 address[6:0] 번지에서 한 클록 뒤에 q0[279:0] 포트를 통해 각각 280비트씩 연이어 입력되는 것을 확인할 수 있다. 행력 A의 열 크기가 96이므로 블록램의 주소는 7비트가 할당되었다.Data A is sequentially input 280 bits through q0 [279: 0] port one clock after address [6: 0] of block RAM storing matrix A when ce is high have. Since the column size of A is 96, the address of the block RAM is assigned 7 bits.

도 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 부근에서 출력되기 시작한다.6 is a timing diagram of output data of a reconstruction unit of a digital signal processing apparatus according to an embodiment of the present invention. As shown in Fig. 6, the support vector value which is the result of the matching module at approximately 900 ns time point is outputted through the sv [31: 0] port together with the valid signal. Then, the data Y is output through the d [279: 0] port, and the data R is output successively. It can be confirmed that the address signal [2: 0] is output together with the ce signal which is the input of the block RAM for storing the output data. Both matrix Y and matrix R are output at four ports, but only one port is shown in FIG. When all outputs are complete, you can see that the ap_done signal goes high. After that, the support vector value of the data input at about 900 ns starts to be output at about 1700 ns.

이어서, 본 발명의 일 실시 예에 따른 디지털 신호 처리 장치의 검증 결과를 설명하면 다음과 같다.The verification result of the digital signal processing apparatus according to an embodiment of the present invention will now be described.

1) 합성(synthesis) 결과1) synthesis results

비바도 HLS 합성 시 적용한 주요 옵션은 도 7과 같다. 비바도에서 구현 시 발생하는 시간 위배(timing violation)을 최대한 줄이기 위해 바인드(bind), 스케줄(schedule), 언서튼티(uncertainty) 3가지 옵션을 설정하였다. 바인딩은 덧셈, 곱셈과 같은 연산자를 구체적인 RTL 로직 게이트에 대응시키는 단계로, 이 옵션을 'High'로 하면 합성 시간은 오래 길지만 RTL 로직이 최적화된다. 스케줄링은 매 클록 마다 수행되는 연산을 결정하는 단계로, 'High'로 하면 합성 시간은 오래 걸리지만 최소 클록 내에서 연산이 수행되도록 한다. 도 7에 도시된 바와 같이 바인드와 스케줄은 최대로 수행되도록 설정하였고(effort=high), 클럭 주기는 7.142ns이다. The main options applied in the Vibado HLS synthesis are shown in FIG. We have set three options: bind, schedule, and uncertainty to minimize the timing violation that occurs in Vivado implementation. Binding is the step of mapping operators such as addition and multiplication to specific RTL logic gates. When this option is set to 'High', the synthesis time is long but the RTL logic is optimized. Scheduling is a step of determining an operation to be performed for each clock. If 'High', it takes a long time to synthesize but the operation is performed in the minimum clock. As shown in FIG. 7, the bind and schedule are set to be performed at maximum (effort = high), and the clock cycle is 7.142 ns.

또한, 신호 처리 장치의 복원부의 합성 결과를 요약하면 도 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 클록 이하이며, 모듈 간 파이프라인 기법이 적용된 것을 알 수 있다.The synthesis result of the restoration unit of the signal processing apparatus is summarized in FIG. In Fig. 8, the clock Clock is the target clock, and the Estimated (Est.) Value indicates the clock that can be set to the maximum. When K = 0, that is, the first reconstruction unit has a clock of 7.14 ns and an estimated value of 4.98 ns. That is, the first decompression unit can operate fast at a clock of 7.14 ns and a clock speed of 4.98 ns. In other words, the first decompression unit has a period of 131 clocks until a signal is input and output, that is, the processing time (latency) is 131 clocks, and a time from input of the first signal until input of the next signal, 106 clocks. Also, when K = 1, that is, the second reconstruction unit has a clock of 7.14 ns and an estimated value of 5.61 ns. That is, the second reconstruction unit has no problem even if the clock is 7.14 ns and the clock is rapidly operated to 5.61 ns. The second restoration unit has a latency of 124 clocks and an interval of 104 clocks. Therefore, it can be seen that the restoration unit according to the present invention has a period of 128 clock or less, which is a constraint, and the inter-module pipeline scheme is applied.

2) 모듈 별 처리 시간과 자원 사용량2) Processing time and resource usage per module

도 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 복원부의 복수의 모듈의 처리 시간의 합이 큰 것을 확인할 수 있다FIG. 9 is a diagram showing the processing time and the resource use amount for each module of the restoration unit. FIG. That is, in FIG. 9, K = 0 and K = 1, that is, the first and second restoring units are BRAMs of the matching module, the selecting module, the C matrix module, the inverse matrix module, the G matrix module, the M matrix module, DSP, flip-flop (FF), and look-up table (LUT). As shown in FIG. 9, it is confirmed that more than 240 DSPs are consumed in the matching module in both the first and second restoration units, and a processing time of 100 clocks or more is required. In addition, it can be seen that the flip-flop and the look-up table are consumed much in comparison with other modules in the matching module. It should be noted that the amount of DSP usage required for inverse matrix computation is significantly increased in the second reconstruction unit than in the first reconstruction unit. This is due to the fact that the size of the C matrix is doubled, which means that many FPGA resources and processing time are consumed for matching and inverse matrix computation in OMP. Also, it can be confirmed that the sum of the processing times of the plurality of modules of the second restoring unit is larger than the sum of the processing times of the plurality of modules of the first restoring unit shown in FIG. 8 by applying the pipeline design

3) C/RTL 코시뮬레이션(cosimulation) 결과3) C / RTL nose simulation results

비바도 HLS에는 C와 HDL을 동시에 시뮬레이션 할 수 있는 C/RTL 코시뮬레이션(cosimulation) 기능이 있으며, 그 결과를 도 10에 나타내었다. 이때, 도 8과 도10의 처리 시간과 입력 주기값이 서로 다른 것을 주의해야 한다. 주로 C/RTL 코시뮬레이션의 시작 주기 값이 합성 결과값보다 크게 나오며, 반드시 C/RTL 코시뮬레이션 결과 값을 기준으로 설계를 해야 한다.Vivado HLS has a C / RTL nasal cosimulation function capable of simultaneously simulating C and HDL, and the results are shown in Fig. It should be noted that the processing time and the input period value in Figs. 8 and 10 are different from each other. The start period value of the C / RTL nose simulation is mainly larger than the synthesis result value, and must be designed based on the C / RTL nose simulation result value.

도 11은 모의 압축 신호에 대해 비바도 HLS와 매트랩(Matlab)에서 복원한 신호의 실수부와 허수부 스펙트럼을 나타낸 것이다. 즉, 도 11(a)는 실수부의 스펙트럼이고 도 11(b)는 허수부의 스펙트럼이다. 또한, 실선은 비바도 HLS 결과이고 점선은 매트랩 결과이다. 두 값의 정규화한 제곱평균오차(normalized mean square error, NMSE)는 약 1.8×10-3으로 계산되었다. 도시된 바와 같이 본 발명에 따른 비바도 HLS 결과(실선)와 매트랩 결과(점선)가 거의 일치함을 알 수 있다.11 shows the real part and the imaginary part spectrum of a signal restored by Vibado HLS and Matlab for a simulated compression signal. That is, Fig. 11 (a) is the spectrum of the real part and Fig. 11 (b) is the spectrum of the imaginary part. Also, the solid line is the result of Vivado HLS, and the dotted line is the result of MATLAB. The normalized mean square error (NMSE) of the two values was calculated to be about 1.8 × 10 -3 . As shown in the figure, the Vibado HLS result (solid line) and the MATLAB result (dotted line) according to the present invention are almost identical.

4) 성능 비교4) Performance comparison

본 발명의 일 실시 예에 따른 디지털 신호 처리 장치와 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배 빠른 것을 알 수 있다. 이는 실시간 처리를 목표로 디지털 신호 처리 장치를 설계했기 때문이다.FIG. 12 shows a comparison between the performance of the logic signal developed by B. Knoop and the digital signal processing apparatus according to an embodiment of the present invention. The logic parameters of the present invention were N = 48, M = 20, K = 2 and targeted to a Kintex Ultrascale FPGA (xcku115-flvb2104-2-i). B. Knoop used Virtex7 FPGAs for N = 128, M = 32, and K = 5. That is, the present invention performed two OMP processes for a 48 × 20 matrix and B. Knoop performed five OMP processes for a 128 × 32 matrix. As shown in FIG. 12, in the present invention, the block RAM (BRAM) is about 16 times, the DSP core is about 2.5 times, the flip flop (FF) is about 5.6 times, and the lookup table (LUT) is about 9.7 times It uses a lot of resources, but the processing time is about 10 times faster. This is because the digital signal processor is designed for real-time processing.

한편, 본 발명의 기술적 사상은 상기 실시 예에 따라 구체적으로 기술되었으나, 상기 실시 예는 그 설명을 위한 것이며, 그 제한을 위한 것이 아님을 주지해야 한다. 또한, 본 발명의 기술분야에서 당업자는 본 발명의 기술 사상의 범위 내에서 다양한 실시 예가 가능함을 이해할 수 있을 것이다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments. It will be apparent to those skilled in the art that various modifications and variations can be made in the present invention without departing from the spirit and scope of the invention.

100 : ADC 200 : FFT
300 : 정합부 400 : 제 1 복원부
500 : 제 2 복원부
100: ADC 200: FFT
300: matching portion 400: first restoration portion
500: second restoration unit

Claims (10)

아날로그 신호를 디지털 신호로 변환하는 과정;
상기 디지털 신호를 시간 기반에서 주파수 기반으로 변환하는 과정;
상기 주파수 기반의 신호를 하나의 행렬 신호로 정렬하는 과정; 및
상기 행렬 신호로부터 압축 신호를 탐지하고 원신호로 복원하는 과정을 포함하고,
상기 압축 신호의 탐지 및 복원 과정은,
압축 신호를 탐지하는 과정과,
탐지된 압축 신호를 복원하는 과정과,
복원된 압축 신호 성분을 제거한 나머지 압축 신호를 생성하는 과정을 포함하며,
상기 압축 신호를 탐지하는 과정은,
측정 행렬(A)을 정규화하고 켤레전치를 취한 행렬의 1부터 48행을 각각 취한
Figure 112019011766656-pat00085
과 나머지 행렬(Rk)을 곱하여 [수학식 1]의 상관 행렬(Z)을 구하는 과정과,
상관 행렬(Z)의 각 원소의 크기를 구하고 열 방향으로 더한 뒤 [수학식 2]의 값이 가장 큰 행의 번호 imax를 구하는 과정과,
행 번호 imax와 0㎐(DC)를 기준으로 대칭되는 번호를 구하여 [수학식 3]의 서포트 벡터(Sk)를 압축 신로호 구하는 과정을 포함하는 디지털 신호 처리 방법.
[수학식 1]
Figure 112019011766656-pat00086

[수학식 2]
Figure 112019011766656-pat00087

[수학식 3]
Figure 112019011766656-pat00088

여기서, Ac는 측정 행렬(A)의 열 크기.
Converting an analog signal into a digital signal;
Converting the digital signal from time based to frequency based;
Arranging the frequency-based signals into one matrix signal; And
Detecting a compressed signal from the matrix signal and restoring the original signal;
The process of detecting and restoring the compressed signal includes:
Detecting a compressed signal;
Recovering the detected compressed signal,
And generating a remaining compressed signal from which the restored compressed signal component is removed,
Wherein the step of detecting the compressed signal comprises:
The measurement matrix A is normalized and the first to 48 rows of the matrix taking the conjugate transpose are taken respectively
Figure 112019011766656-pat00085
And multiplied by the rest of the matrix (R k) a process of calculating a correlation matrix (Z) of Equation 1 and,
Calculating a size of each element of the correlation matrix Z and adding it to the column direction and obtaining the number i max of the row having the largest value of the expression (2)
Calculating a symmetric number based on the row number i max and 0 Hz (DC), and obtaining the support vector (S k ) of Equation (3) using the compressed signal.
[Equation 1]
Figure 112019011766656-pat00086

&Quot; (2) "
Figure 112019011766656-pat00087

&Quot; (3) "
Figure 112019011766656-pat00088

Where A c is the column size of the measurement matrix (A).
청구항 1에 있어서, 상기 디지털 신호는 복수 채널로 출력되고, 복수 채널의 디지털 신호를 각각 주파수 기반으로 변환하며, 상기 복수의 주파수 기반 신호를 하나의 행렬(Y)로 정렬하는 디지털 신호 처리 방법.
The digital signal processing method according to claim 1, wherein the digital signal is output in a plurality of channels, and the plurality of channels are converted into frequency-based signals, and the plurality of frequency-based signals are arranged in a matrix (Y).
청구항 2에 있어서, 상기 원신호로 복원하는 과정의 시작 주기는 상기 주파수 기반 신호로 변환하는 과정의 시작 주기에 따라 결정되는 디지털 신호 처리 방법.
The digital signal processing method of claim 2, wherein the start period of the process of restoring the original signal is determined according to a start period of a process of converting into the frequency-based signal.
청구항 2에 있어서, 상기 압축 신호의 탐지 및 복원 과정은 적어도 두번 이상 반복하여 실시되는 디지털 신호 처리 방법.
The method of claim 2, wherein the process of detecting and restoring the compressed signal is repeated at least twice.
청구항 4에 있어서, 전단에서 탐지 및 복원한 압축 신호의 성분을 제거한 나머지 압축 신호가 후단에서 탐지 및 복원되는 디지털 신호 처리 방법.
5. The digital signal processing method according to claim 4, wherein the remaining compressed signal from which the component of the compressed signal detected and restored at the previous stage is removed is detected and restored at the latter stage.
삭제delete 삭제delete 삭제delete 청구항 1에 있어서, 상기 복원 과정은,
측정 행렬(A)에서 서포트 벡터에 해당하는 열만을 선택하여 [수학식 4]의 행렬(As)를 생성하는 과정과,
행렬(As)과 켤레전치를 취한 행렬
Figure 112019011766656-pat00061
을 이용하여 [수학식 5]의 C 행렬을 생성하는 과정과,
C 행렬의 역행렬을 구하는 과정과,
역행렬과 행렬
Figure 112019011766656-pat00062
로부터 [수학식 6]의 사영 행렬(G)을 구하는 과정과,
사영 행렬(G)와 행렬(Y)를 이용하여 [수학식 7]의 복원 신호의 스펙트럼
Figure 112019011766656-pat00063
을 계산하는 과정을 포함하는 디지털 신호 처리 방법.
[수학식 4]
Figure 112019011766656-pat00064

[수학식 5]
Figure 112019011766656-pat00065

[수학식 6]
Figure 112019011766656-pat00066

[수학식 7]
Figure 112019011766656-pat00067

The method of claim 1,
Selecting a column corresponding to a support vector in a measurement matrix A to generate a matrix A s of Equation 4;
A matrix (A s ) and a matrix taking the conjugate transpose
Figure 112019011766656-pat00061
Generating a C matrix of Equation (5)
A process of obtaining an inverse matrix of a C matrix,
Inverse matrix and matrix
Figure 112019011766656-pat00062
(G) of the equation (6)
The spectrum of the reconstructed signal of Equation (7) is calculated using the projective matrix (G) and the matrix (Y)
Figure 112019011766656-pat00063
And calculating the digital signal.
&Quot; (4) "
Figure 112019011766656-pat00064

&Quot; (5) "
Figure 112019011766656-pat00065

&Quot; (6) "
Figure 112019011766656-pat00066

&Quot; (7) "
Figure 112019011766656-pat00067

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

[수학식 9]
Figure 112018091235126-pat00072
The method according to claim 9, the step of generating the rest of the compressed signal is a matrix of the spectrum (A s) and the reconstructed signal
Figure 112018091235126-pat00068
The compression signal of the equation (8)
Figure 112018091235126-pat00069
Estimating,
The compressed signal estimated from the received matrix Y
Figure 112018091235126-pat00070
(R) of Equation (9) by removing the residual signal (R).
&Quot; (8) "
Figure 112018091235126-pat00071

&Quot; (9) "
Figure 112018091235126-pat00072
KR1020180109640A 2018-09-13 2018-09-13 Digital signal processing method KR101990077B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180109640A KR101990077B1 (en) 2018-09-13 2018-09-13 Digital signal processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180109640A KR101990077B1 (en) 2018-09-13 2018-09-13 Digital signal processing method

Publications (1)

Publication Number Publication Date
KR101990077B1 true KR101990077B1 (en) 2019-06-17

Family

ID=67064710

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180109640A KR101990077B1 (en) 2018-09-13 2018-09-13 Digital signal processing method

Country Status (1)

Country Link
KR (1) KR101990077B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102135336B1 (en) * 2020-03-04 2020-07-17 한화시스템 주식회사 Method and device for decompressing compressed signal, and wideband receiving apparatus using the same

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990079224A (en) * 1998-04-02 1999-11-05 윤종용 Frequency Offset Correction Device in Orthogonal Frequency Division Multiplexing
KR101727088B1 (en) 2013-05-17 2017-05-02 후아웨이 테크놀러지 컴퍼니 리미티드 Ofdm signal modulation-demodulation method, device and system based on compressed sensing
KR20170084503A (en) * 2016-01-12 2017-07-20 한국전자통신연구원 Image reconstruction device, image reconstruction method of the same, and image system including the same
KR20180049035A (en) 2015-09-04 2018-05-10 레이데온 컴퍼니 Apparatus and method for selective signal rejection

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990079224A (en) * 1998-04-02 1999-11-05 윤종용 Frequency Offset Correction Device in Orthogonal Frequency Division Multiplexing
KR101727088B1 (en) 2013-05-17 2017-05-02 후아웨이 테크놀러지 컴퍼니 리미티드 Ofdm signal modulation-demodulation method, device and system based on compressed sensing
KR20180049035A (en) 2015-09-04 2018-05-10 레이데온 컴퍼니 Apparatus and method for selective signal rejection
KR20170084503A (en) * 2016-01-12 2017-07-20 한국전자통신연구원 Image reconstruction device, image reconstruction method of the same, and image system including the same

Non-Patent Citations (3)

* 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.
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 (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102135336B1 (en) * 2020-03-04 2020-07-17 한화시스템 주식회사 Method and device for decompressing compressed signal, and wideband receiving apparatus using the same

Similar Documents

Publication Publication Date Title
Septimus et al. Compressive sampling hardware reconstruction
Sinha et al. Energy scalable system design
US20140317163A1 (en) Vector Processor Having Instruction Set With Sliding Window Non-Linear Convolutional Function
Liang et al. Improved Fermi operator expansion methods for fast electronic structure calculations
Esposito et al. On the use of approximate adders in carry-save multiplier-accumulators
Liu et al. The implementation of the improved OMP for AIC reconstruction based on parallel index selection
KR101980649B1 (en) Digital signal processing device
JP2008506191A5 (en)
Milder et al. Formal datapath representation and manipulation for implementing DSP transforms
Li et al. FPGA implementation of an improved OMP for compressive sensing reconstruction
KR101990077B1 (en) Digital signal processing method
Liu et al. A high-throughput subspace pursuit processor for ECG recovery in compressed sensing using square-root-free MGS QR decomposition
Thomas et al. FPGA implementation of sparsity independent regularized pursuit for fast CS reconstruction
Sakellariou et al. Application-specific low-power multipliers
Meher et al. Area-delay efficient architecture for MP algorithm using reconfigurable inner-product circuits
Colak et al. FPGA implementation of the automatic multiscale based peak detection for real-time signal analysis on renewable energy systems
Roy et al. Fast OMP algorithm and its FPGA implementation for compressed sensing‐based sparse signal acquisition systems
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
Barrios et al. Speeding up FPGA Prototyping on Space Programs with HLS Workflow. Use Case: Video Compression On-board Satellites
Niu et al. FPGA based architectures for high performance adaptive FIR filter systems
Kerdjidj et al. Design and evaluation of vivado HLS-based compressive sensing for ECG signal analysis

Legal Events

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