KR100654188B1 - FIR filter realized on DSP and method for realizing the same - Google Patents

FIR filter realized on DSP and method for realizing the same Download PDF

Info

Publication number
KR100654188B1
KR100654188B1 KR1020040050347A KR20040050347A KR100654188B1 KR 100654188 B1 KR100654188 B1 KR 100654188B1 KR 1020040050347 A KR1020040050347 A KR 1020040050347A KR 20040050347 A KR20040050347 A KR 20040050347A KR 100654188 B1 KR100654188 B1 KR 100654188B1
Authority
KR
South Korea
Prior art keywords
filter
input data
input
value
data values
Prior art date
Application number
KR1020040050347A
Other languages
Korean (ko)
Other versions
KR20060001264A (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 KR1020040050347A priority Critical patent/KR100654188B1/en
Publication of KR20060001264A publication Critical patent/KR20060001264A/en
Application granted granted Critical
Publication of KR100654188B1 publication Critical patent/KR100654188B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03HIMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
    • H03H17/00Networks using digital techniques
    • H03H17/02Frequency selective networks
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03HIMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
    • H03H17/00Networks using digital techniques
    • H03H17/02Frequency selective networks
    • H03H17/06Non-recursive filters
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03HIMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
    • H03H17/00Networks using digital techniques
    • H03H17/02Frequency selective networks
    • H03H17/06Non-recursive filters
    • H03H17/0607Non-recursive filters comprising a ROM addressed by the input data signals
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03HIMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
    • H03H17/00Networks using digital techniques
    • H03H17/02Frequency selective networks
    • H03H17/06Non-recursive filters
    • H03H17/0621Non-recursive filters with input-sampling frequency and output-delivery frequency which differ, e.g. extrapolation; Anti-aliasing
    • H03H17/0635Non-recursive filters with input-sampling frequency and output-delivery frequency which differ, e.g. extrapolation; Anti-aliasing characterized by the ratio between the input-sampling and output-delivery frequencies
    • H03H17/065Non-recursive filters with input-sampling frequency and output-delivery frequency which differ, e.g. extrapolation; Anti-aliasing characterized by the ratio between the input-sampling and output-delivery frequencies the ratio being integer
    • H03H17/0657Non-recursive filters with input-sampling frequency and output-delivery frequency which differ, e.g. extrapolation; Anti-aliasing characterized by the ratio between the input-sampling and output-delivery frequencies the ratio being integer where the output-delivery frequency is higher than the input sampling frequency, i.e. interpolation

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Complex Calculations (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

본 발명은 디지털 통신 시스템이 있어 송신단의 펄스 쉐이핑 FIR 필터의 구현에 관한 것으로, 기존의 ASIC에서 구현되던 필터를 DSP 상에서 구현함에 있어서 제로 패딩을 하게 되는 특징을 필터의 최적화에 이용하는 것이다.The present invention relates to the implementation of a pulse shaping FIR filter of a transmitter in a digital communication system, and utilizes a feature of zero padding in implementing a filter implemented in an existing ASIC on a DSP.

보다 구체적으로는, DSP 상에서의 필터 구현시 제로 패딩을 함으로써 불필요한 연산이 생기게 되므로 이의 연산을 제거하여 출력값을 얻는 필터 연산에서 실제 데이터값에 대한 연산만 수행하도록 하여 연산에 따른 DSP의 로드를 줄여 동작시간에서 상기 필터의 최적의 성능을 얻을 수 있는 필터의 최적화 방법에 관한 것이다.More specifically, since zero padding occurs when the filter is implemented on the DSP, unnecessary operations are generated so that the operation of the filter to obtain an output value by performing the operation on the actual data value is performed by reducing the DSP load according to the operation. The present invention relates to a method for optimizing a filter which can obtain an optimum performance of the filter in time.

DSP, 제로 패딩, FIR 필터, 소프트 파이프라인, 최적화, 필터 계수DSP, zero padding, FIR filter, soft pipeline, optimization, filter coefficients

Description

DSP 상에서의 FIR 필터 구현 방법 및 그에 따른 FIR 필터{FIR filter realized on DSP and method for realizing the same}FIR filter realized on DSP and method for realizing the same}

도 1은 일반적인 FIR 필터의 구조를 나타낸 도면이다. 1 is a view showing the structure of a typical FIR filter.

도 2는 제로 패딩을 이용한 필터의 프로세스 과정을 나타내는 도면이다.2 is a diagram illustrating a process of a filter using zero padding.

도 3은 본 발명의 실시예에 따라 필터 계수를 재배열하는 것을 나타내는 도면이다.3 is a diagram illustrating rearranging filter coefficients according to an embodiment of the present invention.

도 4는 본 발명의 실시예에 따라 입력값을 재배열하는 것을 나타내는 도면이다.4 is a diagram illustrating rearrangement of input values according to an embodiment of the present invention.

도 5는 본 발명의 실시예에 따른 필터 구조를 나타낸 도면이다.5 is a view showing a filter structure according to an embodiment of the present invention.

본 발명은 유한 임펄스 응답 필터(Finite Impulse Response Filter, 이하 간략히 FIR 이라 칭함)에 관한 것으로서, 구체적으로는 디지털 통신 시스템의 송신단에서 디지털 데이터를 아날로그 웨이브 폼으로 펄스 쉐이핑(Pulse shaping)하여 신호를 전송하는데 사용되는 펄스 쉐이핑 FIR 필터를 DSP상에서 구현함에 있어서 필터의 최적화 방법에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a finite impulse response filter (hereinafter, simply referred to as FIR). Specifically, a transmitter in a digital communication system transmits a signal by pulse shaping digital data into an analog wave form. The present invention relates to a method for optimizing a filter in implementing a pulse shaping FIR filter to be used on a DSP.

기존의 펄스 쉐이핑 FIR은 ASIC에서 구현이 되어왔으며, 대칭성(symmetric) 등의 성질을 이용한 FIR의 최적화 방안이 제시되어 왔다. 이는 속도면에서 실시간 구현이 가능하였다. 그러나, 하나의 시스템에서 다양한 기능을 가지는 인터페이스가 필요한 경우 대응하는 각각의 하드웨어가 필요한 것이 사실이다. 이러한 경우, 시스템의 크기도 거대해지지만 급변하는 기술의 흐름에 맞추어 시스템을 재구성해야 하는 문제에 봉착했을 때 ASIC에서는 재구성이 거의 불가능하며, 다시 새로운 시스템을 구성해야 하므로 비용, 시간 기타 여러 가지 부분에 있어서 비효율적이다.Conventional pulse shaping FIR has been implemented in ASIC, and optimization of FIR using symmetric properties has been proposed. This enabled real-time implementation in terms of speed. However, it is true that corresponding hardware is required when an interface with various functions is required in one system. In this case, the system grows in size, but when faced with the need to reconfigure a system to keep pace with rapidly changing technologies, ASICs are almost impossible to reconfigure, and they have to be rebuilt again. Inefficient

따라서, 상기 기술한 바와 같은 점을 해결할 수 있는 방법으로 최근에는 SDR(Software Defined Radio) 기술을 많이 이용한다. SDR 기술은 시스템의 하드웨어로 구성되던 부분을 소프트웨어로 변경하여 단순한 소프트웨어 업그레이드를 통해 시스템의 모듈의 변경을 지원하는 것으로 가장 큰 특징은 시스템의 재구성이 가능한 것이다.Therefore, as a method of solving the above-described points, SDR (Software Defined Radio) technology is recently used a lot. SDR technology supports the change of the system module through simple software upgrade by changing the hardware part of the system to software. The biggest feature is that the system can be reconfigured.

다만, 시스템의 재구성은 시스템의 대부분의 블록이 소프트웨어로 구현된다면 가능한 것으로, 일반적으로 FPGA나 DSP로의 구현이 가능하다. 그러나, FPGA에서의 구현은 재구성의 시간이 DSP에서의 구현에 비해 오래 걸리므로 DSP 상에서의 구현이 대부분을 차지한다.However, the reconfiguration of the system is possible if most of the blocks of the system are implemented in software, and generally can be implemented in an FPGA or a DSP. However, implementations in an FPGA take up most of the implementation on a DSP because reconfiguration takes longer than that in a DSP.

DSP 칩의 특징으로는 소프트 파이프라인을 이용하여 곱셈의 프로세싱 시간을 최소화함에 있어서 예를 들어, 가장 최소의 연산 시간을 가지는 16비트 단위로 연산하여 가장 최소의 연산 시간을 갖는 것이다. 그러므로, 소프트 파이프라인의 특 징을 살리기 위해 하나의 프로세싱 단계마다 하나의 입력값을 받아들여 사용하는 것이 아니라 블록 단위로 입력을 받아들여 버퍼에 저장해 놓은 뒤 한번에 입력 데이터를 로딩하고 곱셈을 하게 되면 프로세싱 시간이 단축된다.The feature of the DSP chip is to minimize the processing time of the multiplication using a soft pipeline, for example, to operate in the 16-bit unit having the minimum operation time and have the minimum operation time. Therefore, to take advantage of the soft pipeline's characteristics, instead of accepting and using one input value for each processing step, it takes inputs in blocks and stores them in a buffer, and then loads and multiplies the input data at once. The time is shortened.

상기에 기술된 바와 같은 DSP 칩의 장점으로 최근의 소프트웨어 또한 DSP에 맞추어 프로그래밍 되어지고 있으며, DSP 칩상의 필터 구현에 있어서도 DSP 특징을 이용하는 사례가 늘고 있다. 따라서, DSP 칩상에서의 FIR 필터의 구현에 있어서 가장 큰 로드를 차지하는 필터 동작 시간에 대한 최적화가 요구된다.With the advantages of DSP chips as described above, recent software has also been programmed for DSP, and the use of DSP features has also increased in the implementation of filters on DSP chips. Therefore, optimization of the filter operation time, which takes the largest load in implementing the FIR filter on the DSP chip, is required.

따라서, 본 발명에서는 송신기의 펄스 쉐이핑 필터(Pulse shaping filter)를 소프트웨어적으로 구현함에 있어서, 특히 DSP 상에서의 구현시 제로 패딩(zero padding)을 하는 성질을 이용하여 필터(filter)의 연산을 최소화하여 펄스 쉐이핑 FIR 필터의 소프트웨어 구현시 필터 동작시간에서 최적의 성능을 얻을 수 있는 필터의 구현 방법을 제공하고자 한다.Therefore, in the present invention, in implementing the pulse shaping filter of the transmitter in software, in particular, the operation of the filter is minimized by using the property of zero padding when implementing on a DSP. This paper provides a method of implementing a filter that can obtain the optimal performance in the filter operation time when the pulse shaping FIR filter is implemented in software.

상기한 목적을 달성하기 위한 본 발명의 특징에 따른 필터 구현방법은, L개의 입력 블록 사이즈, M개의 필터 탭 수와 N개의 오버 샘플링 사이즈를 갖는 환경에서, (a) 제로 패딩 연산을 생략하기 위하여, 상기 필터의 입력 데이터값을 필터 탭수를 오버 샘플링 사이즈로 나눈 값(M/N)에 대응하는 제 1 단위로 N 번 반복하여 재배열하는 단계; (b) 제 1 단위를 구성하는 입력 데이터 값을 대응하는 필터 계수와 연산하여 순차적으로 N번 출력하는 단계; (c) 상기 제 1 단위의 입력 데이터 값이 순차적으로 입력될 수 있도록, 상기 필터 계수를 재배열하는 단계; 및 (d) 상기 입력데이터 값을 하나씩 쉬프트하여 상기 단계 (a) 및 단계 (b)를 L번 반복하여 출력하는 단계를 포함한다.A filter implementation method according to an aspect of the present invention for achieving the above object, in an environment having L input block size, M filter tap number and N oversampling size, (a) to omit zero padding operation Repeatedly rearranging the input data value of the filter by a first unit corresponding to a value M / N obtained by dividing a filter tap number by an oversampling size; (b) calculating the input data values constituting the first unit with corresponding filter coefficients and sequentially outputting the number N times; (c) rearranging the filter coefficients so that the input data values of the first unit can be sequentially input; And (d) shifting the input data values one by one and repeatedly outputting the steps (a) and (b) L times.

삭제delete

삭제delete

삭제delete

삭제delete

또한, DSP 상에서 L개의 입력 블록 사이즈, M개의 필터 탭 수와 N개의 오버 샘플링 사이즈를 갖는 FIR 필터 구현 방법에 있어서, (a) 제로 패딩 연산을 생략하기 위하여, 상기 필터의 입력 데이터값을 필터 탭수를 오버 샘플링 사이즈로 나눈 값(M/N)에 대응하는 제 1 단위로 N 번 반복하여 재배열하는 단계; (b) 제 1 단위를 구성하는 입력 데이터 값을 대응하는 필터 계수와 연산하여 순차적으로 N번 출력하는 단계; (c) 상기 필터의 입력 데이터값의 블록이 순차적으로 입력될 수 있도록, 이전 블록의 입력 데이터 값의 일부를 저장하여 현재 블록에 재배치하는 단계; 및 (d) 상기 입력데이터 값을 하나씩 쉬프트하여 상기 단계 (a) 및 단계 (b)를 L번 반복하여 출력하는 단계를 포함한다.In addition, in a method of implementing a FIR filter having L input block sizes, M filter taps, and N oversampling sizes on a DSP, (a) in order to omit zero padding operations, the input data value of the filter is determined by the number of filter taps. Repeating rearrangement N times in a first unit corresponding to the value M / N divided by the oversampling size; (b) calculating the input data values constituting the first unit with corresponding filter coefficients and sequentially outputting the number N times; (c) storing a part of the input data value of the previous block and relocating it to the current block so that the block of the input data value of the filter can be sequentially input; And (d) shifting the input data values one by one and repeatedly outputting the steps (a) and (b) L times.

또한, 본 발명의 특징에 따른 FIR 필터는, 사이즈가 L인 입력 데이터 블록을 저장하는 입력 버퍼와; 상기 입력 데이터와 필터 계수를 곱하는 M개의 승산부와;In addition, an FIR filter according to an aspect of the present invention includes an input buffer for storing an input data block having a size of L; M multipliers that multiply the input data by a filter coefficient;

상기 승산된 값을 누산하여 출력하는 출력부를 포함하며, 상기 입력 버퍼는, 상기 입력 데이터 값은 제로 패딩이 생략되도록 상기 입력 데이터 값을 재배열 시킨다.And an output unit configured to accumulate and output the multiplied value, wherein the input buffer rearranges the input data values so that zero padding is omitted.

아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였다. 명세서 전체를 통하여 유사한 부분에 대해서는 동일한 도면 부호를 붙였다.DETAILED DESCRIPTION Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings so that those skilled in the art may easily implement the present invention. As those skilled in the art would realize, the described embodiments may be modified in various different ways, all without departing from the spirit or scope of the present invention. In the drawings, parts irrelevant to the description are omitted in order to clearly describe the present invention. Like parts are designated by like reference numerals throughout the specification.

이하, 본 발명의 바람직한 실시예를 첨부한 도면을 참조하여 상세히 설명한다.Hereinafter, with reference to the accompanying drawings, preferred embodiments of the present invention will be described in detail.

도 1은 일반적인 FIR 필터의 구조를 나타낸 도면이다.1 is a view showing the structure of a typical FIR filter.

도 1을 참조하여, 블록사이즈 128, 필터 탭 사이즈 48, 오버 샘플링 사이즈 8인 필터를 예로 들어 설명한다.With reference to FIG. 1, the filter of block size 128, filter tap size 48, and oversampling size 8 is demonstrated as an example.

도 1에 나타낸 바와 같이, 필터는 0~127의 인덱스에 대응하는 128개의 입력값(In_data[])과, 0~47의 인덱스에 대응하는 48개의 필터 계수(coeff[])를 가진다. 입력값(In-data[])을 출력하는 플립플롭과 상기 플립플롭에서 출력된 입력값과 필터 계수(coeff[])를 곱하는 곱셈기, 그리고 상기 모든 필터 계수(coeff[0]~[47])와 대응하는 모든 입력값과의 각각의 곱셈 출력값들을 모두 합산하는 덧셈기를 포함한다.As shown in Fig. 1, the filter has 128 input values In_data [] corresponding to indices of 0 to 127, and 48 filter coefficients coeff [] corresponding to indices of 0 to 47. A flip-flop that outputs an input value In-data [], a multiplier that multiplies the filter value coeff [] output from the flip-flop, and all the filter coefficients coeff [0] to [47] And an adder that sums all of the respective multiplying outputs with all corresponding inputs.

상기 펄스의 쉐이핑 필터는 출력 펄스의 sharpness를 위해 입력값(In-data[])에 제로 패딩(zero padding)을 하는데, 예를 들어, 오버 샘플링 사이즈 8에 따라 필터의 입력값으로 7개의 제로값(0)이 입력되고, 그 다음에 1개의 실제 데이터값이 입력된다.The shaping filter of the pulse has zero padding on the input value In-data [] for sharpness of the output pulse, for example, seven zero values as the input value of the filter according to the oversampling size 8. (0) is input, followed by one actual data value.

도 2는 제로 패딩을 이용한 필터의 동작을 설명하기 위한 도면이다.2 is a diagram for describing an operation of a filter using zero padding.

이하, 블록 사이즈(block size) 128, 필터 탭 사이즈(filter tab size) 48, 오버 샘플링 사이즈(over sampling size) 8로 정의된 필터를 예로 들어 설명한다.Hereinafter, a filter defined as a block size 128, a filter tab size 48, and an over sampling size 8 will be described as an example.

앞에서 DSP 상에서의 필터의 구현시에는 레지스터에 입력값을 저장하는 것이 아니라 블록 단위로 입력을 받아들여 버퍼에 저장해 놓은 뒤 한번에 입력 데이터를 로딩하여 사용하는 바에 대해 언급한 바 있지만, 설명의 편의상 입력값을 저장하는 레지스터가 있다고 가정하고 설명한다.When the filter implementation on the DSP was mentioned above, it was mentioned that the input data is loaded in one block after receiving the input in block units instead of storing the input value in a register. It is assumed that there is a register that stores.

먼저, 도 2의 (Ⅰ)을 참조하면 송신단의 펄스 쉐이핑 필터는 7개의 제로 패딩을 한다. 즉, 도 2의 (Ⅰ)에서 필터 레지스터에 오버 샘플링 사이즈(8) 단위로 입력되는 입력값에 있어서, 먼저 7개의 제로값(0)이 입력되고, 그 다음에 1개의 실제 데이터값(In_data[0])이 입력된다. 이를 반복하면, 도 2의 (Ⅰ)에 나타낸 바와 같이 모든 필터 계수(Filter_Coeff[])에 대응하여 제로 패딩을 포함한 입력값(In_data[0] ~ In_data[5])이 필터 레지스터에 저장된다.First, referring to (I) of FIG. 2, the pulse shaping filter of the transmitter performs seven zero paddings. That is, in the input value input to the filter register in units of oversampling size (8) in FIG. 2 (I), seven zero values (0) are input first, followed by one actual data value In_data [ 0]) is entered. Repeating this, as shown in Fig. 2I, input values In_data [0] to In_data [5] including zero padding are stored in the filter register corresponding to all the filter coefficients Filter_Coeff [].

이하, 본 발명의 실시예에 따른 FIR 필터의 출력을 얻기 위한 필터 동작은 아래와 같다.Hereinafter, the filter operation for obtaining the output of the FIR filter according to an embodiment of the present invention is as follows.

도 2의 (Ⅰ)에서, 필터 레지스터에서 제로 패딩된 부분과 필터 계수와의 계산은 어차피 제로값이 되므로 상기 계산은 생략한다. 실제 데이터값(In_data[0] ~ In_data[5])을 가지고 있는 레지스터의 값들만을 필터 계수와 곱하면, 필터 출력값(filter_out[0])은 데이터값(In_data[0])과 필터 계수(coeff[40])를 곱한 제1출력(out0)과 데이터값(In_data[1])과 필터 계수(coeff[32])를 곱한 제2출력(out1)과, 데이터값(In_data[2])과 필터 계수(coeff[24])를 곱한 제3출력(out2)과 데이터값(In_data[3])과 필터 계수(coeff[16])를 곱한 제4출력(out3)과, 데이터값(In_data[4])과 필터 계수(coeff[8])를 곱한 제5출력(out4)과 데이터값(In_data[5])과 필터 계수(coeff[0])를 곱한 제6출력(out5)을 모두 합하여 필터 출력(filter_out[0])을 얻을 수 있다. 상술한 바와 같이 본 발명의 실시예에 따른 필터에서는 필터 출력(Filter_out[0])을 얻기 위하여 제로 패딩된 입력값에 대한 계산을 포함하여 총 48번의 필터 계산에 있어서, 제로 패딩된 입력값의 계산은 제외하고 입력값(In_data[0]~In_data[5])에 대한 실제 곱셈 6번만 하면 된다. 여기서, 본 발명의 실시예에 따른 필터에서 제로 패딩 환경에서 하나의 출력값을 얻기 위해 필요한 곱셈의 수를 8분의 1로 줄이고도 출력 펄스의 sharpness를 보장할 수 있음을 알 수 있다.In Fig. 2 (I), the calculation between the zero padded portion and the filter coefficient in the filter register is zero anyway, so the calculation is omitted. If only the values of registers with actual data values (In_data [0] to In_data [5]) are multiplied by the filter coefficients, the filter output value (filter_out [0]) is the data value (In_data [0]) and the filter coefficients (coeff). [40] first output (out0) multiplied by data value (In_data [1]) and second output (out1) multiplied by filter coefficient (coeff [32]), data value (In_data [2]) and filter The third output out2 multiplied by the coefficient coeff [24], the fourth output out3 multiplied by the data value In_data [3] and the filter coefficient coeff [16], and the data value In_data [4] ) And the fifth output (out4) multiplied by the filter coefficient (coeff [8]) and the sixth output (out5) multiplied by the data value (In_data [5]) and the filter coefficient (coeff [0]). filter_out [0]) can be obtained. As described above, in the filter according to the embodiment of the present invention, the calculation of the zero-padded input value is performed in a total of 48 filter calculations, including the calculation of the zero-padded input value to obtain the filter output (Filter_out [0]). Except, you only need to do 6 multiplications for the input values (In_data [0] ~ In_data [5]). Here, it can be seen that the sharpness of the output pulse can be guaranteed even if the number of multiplications required to obtain one output value in the zero padding environment in the filter according to the embodiment of the present invention is reduced to one eighth.

이어서, 도 2의 (Ⅱ)에서, (Ⅰ)에서 나타낸 바와 같이 제로값을 포함하여 입력값(In_data[0]~[5])이 저장되어 있는 필터 레지스터에 저장된 입력값은 한 개의 필터 출력(filter_out[])을 얻고 나서 하나씩 시프트(shift)된다. 즉, 오버샘플링 사이즈(8)에 따라 7개의 제로값이 입력되고, 한 개의 데이터값이 입력된 필터에서 제1 출력을 얻고나서, 제2 출력에서 제 7 출력을 얻을 때까지 필터 레지스터의 입력값이 하나씩 시프트되는 것이 반복된다. 본 발명의 실시예에 따른 필터는 총 48개의 필터 계수에 대응하여 7개의 제로값과 1개의 데이터값이 반복하여 입력되면 한번에 6개의 데이터값이 입력되어 하나의 출력을 얻을 수 있고, 한번 입력된 데이터값(In_data[0]~[5])에 대응하여 총 8개의 출력값을 얻을 수 있다.Next, in FIG. 2 (II), as shown in (I), the input value stored in the filter register in which the input values In_data [0] to [5] are stored, including the zero value, has one filter output ( filter_out []) is obtained and then shifted one by one. That is, seven zero values are input according to the oversampling size (8), one data value is input to the filter register until the first output is obtained from the filter, and the second output to the seventh output is obtained. This shift by one is repeated. In the filter according to the embodiment of the present invention, when seven zero values and one data value are repeatedly input in response to a total of 48 filter coefficients, six data values may be input at a time to obtain one output. A total of eight output values can be obtained corresponding to the data values In_data [0] to [5].

도 2의 (Ⅱ)에 나타낸 필터 출력값(filter_out[1] ~ filter_out[7])을 얻는 동작은 도 2의 (Ⅰ)에서 설명한 필터 동작과 동일하므로 중복되는 부분은 이를 참조하기로 하고, 여기서의 설명은 생략한다.The operation of obtaining the filter output values filter_out [1] to filter_out [7] shown in (II) of FIG. 2 is the same as the filter operation described in (I) of FIG. Description is omitted.

한편, 상기 기술한 바와 같이 필터 출력(filter_out[0]~[7]) 계산을 위한 동작이 끝나면, 제일 처음 입력된 입력값(In_data[0])에 대한 계산은 종료되고, 새로 운 입력값(In_data[6])이 입력되어 입력값[In_data[1]~[6])에 대응하는 필터 출력 8개를 얻기 위한 동작이 수행된다.Meanwhile, as described above, when the operation for calculating the filter outputs filter_out [0] to [7] ends, the calculation for the first input value In_data [0] ends and the new input value ( In_data [6]) is input and an operation for obtaining eight filter outputs corresponding to the input values [In_data [1] to [6]) is performed.

상기 필터 동작은 모든 입력값에 대응하여 필터 출력을 얻는 동작이 종료할 때까지 반복된다.The filter operation is repeated until the operation of obtaining the filter output corresponding to all input values ends.

따라서, 본 발명의 실시예에 따른 필터는 128개의 입력값(In_data[])에 대응하여 총 1024개의 필터 출력을 얻을 수 있다. 필터 출력 개수의 계산은 입력값 개수와 샘플링 사이즈를 곱한 것으로 나타낼 수 있다.Accordingly, the filter according to the embodiment of the present invention may obtain a total of 1024 filter outputs corresponding to 128 input values In_data []. The calculation of the number of filter outputs can be expressed as the product of the number of inputs and the sampling size.

상술한 바와 같이, 본 발명의 실시예에 따른 필터 동작시 입력된 제로값에 대응하는 필터 계수와의 계산은 생략함으로써 한 개의 필터 출력을 얻기 위한 곱셈의 수가 8분의 1 즉, 1/오버 샘플링 사이즈 만큼 줄어들었음을 알 수 있다.As described above, the calculation of the filter coefficient corresponding to the zero value input during the filter operation according to the embodiment of the present invention is omitted so that the number of multiplications for obtaining one filter output is one eighth, that is, 1 / over sampling. It can be seen that the size has been reduced.

본 발명의 실시예에서는 제로 패딩의 특징을 이용하면서도, 연산량을 감소시키기 위하여, 필터의 탭 사이즈를 오버 샘플링수로 나눈 값에 대해서만 필터링 처리를 수행한다. 즉, 오버 샘플링수(OVER_SAMPLE)에 대응하는 간격으로 필터 레지스터 또는 버퍼의 입력 데이터 값을 천이하며, 연속적으로 필터링을 수행함으로써 부가적인 연산없이 제로 패딩을 한 것과 동일한 효과를 기대할 수 있다.In the embodiment of the present invention, in order to reduce the amount of calculation while using the feature of zero padding, the filtering process is performed only for a value obtained by dividing the tap size of the filter by the number of oversampling. That is, the input data values of the filter register or the buffer are shifted at intervals corresponding to the number of oversamplings OVER_SAMPLE, and by performing filtering continuously, the same effect as zero padding without additional calculation can be expected.

한편, 본 발명의 실시예에 따른 필터 동작시 DSP의 특징인 소프트 파이프라인을 이용하기 위해서는 필터 계수의 인덱스가 규칙적으로 변하여야만 하므로, 필터 계수의 재배열 또는 상기 필터 계수에 대응하여 곱셈 계산을 하는 입력값(In_data[])의 재배열이 필요하다.On the other hand, in order to use the soft pipeline which is a characteristic of the DSP during the filter operation according to the embodiment of the present invention, since the index of the filter coefficients must be changed regularly, the multiplication calculation is performed in response to the rearrangement of the filter coefficients or the filter coefficients. You need to rearrange the input (In_data []).

도 3은 본 발명의 실시예에 따른 필터 계수를 재배열하는 것을 나타내는 도 면이고, 도 4는 본 발명의 실시에에 따른 입력값을 재배열하는 것을 나타내는 도면이다.3 is a diagram illustrating rearranging filter coefficients according to an embodiment of the present invention, and FIG. 4 is a diagram illustrating rearranging input values according to an embodiment of the present invention.

도 3에 나타낸 바와 같이, 도 3의 (a)는 원래의 필터 계수를 배열한 것을 나타낸 것이고, (b)는 재배열된 필터 계수의 배열을 나타낸 것이다.As shown in Fig. 3, Fig. 3 (a) shows the arrangement of the original filter coefficients, and (b) shows the arrangement of the rearranged filter coefficients.

필터 계수의 재배열은 제로값을 제외하고 실제 데이터값(In_data[])을 가지고 있는 레지스터의 값들과 곱해지는 필터 계수를 원래의 필터 계수에 순서대로 대응하여 배열한 것이다. 도 2의 (Ⅰ)를 참조하면, 실제 데이터값(In_data[0])과 곱해지는 필터 계수는 Filter_Coeff[40]이다. 이어서, 데이터값(In_data[1])과 곱해지는 필터 계수는 Filter_Coeff[32]이다. 이를 반복하면, 도 2의 (Ⅰ)에서 실제 데이터값과 곱해지는 필터 계수는 모두 6개로 Filter_Coeff [40],[32],[24],[16],[8],[0]이다. 이는 도 2의 (Ⅱ)에 대하여도 마찬가지로 적용하여 8번의 출력을 얻는 동안 실제 데이터값과 곱해진 필터 계수 총 48개를 원래의 필터 계수에 대응하여 재배열한 것은 도 3의 (b)에 나타낸 바와 같다.The rearrangement of the filter coefficients is a sequence of filter coefficients multiplied by the values of the registers having the actual data values (In_data []), except for the zero values, in order corresponding to the original filter coefficients. Referring to Fig. 2 (I), the filter coefficient multiplied by the actual data value In_data [0] is Filter_Coeff [40]. Next, the filter coefficient multiplied by the data value In_data [1] is Filter_Coeff [32]. If this is repeated, all filter coefficients multiplied by the actual data values in Fig. 2 (I) are Filter_Coeff [40], [32], [24], [16], [8], and [0]. The same applies to (II) of FIG. 2 and rearranges the total of 48 filter coefficients multiplied with the actual data values corresponding to the original filter coefficients while obtaining eight outputs, as shown in FIG. same.

도 3의 (b)에서 예를 들어, 재배열된 필터 계수(Filter_Re_Coeff[0])은 필터 계수(Filter_Coeff[40])이고, 재배열된 필터 계수(Filter_Re_Coeff[1])은 필터 계수(Filter_Coeff[32])이며, 재배열된 필터 계수(Filter_Re_Coeff[2])은 필터 계수(Filter_Coeff[24])이다. 상기 재배열 과정을 모두 수행하면 재배열된 필터 계수(Filter_Re_Coeff[47])은 필터 계수(Filter_Coeff[7])인 것을 마지막으로 모든 필터 계수에 대한 재배열이 종료된다.For example, in FIG. 3B, the rearranged filter coefficient Filter_Re_Coeff [0] is the filter coefficient Filter_Coeff [40], and the rearranged filter coefficient Filter_Re_Coeff [1] is the filter coefficient Filter_Coeff [. 32]), and the rearranged filter coefficients Filter_Re_Coeff [2] are filter coefficients Filter_Coeff [24]. When all of the rearrangement process is performed, the rearranged filter coefficients Filter_Re_Coeff [47] are the filter coefficients Filter_Coeff [7].

상기와 같은 재배열을 알고리즘으로 표현하면 아래와 같다. 이러한 필터 계 수의 재배열은 필터의 초기화시 한번만 수행하면 되므로 필터의 동작시에는 다른 영향을 주지 않는다.The rearrangement as described above is represented by an algorithm. The rearrangement of the filter coefficients only needs to be performed once during initialization of the filter, and thus does not affect the operation of the filter.

<필터 계수 재배열 알고리즘>
for(k= 0 ; k<(OVER_SAMPLE) ; k++)
{
for(l=0 ; l<(FIR_TAB_SIZE/OVER_SAMPLE); l++)
{
re_coeff[(FIR_TAB_SIZE/OVER_SAMPLE)*k+l] =
coeff[OVER_SAMPLE*(l+1)-1-k] ;
}
}
<Filter coefficient rearrangement algorithm>
for (k = 0; k <(OVER_SAMPLE); k ++)
{
for (l = 0; l <(FIR_TAB_SIZE / OVER_SAMPLE); l ++)
{
re_coeff [(FIR_TAB_SIZE / OVER_SAMPLE) * k + l] =
coeff [OVER_SAMPLE * (l + 1) -1-k];
}
}

삭제delete

삭제delete

삭제delete

삭제delete

삭제delete

삭제delete

삭제delete

삭제delete

한편, DSP 상에서의 필터 구현에 있어서 필터의 입력은 하나의 입력이 아닌 블록 단위로 처리되고, 블록 단위의 입력값과 계수를 이용하여 바로 필터의 출력값을 구한다. 따라서, 입력과 출력이 연속적으로 일어나고 순차적인 필터 입력값에 대하여, 블록 단위로 처리되는 필터 동작에서 현재 블록에서의 필터 연산을 위해서는 이전 블록의 마지막 데이터들을 참조해야만 한다. 따라서, 현재 필터의 입력값에서 이전 블록의 데이터를 참조할 수 있도록 필터의 입력값을 재배열할 필요가 있다.On the other hand, in the implementation of the filter on the DSP, the input of the filter is processed in units of blocks instead of one input, and the output value of the filter is directly obtained by using input values and coefficients in units of blocks. Therefore, for the filter operation in the current block in the filter operation processed in units of blocks with respect to the sequential filter input values in which the input and the output occur in succession, the last data of the previous block must be referenced. Therefore, it is necessary to rearrange the input values of the filter so that the data of the previous block can be referenced from the input values of the current filter.

도 4를 참조하면 (a)는 현재 블록(nth 블록)의 필터 입력값이 배열되어 있는 것을 나타낸 것이고, (b)는 이전 블록(n-1 블록)의 데이터의 일부를 참조하도록 재 배열된 필터 입력값을 나타낸 것이다.Referring to FIG. 4, (a) shows that filter input values of the current block (nth block) are arranged, and (b) shows a filter rearranged to refer to a part of data of the previous block (n-1 block). It shows the input value.

이전 블록의 데이터를 참조하는 개수는 임의로 정할 수 있으며, 본 발명의 실시예에 따른 필터에서는 이전 블록의 마지막부터 필터 탭 사이즈(48)를 오버 샘플링 사이즈(8)로 나눈 값의 개수에서 하나를 뺀 만큼을 현재 블록의 입력값(in_data[])상단에 배치시킨다. 따라서, 본 발명의 실시예에 따른 입력값의 재배열은 도 4의 (b)를 참조하면, 이전 블록의 데이터값중 5(탭 사이즈(48)/오버샘플링 사이즈(8) -1)개를 현재 블록의 입력값 상단에 배열함으로써 이루어진다. 이에 대한 구체적인 설명은 아래와 같다.The number of references to the data of the previous block may be arbitrarily determined. In the filter according to the exemplary embodiment of the present invention, the filter tap size 48 is divided by the oversampling size 8 from the end of the previous block. The number is placed above the input value (in_data []) of the current block. Therefore, in order to rearrange the input values according to an embodiment of the present invention, referring to (b) of FIG. 4, 5 (tap size 48 / oversampling size (8) -1) of the data values of the previous block are determined. This is done by arranging on top of the input values of the current block. Detailed description thereof is as follows.

도 4의 (b)에 나타낸 바와 같이, 재배열된 입력값(Re_In_data[])은 재배열된 입력값(Re_In_data[0])에서 순차적으로 이전 블록의 데이터((In_data[123])에서 (In_data[127])까지)가 배열되고, 연속하여 현재 블록의 데이터((In_data[0])에서 (In_data[127])까지)를 배열한 것과 같다. 상기 입력값의 재배열은 블록 단위 계산 수행시 마다 한번씩 재배열하면 된다.As shown in (b) of FIG. 4, the rearranged input value Re_In_data [] is sequentially converted from the previous block data (In_data [123]) to (In_data) from the rearranged input value Re_In_data [0]. [127]) is arranged, and the data of the current block ((In_data [0]) to (In_data [127])) is arranged in succession. The rearrangement of the input values may be rearranged once every block unit calculation.

도 5는 본 발명의 실시예에 따른 펄스 쉐이핑 FIR 필터의 구조를 나타낸 도면이다. 도 5에서는 상기 기술한 바와 같은 모든 특징들과 재배열 사항 등을 고려하여 최적화된 펄스 쉐이핑 FIR 필터 구조를 나타낸 것이다.5 is a view showing the structure of a pulse shaping FIR filter according to an embodiment of the present invention. 5 shows an optimized pulse shaping FIR filter structure in consideration of all the features and rearrangements described above.

도 5를 참조하면, 필터 탭 사이즈(48), 오버 샘플링 사이즈(8), 및 입력값 수(128)을 갖는 필터에 있어서, 오버 샘플링 사이즈(8)에 따라 7개의 제로값이 입력되고, 1개의 데이터값이 입력되어 하나의 출력을 얻기 위해 모든 필터 계수의 개수만큼 곱셈을 수행하던 것과 달리, 제로 값과의 필터 계수와의 곱셈은 무시하고 실제 데이터값과 계산되는 필터 계수를 순서대로 재배열한 필터 계수(Filter_Re_Coeff[])에 대응하여 재배열된 입력값(Re_In_data[])에 대한 곱셈 계산을 하면, 하나의 출력을 얻기 위한 필터 곱셈의 수를 8분의 1로 줄일 수 있음을 알 수 있다.Referring to FIG. 5, in a filter having a filter tap size 48, an oversampling size 8, and the number of input values 128, seven zero values are input according to the oversampling size 8, and 1 Data values are input and multiplied by the number of all filter coefficients to obtain one output, the multiplication of the filter coefficients with zero values is ignored and the actual data values and the calculated filter coefficients are rearranged in order. By multiplying the rearranged input values (Re_In_data []) corresponding to the filter coefficients (Filter_Re_Coeff []), it can be seen that the number of filter multiplications for obtaining one output can be reduced to one eighth. .

보다 상세하게 설명하면, 도 2에서 한 개의 출력을 얻기 위해 실제 데이터값에 대응하는 필터 계수를 각각 모아서 재배열된 필터 계수에 대응하여 블록 단위로 처리되는 본 발명의 실시예에 따른 필터의 입력값에 대하여 재배열된 입력값과의 곱셈 계산을 함에 따라, 재배열된 필터 계수(Filter_Re_Coeff[])에 대응하여 총 8개의 필터 출력을 얻을 수 있음을 알 수 있다.In more detail, in order to obtain one output in FIG. 2, the filter values corresponding to the actual data values are collected and processed in units of blocks corresponding to the rearranged filter coefficients. By multiplying the rearranged input values with respect to, it can be seen that a total of eight filter outputs can be obtained corresponding to the rearranged filter coefficients Filter_Re_Coeff [].

따라서, 마지막 필터 출력을 얻을 때까지 [0]에서 [47]까지 1번 배열된 필터 계수에 대응하여 총 8개의 출력을 얻는 것을 반복하여 총 1024개의 필터 출력을 얻는다. Thus, a total of 1024 filter outputs are obtained by repeating obtaining eight outputs corresponding to the filter coefficients arranged once from [0] to [47] until the last filter output is obtained.

이하, 본 발명의 실시예에 따른 최적화된 펄스 쉐이핑 FIR 필터 구조를 설명하는 알고리즘은 아래와 같다.Hereinafter, an algorithm for describing an optimized pulse shaping FIR filter structure according to an embodiment of the present invention is as follows.

<본 발명의 실시예에 따른 FIR 필터 동작 알고리즘>
for(i=0; i<BLOCK_SIZE; i++)
{
for(j=0; j<OVER_SAMPLE ; j++)
{
filter_out[i*OVER_SAMPLE+j] = 0 ;
for(h=0; h<(FIR_TAB_SIZE/OVER_SAMPLE); h++)
{
filter_out[i*OVER_SAMPLE+j] +=
(in_data[i+h]*re_coeff[(j*(FIR_TAB_SIZE/OVER_SAMPLE))+h]);
}
}
}
FIR filter operation algorithm according to an embodiment of the present invention
for (i = 0; i <BLOCK_SIZE; i ++)
{
for (j = 0; j <OVER_SAMPLE; j ++)
{
filter_out [i * OVER_SAMPLE + j] = 0;
for (h = 0; h <(FIR_TAB_SIZE / OVER_SAMPLE); h ++)
{
filter_out [i * OVER_SAMPLE + j] + =
(in_data [i + h] * re_coeff [(j * (FIR_TAB_SIZE / OVER_SAMPLE)) + h]);
}
}
}

삭제delete

삭제delete

삭제delete

삭제delete

삭제delete

삭제delete

삭제delete

삭제delete

삭제delete

삭제delete

삭제delete

삭제delete

상술한 바와 같이, 본 발명의 실시예에 따른 필터링 방법에 따르면, 하나의 필터 출력 filter_out[]을 얻기 위해 기존의 필터 구조를 사용했을 때보다 곱셈의 수가 1/오버 샘플링 사이즈(over sample size:8)만큼 줄었음을 알 수 있다. 즉, 기존의 필터 구조를 사용했을 때보다 DSP의 로드(load)가 오버 샘플링 사이즈의 배만큼 줄었음을 알 수 있다.As described above, according to the filtering method according to the embodiment of the present invention, the number of multiplications is 1 / over sample size (8) than when using the existing filter structure to obtain one filter output filter_out []. You can see that it reduced by). In other words, it can be seen that the DSP load is reduced by twice the oversampling size than when using the conventional filter structure.

또한, 본 발명에 따른 필터 구조를 사용하면 예를 들어, 600㎒(TI TMS320C6416)의 DSP칩에서 구현하였을 때 18%의 로드로 구현 되어, 하나의 DSP칩 위에 다른 여러 프로세싱(예를 들어, 디지털 통신에서의 송신부)과 함께 필터 구현이 가능함을 알 수 있다.In addition, using the filter structure according to the present invention, for example, when implemented in a DSP chip of 600 MHz (TI TMS320C6416) is implemented with 18% load, other processing (for example, digital It can be seen that the filter can be implemented together with the transmitter in the communication.

이상에서 본 발명의 바람직한 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리 범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리 범위에 속하는 것이다.Although the preferred embodiments of the present invention have been described in detail above, the scope of the present invention is not limited thereto, and various modifications and improvements of those skilled in the art using the basic concepts of the invention defined in the following claims are also provided. It belongs to the scope of rights.

본 발명에 따른 DSP 칩상에서 구현 가능한 펄스 쉐이핑 FIR 필터의 필터링 방법에 따르면, 제로 패딩하는 특징을 이용하면서도 제로 패딩된 값의 계산을 무시함으로써 불필요한 필터 연산을 줄이고, 1개의 필터 출력값을 얻는데 필요한 곱셈의 수를 1/오버 샘플링 사이즈 만큼 줄이도록 필터의 연산을 최소화하여 필터 동작 시간에서 최적의 성능을 얻을 수 있다.According to the filtering method of the pulse shaping FIR filter that can be implemented on the DSP chip according to the present invention, the use of the zero-padding feature while ignoring the calculation of the zero-padded value reduces unnecessary filter operations and obtains the multiplication necessary to obtain one filter output value. Optimizing performance at filter run time can be achieved by minimizing filter operations to reduce the number by 1 / over sampling size.

Claims (12)

삭제delete DSP 상에서 L개의 입력 블록 사이즈, M개의 필터 탭 수와 N개의 오버 샘플링 사이즈를 갖는 FIR 필터 구현 방법에 있어서,A method of implementing a FIR filter having L input block sizes, M filter taps, and N oversampling sizes on a DSP, (a) 제로 패딩 연산을 생략하기 위하여, 상기 필터의 입력 데이터값을 필터 탭수를 오버 샘플링 사이즈로 나눈 값(M/N)에 대응하는 제 1 단위로 N 번 반복하여 재배열하는 단계;(a) repeatedly rearranging the input data values of the filter N times in a first unit corresponding to a value (M / N) obtained by dividing the number of filter taps by the oversampling size to omit a zero padding operation; (b) 제 1 단위를 구성하는 입력 데이터 값을 대응하는 필터 계수와 연산하여 순차적으로 N번 출력하는 단계;(b) calculating the input data values constituting the first unit with corresponding filter coefficients and sequentially outputting the number N times; (c) 상기 제 1 단위의 입력 데이터 값이 순차적으로 입력될 수 있도록, 상기 필터 계수를 재배열하는 단계; 및(c) rearranging the filter coefficients so that the input data values of the first unit can be sequentially input; And (d) 상기 입력데이터 값을 하나씩 쉬프트하여 상기 단계 (a) 및 단계 (b)를 L번 반복하여 출력하는 단계(d) shifting the input data values one by one and repeatedly outputting steps (a) and (b) L times; 를 포함하는 FIR 필터 구현 방법. FIR filter implementation method comprising a. DSP 상에서 L개의 입력 블록 사이즈, M개의 필터 탭 수와 N개의 오버 샘플링 사이즈를 갖는 FIR 필터 구현 방법에 있어서,A method of implementing a FIR filter having L input block sizes, M filter taps, and N oversampling sizes on a DSP, (a) 제로 패딩 연산을 생략하기 위하여, 상기 필터의 입력 데이터값을 필터 탭수를 오버 샘플링 사이즈로 나눈 값(M/N)에 대응하는 제 1 단위로 N 번 반복하여 재배열하는 단계;(a) repeatedly rearranging the input data values of the filter N times in a first unit corresponding to a value (M / N) obtained by dividing the number of filter taps by the oversampling size to omit a zero padding operation; (b) 제 1 단위를 구성하는 입력 데이터 값을 대응하는 필터 계수와 연산하여 순차적으로 N번 출력하는 단계;(b) calculating the input data values constituting the first unit with corresponding filter coefficients and sequentially outputting the number N times; (c) 상기 필터의 입력 데이터값의 블록이 순차적으로 입력될 수 있도록, 이전 블록의 입력 데이터 값의 일부를 저장하여 현재 블록에 재배치하는 단계; 및(c) storing a part of the input data value of the previous block and relocating it to the current block so that the block of the input data value of the filter can be sequentially input; And (d) 상기 입력데이터 값을 하나씩 쉬프트하여 상기 단계 (a) 및 단계 (b)를 L번 반복하여 출력하는 단계(d) shifting the input data values one by one and repeatedly outputting steps (a) and (b) L times; 를 포함하는 FIR 필터 구현 방법. FIR filter implementation method comprising a. 제2항에 있어서, The method of claim 2, 상기 필터 계수의 재배열 단계는, 상기 필터의 입력 데이터값 중에서 제로 패딩되는 값을 제외하고, 실제 연산을 수행하는 데이터값에 대응하는 필터 계수만을 제 1 단위마다 대응되도록 재배열하는 단계를 포함하는 FIR 필터 구현 방법.The rearranging of the filter coefficients may include rearranging only the filter coefficients corresponding to the data values for performing the actual operation for each first unit, except for zero-padded values among the input data values of the filter. How to implement a FIR filter. 제3항에 있어서,The method of claim 3, 이전 블록의 입력 데이터 값의 (M/N-1)개가 상기 제 1 단위에 포함되도록 현재 블록의 입력 데이터 값이 재배열되는 FIR 필터 구현 방법.And an input data value of a current block is rearranged such that (M / N-1) of input data values of a previous block are included in the first unit. 제4항에 있어서,The method of claim 4, wherein 상기 재배열된 필터 계수의 인덱스는 최초 입력 데이터에 대응하는 필터 계수 인덱스에서 상기 오버 샘플링 수 만큼씩 작아지는 것을 특징으로 하는 FIR 필터 구현 방법. And the index of the rearranged filter coefficients decreases by the oversampling number in the filter coefficient index corresponding to the first input data. 제4항에 있어서,The method of claim 4, wherein 상기 필터 계수의 재배열은 필터 동작시에 처음 한번만 수행하면 되며, 상기 필터 계수의 개수는 상기 필터 탭 개수와 동일한 것을 특징으로 하는 FIR 필터 구현 방법.The rearrangement of the filter coefficients only needs to be performed once at the time of the filter operation, and the number of filter coefficients is equal to the number of filter taps. DSP 상에서 구현된 오버 샘플링 사이즈가 N인 FIR 필터에 있어서,In an FIR filter having an oversampling size of N implemented on a DSP, 사이즈가 L인 입력 데이터 블록을 저장하는 입력 버퍼와;An input buffer for storing an input data block of size L; 상기 입력 데이터와 필터 계수를 곱하는 M개의 승산부와;M multipliers that multiply the input data by a filter coefficient; 상기 승산된 값을 누산하여 출력하는 출력부를 포함하며,An output unit accumulating and outputting the multiplied value; 상기 입력 버퍼는, 상기 입력 데이터 값은 제로 패딩이 생략되도록 상기 입력 데이터 값을 재배열 시키는 FIR 필터.And the input buffer rearranges the input data values such that the input data values are zero padded. 제 8 항에 있어서,The method of claim 8, 상기 입력 버퍼는, 상기 필터의 입력 데이터를, 승산부 개수를 오버 샘플링 사이즈로 나눈 값(M/N)에 대응하는 제 1 단위로 N 번 반복하여 재배열시키는 FIR 필터.And the input buffer repeatedly rearranges the input data of the filter by the first unit corresponding to a value (M / N) obtained by dividing the number of multipliers by the oversampling size. 제 9 항에 있어서,The method of claim 9, 상기 출력부는, 제 1 단위를 구성하는 입력 데이터 값을 대응하는 필터 계수와 연산하여 순차적으로 N번 출력하는 FIR 필터.The output unit, the FIR filter to calculate the input data value constituting the first unit with the corresponding filter coefficients and sequentially output N times. 제10항에 있어서, The method of claim 10, 상기 입력 버퍼에는 입력 데이터가 순차적으로 입력되며,Input data is sequentially input to the input buffer, 상기 승산부는, 상기 필터의 입력 데이터값 중에서 제로 패딩되는 값을 제외 하고, 실제 연산을 수행하는 데이터값에 대응하는 필터 계수가 배치된 FIR 필터.The multiplier includes a filter coefficient corresponding to a data value for performing an actual operation except for a zero-padded value among input data values of the filter. 제10항에 있어서,The method of claim 10, 상기 입력 버퍼에는 입력 데이터 블록이 연속적으로 입력되며, 이전 블록의 입력 데이터 값의 (M/N-1)개가 상기 제 1 단위에 포함되도록 현재 블록의 입력 데이터 값이 입력되는 FIR 필터.An input data block is continuously input to the input buffer, and an input data value of a current block is input so that (M / N-1) of input data values of a previous block are included in the first unit.
KR1020040050347A 2004-06-30 2004-06-30 FIR filter realized on DSP and method for realizing the same KR100654188B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020040050347A KR100654188B1 (en) 2004-06-30 2004-06-30 FIR filter realized on DSP and method for realizing the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040050347A KR100654188B1 (en) 2004-06-30 2004-06-30 FIR filter realized on DSP and method for realizing the same

Publications (2)

Publication Number Publication Date
KR20060001264A KR20060001264A (en) 2006-01-06
KR100654188B1 true KR100654188B1 (en) 2006-12-05

Family

ID=37104440

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040050347A KR100654188B1 (en) 2004-06-30 2004-06-30 FIR filter realized on DSP and method for realizing the same

Country Status (1)

Country Link
KR (1) KR100654188B1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR960027271A (en) * 1994-12-28 1996-07-22 김광호 Digital filter with FIR structure
JPH0998069A (en) * 1995-09-29 1997-04-08 Matsushita Electric Ind Co Ltd Fir type digital filter
KR100235537B1 (en) 1997-03-14 1999-12-15 선우명훈 Variable tap of digital filter and multiplier circuit thereof
KR20000045125A (en) * 1998-12-30 2000-07-15 김영환 Finite impulse response filter in modulator of communication system
JP2000357940A (en) 1999-06-15 2000-12-26 Nec Corp Circuit and method for transmission digital filter

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR960027271A (en) * 1994-12-28 1996-07-22 김광호 Digital filter with FIR structure
JPH0998069A (en) * 1995-09-29 1997-04-08 Matsushita Electric Ind Co Ltd Fir type digital filter
KR100235537B1 (en) 1997-03-14 1999-12-15 선우명훈 Variable tap of digital filter and multiplier circuit thereof
KR20000045125A (en) * 1998-12-30 2000-07-15 김영환 Finite impulse response filter in modulator of communication system
JP2000357940A (en) 1999-06-15 2000-12-26 Nec Corp Circuit and method for transmission digital filter

Also Published As

Publication number Publication date
KR20060001264A (en) 2006-01-06

Similar Documents

Publication Publication Date Title
US8126949B1 (en) Reconfigurable filter node for an adaptive computing machine
US6243729B1 (en) Digital finite-impulse-response (FIR) filter with a modified architecture based on high order Radix-N numbering
CN101282322A (en) Built-in digital filter apparatus for physical layer of wireless intermediate-range sensing network
US7046723B2 (en) Digital filter and method for performing a multiplication based on a look-up table
WO2008070644A2 (en) Method and apparatus for implementing finite impulse response filters without the use of multipliers
CN113556101B (en) IIR filter and data processing method thereof
JPH07202633A (en) Digital filter and oversampling type analog/digital converter using the same
Badave et al. Multiplierless fir filter implementation on fpga
Nandal et al. An efficient 256-tap parallel FIR digital filter implementation using distributed arithmetic architecture
CN109951173B (en) FIR filtering method and filter for multi-channel parallel input and parallel processing
KR100654188B1 (en) FIR filter realized on DSP and method for realizing the same
CN102457251B (en) Method and device for realizing universal digital filter
CN110247642B (en) FIR filtering method and filter
Vaithiyanathan et al. Comparative Study of Single MAC FIR Filter Architectures with Different Multiplication Techniques
Kuzhaloli et al. FIR filter design for advanced audio/video processing applications
Shen Improving FIR Filter Coefficient Precision [DSP Tips & Tricks]
Lian et al. FPGA implementation of IS-95 CDMA baseband filter
Zhu et al. ASIC implementation architecture for pulse shaping FIR filters in 3G mobile communications
US9098435B1 (en) Finite impulse response filter with parallel input
Shilparani et al. FPGA implementation of FIR filter architecture using MCM technology with pipelining
US20200136865A1 (en) Data stream processing device with reconfigurable data stream processing resources and data stream processing method
Langlois Design and Implementation of High Sampling Rate Programmable FIR Filters in FPGAs
Eshtawie et al. FPGA implementation of an optimized coefficients pulse shaping FIR Filters
Nithirochananont et al. An FPGA-based implementation of variable fractional delay filter
Kuncheva et al. Synthesis and implementation of DSP Algorithm in Advanced Programmable architectures

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20101101

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee