KR20160033916A - 샘플링 레이트 컨버터 및 그 방법 - Google Patents

샘플링 레이트 컨버터 및 그 방법 Download PDF

Info

Publication number
KR20160033916A
KR20160033916A KR1020140124737A KR20140124737A KR20160033916A KR 20160033916 A KR20160033916 A KR 20160033916A KR 1020140124737 A KR1020140124737 A KR 1020140124737A KR 20140124737 A KR20140124737 A KR 20140124737A KR 20160033916 A KR20160033916 A KR 20160033916A
Authority
KR
South Korea
Prior art keywords
value
resample
ratio
signal
error
Prior art date
Application number
KR1020140124737A
Other languages
English (en)
Inventor
김상균
박미정
어익수
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR1020140124737A priority Critical patent/KR20160033916A/ko
Priority to US14/793,645 priority patent/US9379886B2/en
Publication of KR20160033916A publication Critical patent/KR20160033916A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/04Speed or phase control by synchronisation signals
    • H04L7/048Speed or phase control by synchronisation signals using the properties of error detecting or error correcting codes, e.g. parity as synchronisation signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L25/00Baseband systems
    • H04L25/02Details ; arrangements for supplying electrical power along data transmission lines
    • H04L25/05Electric or magnetic storage of signals before transmitting or retransmitting for changing the transmission rate
    • 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/0628Non-recursive filters with input-sampling frequency and output-delivery frequency which differ, e.g. extrapolation; Anti-aliasing the input and output signals being derived from two separate clocks, i.e. asynchronous sample rate conversion
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03HIMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
    • H03H17/00Networks using digital techniques
    • H03H17/02Frequency selective networks
    • H03H17/0248Filters characterised by a particular frequency response or filtering method
    • H03H17/028Polynomial filters

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Analogue/Digital Conversion (AREA)
  • Transmission Systems Not Characterized By The Medium Used For Transmission (AREA)

Abstract

본 발명은 fractional 리샘플 ratio를 지원하는 비동기 클럭을 사용하는 샘플링 레이트 컨버전 알고리즘에서 Fractional Delay 필터에 입력되는 리샘플 ratio의 오차를 보상하여 정확한 리샘플링 위치를 찾기 위한 알고리즘을 구현하는 장치 및 방법을 제공하는 것이 목적이다. 이를 위해서, 입력 클럭에 따라 신호를 지연시켜 주는 데이터 지연부;와 상기 신호의 샘플링 레이트(sampling rate)를 변환시키는 클럭 레이트 변환부;와 레이트(rate)가 변환된 신호의 필터링 기능을 수행하는 Lagrange 방정식 필터부;와 설정된 리샘플(resample) ratio 값에 의해 상기 신호의 리샘플 포지션 값(Dint, dfrac)을 출력하는 리샘플 포지션 연산부; 및 상기 리샘플 포지션 값(Dint, dfrac)을 상기 신호에 적응하여 비정수배 샘플링 레이트 컨버전에 의해 발생하는 신호의 오차값을 보정해 주고 최종 신호를 출력하는 리샘플 포지션 보상부;를 포함하되, 상기 리샘플 포지션 값은 정수값(Dint)과 소수값(dfrac)을 포함하는 샘플링 레이트 컨버터가 제공된다.

Description

샘플링 레이트 컨버터 및 그 방법{SAMPLING RATE CONVERTER AND METHOD THEREOF}
본 발명은 비정수 유리수배의 리샘플 비율을 지원하는 샘플링 레이트 컨버전 알고리즘에서의 리샘플 ratio 오차 보상 기법에 관한 것이다.
디지털 신호처리 시스템에서, RF 대역의 클럭과 기저 대역의 클럭이 서로 비동기 되어 있는 경우 데이터의 정보는 유지하면서 기저 대역의 낮은 샘플링 주파수로 신호의 레이트를 변경해주기 위해 샘플 레이트 컨버전 알고리즘이 사용된다. 특히, 다양한 통신 규격과 주파수 대역을 동시에 지원하는 시스템의 경우에는 정수배뿐만 아니라 비정수배의 샘플링 비율을 지원해야 한다.
기존의 샘플링 레이트 컨버전 알고리즘으로는 L배의 인터폴레이션과 저역통과필터, M배의 데시메이션으로 구성되어 있는 알고리즘이 있다. 가장 쉽게 레이트 컨버전을 할 수 있는 방법이지만 L, M의 숫자가 커지게 되면 필터의 복잡도가 증가해 효과적이지 못한 알고리즘이 된다.
그래서 주로 사용되고 있는 또 다른 알고리즘이 Fractional Delay 필터를 사용한 샘플링 레이트 컨버전 방식이다. Fractional Delay 필터는 1 클럭 이하의 지연에 대한 보정을 수행하는 필터로, 입력 샘플링 레이트로 샘플링된 신호를 받아 출력 샘플링 레이트로 리샘플링할 때 출력 신호에 대한 리샘플링 포지션을 찾아서 보정해주는 역할을 한다.
Fractional delay 필터는 Lagrange polynomial을 기반으로 하는 farrow 구조가 많이 사용된다. 실시간 업데이트를 할 수 있기 때문에 지연 파라미터의 조정이 가능하고 보통의 FIR 필터를 사용하는 방식에 비해 복잡도가 낮다는 장점을 가지고 있기 때문이다.
<식1>
Figure pat00001
식 1은 Lagrange polynomial 및 리샘플링을 식으로 표현한 것이다. 위 식에서 t는 연속 시간 t를 의미하는 것이 아니라, 리샘플링을 해야 하는 위치를 1 심볼 구간 내의 상대적인 위치로 표현한 값이 된다.
Fractional delay 필터를 이용한 리샘플링은 어떠한 입력 신호에 대해서도 원하는 샘플 레이트를 만들어 출력할 수 있어, 입/출력 샘플 레이트가 유동적인 경우에도 원하는 레이트를 만들어 냄으로써 다중 대역을 지원하는 시스템에서 효과적으로 사용할 수 있다.
하지만, 두 개의 비동기 클럭이 동시에 동작되는 구조에서 리샘플링을 위해 사용되는 샘플링 레이트 컨버전 알고리즘에서는 metastability, 위상 오프셋, 클럭 레이트 오차 등의 문제가 발생해 성능 열화의 원인이 된다.
위와 같은 비동기 클럭에서 발생하는 문제점을 해결하기 위해 메모리를 사용한 데이터 컨버전 방식이 제안되었다. 입력된 데이터의 샘플링 레이트 변환시 두 클럭 도메인 사이에서의 직접적인 데이터 교환이 아니라 메모리를 통해 신호를 안전하게 변환함으로써 위상 오프셋과 같은 문제를 해결할 수 있고 metastability에 의한 문제를 완화할 수 있다.
하지만 외부에서 입력한 리샘플 ratio와 실제 동작하는 클럭 레이트 사이의 비율 값이 오차가 생기는 경우에 발생하는 문제는 여전히 존재하게 된다.
대한민국공개특허 제1998-0052338(1998.09.25)호(발명의 명칭 : 클럭 위상 시프터의 지연 오차보정장치)는 클럭 위상 시프터의 지연 오차 보정 장치에 관한 것으로 특히, 게이트의 지연 감세에 의한 시프트량을 측정함에 의해 클럭의 원하는 위상 시프트량을 판별함으로써 전압. 온도. 공정 오차에 의한 지연 오차를 보정하여 안정된 위상 시프트를 수행할 수 있도록 하는 특징이 기재되어 있다.
그러나, 선행기술에도 fractional 리샘플 ratio를 지원하는 비동기 클럭을 사용하는 샘플링 레이트 컨버전 알고리즘에서 Fractional Delay 필터에 입력되는 리샘플 ratio의 오차를 보상하여 정확한 리샘플링 위치를 찾는 특징에 대해 언급되어 있지는 않다.
본 발명은 종래의 문제점을 해결하기 위해서, fractional 리샘플 ratio를 지원하는 비동기 클럭을 사용하는 샘플링 레이트 컨버전 알고리즘에서 Fractional Delay 필터에 입력되는 리샘플 ratio의 오차를 보상하여 정확한 리샘플링 위치를 찾기 위한 알고리즘을 구현하는 장치 및 방법을 제공하는 것이 목적이다.
본 발명의 다른 목적들은 이하의 실시예에 대한 설명을 통해 쉽게 이해될 수 있을 것이다.
본 발명의 일측에 따르면, 입력 클럭에 따라 신호를 지연시켜 주는 데이터 지연부;와 상기 신호의 샘플링 레이트(sampling rate)를 변환시키는 클럭 레이트 변환부;와 레이트(rate)가 변환된 신호의 필터링 기능을 수행하는 Lagrange 방정식 필터부;와 설정된 리샘플(resample) ratio 값에 의해 상기 신호의 리샘플 포지션 값(Dint, dfrac)을 출력하는 리샘플 포지션 연산부; 및 상기 리샘플 포지션 값(Dint, dfrac)을 상기 신호에 적응하여 비정수배 샘플링 레이트 컨버전에 의해 발생하는 신호의 오차값을 보정해 주고 최종 신호를 출력하는 리샘플 포지션 보상부;를 포함하되, 상기 리샘플 포지션 값은 정수값(Dint)과 소수값(dfrac)을 포함하는 샘플링 레이트 컨버터가 제공된다.
여기서, 상기 클럭 레이트 변환부는 메모리를 포함하고 있어, 입력 클럭 레이트로 샘플링된 입력 신호를 순서대로 상기 메모리에 저장하고 상기 리샘플 포지션 연산부에서 출력된 상기 리샘플 포지션의 정수값(Dint)을 메모리 주소로 사용하여 해당 메모리에 저장되어 있는 신호를 출력 클럭 레이트로 샘플링하는 특징으로 하는 샘플링 레이트 컨버터이다.
여기서, 상기 Lagrange 방정식 필터부의 필터 차수는 리샘플 레이트, 대역폭에 따라 가변적으로 적용할 수 있고 상기 차수에 따라 필터의 계수가 결정되는 것을 특징으로 하는 샘플링 레이트 컨버터이다.
여기서, 상기 데이터 지연부는 상기 Lagrange 방정식 필터부의 필터 차수에 의해 지연 차수가 결정되고 상기 입력 클럭에 따라 상기 신호를 1샘플씩 지연시켜 주는 것을 특징으로 하는 샘플링 레이트 컨버터이다.
여기서, 상기 리샘플 포지션 연산부는 입력 클럭과 출력 클럭의 비를 나타내는 값인 상기 리샘플 ratio 값을 기반으로 리샘플 포지션을 추정하는 데 사용하는 상기 리샘플 포지션 값을 출력하는 것을 특징으로 하는 샘플링 레이트 컨버터이다.
여기서, 상기 리샘플 포지션 연산부는 입력된 리샘플 ratio 값과 실제 동작 클럭비와의 오차를 추정하여 상기 리샘플 ratio 값을 업데이트하고, 업데이트된 상기 리샘플 비율 값에 상응하는 누적 오차를 보상하는 기능을 수행하는 리샘플 ratio 오차 보상부; 및 상기 리샘플 ratio 오차 보상부에서 추정된 값을 입력받아 출력 샘플링 레이트에 맞는 상기 리샘플 포지션 값을 출력하는 리샘플 레이트 연산부;를 포함하는 것을 특징으로 하는 샘플링 레이트 컨버터이다.
여기서, 상기 리샘플 ratio 오차 보상부는, 입력된 리샘플 ratio 값과 실제 동작 클럭비와의 오차를 추정하는 리샘플 ratio 오차 추정부; 및 상기 리샘플 ratio 값이 업데이트 됨에 따라 생기는 이전의 리샘플 ratio 값으로 동작된 누적 오차값을 보정하는 연산 오차 보상부;를 포함하는 것을 특징으로 하는 샘플링 레이트 컨버터이다.
여기서, 상기 리샘플 ratio 오차 추정부는, 상기 리샘플 포지션 값의 정수값(Dint)에 의해서 발생하는 데이터의 변화 포인트가 실제 클럭 사이에서 발생하는 데이터의 변화 포인트와 일치하지 않으면 입력된 리샘플 ratio 에 오차가 있다고 판단하여 리샘플 ratio의 소수 레이트 부분(fractional rate part) 값을 업데이트하는 것을 특징으로 하는 샘플링 레이트 컨버터이다.
여기서, 상기 리샘플 ratio 오차 추정부는, 입력 클럭으로 카운트 된 신호를 출력 클럭(Cclk(m))으로 출력하는 클럭 카운트 블럭;과 상기 클럭 카운트 블럭의 상기 출력 클럭(Cclk(m))과 상기 클럭의 리샘플 포지션 값의 정수값(Dint)의 해당 클럭에서의 값(D(m))을 이전 클럭의 출력 클럭(Cclk(m-1))과 이전 클럭의 리샘플 포지션 값의 정수값(D(m-1))과 각각 비교하여 그 차이((Cclk(m)-Cclk(m-1)) 및 D(m)-D(m-1))의 값이 상기 리샘플 ratio에 따라 미리 설정된 값(T)과 일치하는지를 비교하여, 상기 미리 설정된 값(T)과 일치하지 않으면, 소수 레이트 부분(fractional rate part)의 누적부에 의해 손실포인트가 발생하였다고 판단하여 펄스를 발생시키는 계산 및 펄스 발생블럭;과 상기 펄스의 펄스 발생 간격을 계산하는 펄스 카운트블럭;과 실제 클럭 동작에 의해 발생한 상기 펄스를 기준으로 상기 리샘플 포지션 값의 정수값(Dint)에 의해 발생된 펄스를 비교하여 입력된 상기 리샘플 포지션 값의 정수값(Dint)의 동작 속도를 판단하는 비교블럭; 및 상기 리샘플 포지션 값의 정수값(Dint)의 동작 상태를 입력받아 상기 리샘플 ratio 값을 보정 단위값(comp_Fdelay) 만큼 업데이트 해준 값(FracRate_comp)으로 출력하는 업데이트 블럭;을 포함하는 것을 특징으로 하는 샘플링 레이트 컨버터이다.
여기서, 상기 연산 오차 보상부는, 상기 리샘플 ratio 값을 보정 단위값(comp_Fdelay) 만큼 업데이트 해준 값(FracRate_comp)이 업데이트 될 때마다 이전 ratio 로 계산된 구간에 대한 카운트 값을 출력하는 카운터부; 및 상기 카운터부에서 출력된 값과 상기 보정 단위값(comp_Fdelay)을 이용하여 이전 ratio 로 계산된 구간에 대한 오차 보상값을 계산하는 누적부;를 포함하는 것을 특징으로 하는 샘플링 레이트 컨버터이다.
또한, 입력 클럭 레이트로 샘플링된 입력 신호를 순서대로 클럭 레이트 변환부의 메모리에 저장하는 단계;와 리샘플 포지션 연산부에서 설정된 리샘플 ratio 값에 의해 신호의 리샘플 포지션 값을 출력하는 단계;와 클럭 레이트 변환부가 리샘플 포지션의 정수값(Dint)을 메모리 주소로 사용하여 해당 메모리에 저장되어 있는 신호를 출력 클럭 레이트로 샘플링하는 단계; 및 리샘플 포지션 보상부에서 상기 리샘플 포지션 값을 신호에 적용하여 비정수배 샘플링 레이트 컨버젼에 의해 발생하는 신호의 오차값을 보정하는 단계;를 포함하는 샘플링 레이트 컨버팅 방법이 제공된다.
여기서, 상기 리샘플 포지션 값은 정수부분의 정수값(Dint)과 소수부분의 소수값(dfrac)을 포함하는 것을 특징으로 하는 샘플링 레이트 컨버팅 방법이다.
여기서, 상기 클럭 레이트 변환부가 리샘플 포지션의 정수값(Dint)을 메모리 주소로 사용하여 해당 메모리에 저장되어 있는 신호를 출력 클럭 레이트로 샘플링하는 단계;는, 상기 클럭 레이트 변환부가 입력 클럭 레이트로 샘플링된 입력 신호를 순서대로 상기 메모리에 저장하고, 상기 리샘플 포지션 연산부에서 계산된 리샘플 포지션의 정수값을 메모리 주소로 이용하여 해당 메모리에 저장되어 있는 신호를 출력 클럭 레이트로 샘플링하는 것을 특징으로 하는 샘플링 레이트 컨버팅 방법이다.
여기서, 상기 리샘플 포지션 보상부에서 상기 리샘플 포지션 값을 신호에 적용하여 비정수배 샘플링 레이트 컨버젼에 의해 발생하는 신호의 오차값을 보정하는 단계;는, 입력된 리샘플 ratio의 누적값 계산을 통해 샘플링하고자 하는 신호가 있는 메모리의 위치와 그에 대한 리샘플 포지션을 예측하여 비동기 클럭 간에 발생하는 위상 오프셋의 영향을 최소화하는 것을 특징으로 하는 샘플링 레이트 컨버팅 방법이다.
본 발명은 메모리를 이용하여 신호의 샘플링 레이트를 변환하고 메모리에 저장된 신호를 선택하고 그에 해당하는 fractional delay 값을 보정해주기 때문에 위상 오프셋에 의한 영향을 최소화하는 효과가 있다.
도1은 본 발명의 실시예에 따른 샘플링 레이트 컨버터의 간략한 구조를 설명하기 위한 도면이다.
도2는 본 발명에서 설명하는 리샘플 포지션 연산부의 상세 구조를 설명하기 위한 도면이다.
도3은 본 발명의 리샘플 레이트 연산부의 상세 구조를 설명하기 위한 도면이다.
도4는 본 발명의 일실시예로 2배 데시메이션 과정과 2.1배 데시메이션 과정을 비교하여 샘플링 레이트 변환으로 인해 발생되는 손실 포인트를 설명하기 위한 도면이다.
도5는 본 발명에서 설명하는 리샘플 ratio 오차 보상부의 상세 구조를 나타낸 도면이다.
도6은 본 발명의 일실시예로 연산 오차 보상부(540)의 상세 구조를 설명하기 위한 도면이다.
도7은 본 발명의 일실시예로 샘플링 레이트 컨버팅 방법을 도시한 순서도이다.
도8과 도9는 본 발명의 일실시예로 리샘플 ratio 오차 추정부의 간략한 플로우차트를 나타내는 도면이다.
도10과 도11은 리샘플 ratio 오차 추정부의 동작을 타이밍도를 예로 들어 설명하고 있다.
도12는 본 발명의 일 실시예로 리샘플 ratio의 오차 크기에 따른 FracRate_comp 값이 업데이트 되는 과정을 나타낸 타이밍도이다.
본 발명은 다양한 변환을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변환, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
본 발명에서 사용한 용어는 단지 특정 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
본 발명에서는 비동기 클럭을 사용하는 디지털 신호 처리 시스템에서 신호의 샘플링 레이트 변환을 위한 샘플링 레이트 컨버터(100)의 구조에 대해 설명하기로 한다.
Fractional delay 필터를 바탕으로 한 샘플링 레이트 컨버터(100)는 입력 클럭 레이트로 샘플링된 입력 신호를 출력 클럭 레이트로 리샘플링하여 출력해준다.
아래의 <식2>는 Fractional delay 필터에서 계산되는 지연값으로, 입력신호에 대한 n번째 출력신호의 상대적인 위치를 나타내는 값으로 신호의 리샘플 포지션 값(Dint, dfrac)을 의미한다. 이값을 통해 출력 신호의 리샘플 포지션을 결정한다.
신호의 리샘플 포지션 값(Dint, dfrac)은 정수값(Dint)과 소수값(dfrac)을 포함한다.
Dint는 입력신호에 대응되는 출력신호의 정수값이고 메모리로부터 출력되는 신호를 선택하는데 사용된다.
dfrac은 입력신호에 대응되는 출력신호의 1clock 이하의 지연에 대한 값이다. 또한, 리샘플링을 해야하는 위치를 1 심볼 구간내의 상대적인 위치로 표현한 값으로 fractional delay 필터에서 리샘플링 포지션을 찾는데 사용되는 값이다.
<식2>
Figure pat00002
본 발명에서 설명하는 리샘플링 알고리즘은 Farrow 구조를 기반으로 한 Fractional Delay 필터를 사용하는 구조이다. 비동기 클럭 사이에서 신호의 레이트를 안정적으로 변환하기 위해 메모리를 사용하였고, 비정수배 리샘플 ratio의 오차를 보상하기 위한 블록이 구현되었다.
이하 설명에서는 디지털 신호처리 시스템에서의 다운(down) 샘플링 시 동작되는 샘플링 레이트 컨버터(100)를 예로 들어 설명하지만, 업(up) 샘플링 과정에서도 동일하게 적용할 수 있다.
이하, 본 발명의 실시예를 첨부한 도면들을 참조하여 상세히 설명하기로 한다.
도1은 본 발명의 실시예에 따른 샘플링 레이트 컨버터의 간략한 구조를 설명하기 위한 도면이다.
본 발명에서 설명하는 샘플링 레이트 컨버터(100)는 설정한 입력 클럭 레이트로 샘플링된 신호를 출력 클럭 레이트로 변환하고, 설정한 리샘플 ratio 값에 따라 레이트가 변환된 신호의 리샘플링 포지션을 추정하여 출력 클럭에 맞게 리샘플링된 신호를 출력해주는 역할을 한다.
본 발명에서 설명하는 샘플링 레이트 컨버터(100)에서의 입/출력 클럭 레이트는 입/출력 신호의 샘플 레이트와 일치하거나 혹은 그 이상의 값을 가지게 된다(업 샘플링을 수행하는 샘플링 레이트 컨버터에서의 입/출력 클럭 레이트는 입/출력 신호의 샘플 레이트와 일치하거나 혹은 그 이하의 값을 가지게 된다).
클럭 레이트가 신호의 샘플 레이트와 일치하는 경우에는 클럭 레이트에 따라 동작하게 되지만, 신호의 샘플 레이트보다 큰 경우에는 신호의 샘플 레이트에 해당하는 인에이블 신호 등에 의해 동작이 이루어지게 된다.
본 발명에서는 신호의 샘플 레이트가 클럭 레이트와 일치한다고 가정하고 설명한다.
도1을 참조하면, 본 발명에서 설명하는 샘플링 레이트 컨버터(100)는 데이터 지연부(200), 클럭 레이트 변환부(300), Lagrange 방정식 필터부(400), 리샘플 포지션 연산부(500) 및 리샘플 포지션 보상부(600)을 포함한다,
데이터 지연부(200)는 입력 클럭에 따라 신호를 1 샘플씩 지연시켜 출력한다. 데이터 지연부(200)의 지연 차수는 Lagrange polynomial 필터부(400)의 필터 차수에 의해 결정된다.
클럭 레이트 변환부(300)는 상기 신호의 샘플링 레이트를 변환시키는 기능을 수행한다.
클럭 레이트 변환부(300)는 입력 동작 주파수에서 출력 동작 주파수로 신호의 샘플링 레이트를 변환해주는 역할을 한다. 즉, 비동기된 입력 클럭과 출력 클럭이 동시에 동작하는 구성부로, 메모리를 사용하여 신호의 샘플링 레이트를 출력 클럭의 샘플링 레이트로 안전하게 변환하기 위한 기능을 수행한다.
이를 위해서 클럭 레이트 변환부(300)에는 메모리가 포함되어 있다.
클럭 레이트 변환부(300)는 입력 클럭 레이트로 샘플링된 입력 신호를 순서대로 메모리에 저장하고, 리샘플 포지션 연산부(500)에서 계산된 리샘플 포지션의 정수값을 메모리 주소로 이용하여 해당 메모리에 저장되어 있는 신호를 출력 클럭 레이트로 샘플링한다.
Lagrange 방정식 필터부(400)는 레이트가 변환된 신호의 필터링 기능을 수행한다.
여기서, Lagrange 방정식 필터부(400)의 Lagrange polynomial 필터의 차수는 리샘플 레이트, 대역폭 등에 따라 가변적으로 적용할 수 있고, 차수에 따라 필터의 계수가 결정된다.
리샘플 포지션 연산부(500)는 설정된 리샘플 ratio 값에 의해 신호의 리샘플 포지션 값(Dint, dfrac)을 출력한다.
여기서, 리샘플 포지션 값은 정수부분의 정수값(Dint)과 소수부분의 소수값(dfrac)을 포함하고 있다.
리샘플(Resample) ratio는 입출력 클럭의 비(Fclkin / Fclkout)를 나타내는 값으로, 이값을 기반으로 메모리에 저장된 신호를 출력하고 리샘플 포지션을 추정하는데 쓰이는 Dint와 dfrac을 출력한다.
리샘플 포지션 보상부(600)는 추정된 리샘플 포지션 값의 소수부분의 값(dfrac)을 신호에 적용하여 비정수배 샘플링 레이트 컨버전에 의해 발생하는 신호의 오차값을 보정한다.
도2는 본 발명에서 설명하는 리샘플 포지션 연산부의 상세 구조를 설명하기 위한 도면이다.
리샘플 포지션 연산부(500)는 리샘플 레이트 연산부(510)와 리샘플 ratio 오차 보상부(520)를 포함한다.
리샘플 레이트 연산부(510)는 리샘플 ratio 오차 보상부(520)에서 추정된 값을 입력으로 받아 출력 샘플링 레이트에 맞는 리샘플 포지션 값(Dint, dfrac)을 출력한다.
리샘플 ratio 오차 보상부(520)는 입력된 리샘플 ratio값과 실제 동작 클럭비와의 오차를 추정하여 업데이트하고 그로 인해 발생한 누적 오차를 보상하는 기능을 수행한다.
여기서, 리샘플 ratio 오차 보상부(520)는 리샘플 ratio 오차 추정부(530)와 연산오차 보상부(540)를 포함한다.
도2에 도시되어 있는 바와 같이 리샘플 포지션 연산부(500)에 입력되는 FracRate는 초기에 입력되는 리샘플 ratio 값을 나타내고, Comp_Fdelay는 리샘플 ratio의 오차를 보정하기 위한 단위값이다.
연산오차 보상부(540)는 리샘플 ratio가 업데이트 됨에 따라 생기는 이전의 리샘플 ratio로 동작된 누적기의 누적 오차값을 계산해서 보정한다.
도3은 본 발명의 리샘플 레이트 연산부의 상세 구조를 설명하기 위한 도면이다.
리샘플 레이트 연산부(510)는 리샘플 ratio 오차 보상부(520)로부터 추정된 레이트값과 누적 오차 보상값을 입력으로 받아 누적기(511)를 통해 출력 신호의 리샘플 포지션 값 Dint와 dfrac을 추정해준다.
리샘플 레이트 연산부(510)에 초기 입력된 리샘플 ratio 값인 FracRate와 리샘플 ratio 오차 추정부(530)로부터 입력받은 FracRate_comp값 중 하나가 Comp_start_EN 신호에 의해 선택된다.
이후 선택된 값은 누적기(511)를 통해 이전 값과 더해진다. 누적기(511)의 또 다른 입력값인 Error_comp는 연산 오차 보상부(540)로부터 입력된 값으로 FracRate_comp 값이 업데이트 될 때마다 발생하여 누적기(511)에 더해진다.
누적기(511)의 결과값 D는 정수부분(integer part)인 Dint와 소수부분(fractional part)인 dfrac으로 나눠진다.
Dint는 클럭 레이트 변환부(300)의 입력으로 들어가 출력하고자 하는 신호가 있는 메모리의 주소값으로 사용되고, dfrac는 메모리에서 선택된 신호에 해당되는 fractional delay 값으로 Lagrange 방정식 필터부(400)의 출력신호와 곱해지면서 최종 출력 신호의 리샘플 포지션을 보상해주는 역할을 한다.
리샘플 ratio 입력값에 오차가 생기는 이유로는 1)초기에 잘못된 값이 입력되는 경우, 2) 실제 동작 클럭에 옵셋이 있는 경우, 3) bit truncation에 의해 오차가 발생하는 경우가 있다.
리샘플 포지션 연산부(500)는 누적기(511)가 동작하기 때문에 잘못된 리샘플 ratio값이 입력되면, 오차값이 누적되어 신호에 더 큰 영향을 미치게 된다.
본 발명에서는 샘플링 레이트 컨버터(100)에서 발생할 수 있는 리샘플 ratio 오차를 추정하고 보정하는 방법을 제안한다. 리샘플 ratio 오차를 추정하기 위해, 샘플링 레이트 변환으로 인해 발생되는 데이터의 손실 혹은 삽입 포인트를 이용한다.
즉, 데시메이션 상황에서는 손실 포인트를 이용하고, 인터폴레이션 상황에서는 삽입 포인트를 이용하게 된다.
이하, 본 발명에서는 데시메이션 상황을 예로들어 비정수배 리샘플 ratio로 인한 오차를 손실 포인트를 이용하여 보정하는 것을 설명하고 있으나, 인터폴레이션 상황에서 발생하는 오차도 삽입 포인트를 이용하여 동일한 적용을 거쳐 보정할 수 있다.
도4는 본 발명의 일실시예로 2배 데시메이션 과정과 2.1배 데시메이션 과정을 비교하여 샘플링 레이트 변환으로 인해 발생되는 손실 포인트를 설명하기 위한 도면이다.
여기서, 손실 포인트는 데시메이션 상황을 통해 발생하는 변화 포인트를 의미한다. 만일 인터폴레이션 상황인 경우에는 삽입 포인트가 된다.
2배의 데시메이션을 수행하는 경우에는 입력 신호 두 개 중 하나를 출력신호로 선택하게 되지만, 2.1배 데시메이션을 수행하는 경우에는 입력 신호 두 개 중 하나를 출력신호로 선택하다가 누적된 fractional part 값에 의해 입력 신호 세 개 중 하나를 출력신호로 선택하는 구간이 발생하게 된다.
도4에서 2배 데시메이션을 수행하는 경우의 출력 클럭을 m이라고 했을 때 Dout(m)-Dout(m-1)은 항상 2로 일정하다.
그런데, 2.1배의 데시메이션을 수행하는 경우에는, Dout(m)-Dout(m-1)의 값이 2로 일정하게 가다가, 11번째 출력 클럭이 동작할 때는 Dout(m)-Dout(m-1)=3이 된다.
이는 누적된 fractional part 값이 1이 넘어가는 시점이 발생하였기 때문이다. fractional ratio를 가지는 데시메이션 과정에서는 이러한 시점이 항상 발생하게 되고, 본 발명에서는 이 시점을 신호의 손실 포인트라고 하고 그 값을 이용하여 리샘플 ratio의 오차를 추정하게 된다.
본 발명에서는 이렇게 실제 클럭비와 리샘플 ratio에서의 각각의 fractional part의 누적값에 의해 발생하는 새로운 손실 포인트를 비교한다. 그리고, 실제 클럭비를 기준으로 리샘플 ratio의 값이 더 크면 fractional part에 의한 신호의 손실 포인트가 더 빨리 발생하고, 리샘플 ratio의 값이 작으면 손실 포인트가 더 늦게 발생하는 점을 이용하여 리샘플 ratio의 손실 포인트가 실제 클럭비의 손실 포인트와 일치할 수 있도록 리샘플 ratio 값을 업데이트한다.
도5는 본 발명에서 설명하는 리샘플 ratio 오차 보상부의 상세 구조를 나타낸 도면이다.
본 발명에서는 다운 샘플링 시 샘플링 레이트 컨버전 알고리즘을 예로 설명하고 있으므로 데이터의 손실 포인트에 의해 리샘플 ratio 오차를 추정하는 방법에 대해 설명하지만 업 샘플링 시에도 데이터의 삽입 포인트를 가지고 동일한 과정을 수행할 수 있다.
리샘플 ratio 오차 보상부(520)는 리샘플 ratio 오차 추정부(530)와 연산오차 보상부(540)를 포함한다.
리샘플 ratio 오차 추정부(530)는 입력된 리샘플 ratio 값과 실제 동작 클럭비와의 오차를 추정하는 기능을 수행한다.
리샘플 ratio 오차 추정부(530)는 Dint 값에 의해 발생하는 데이터의 손실 포인트가 실제 두 클럭 사이에서 일어나는 데이터의 손실 포인트와 일치하지 않으면 입력된 리샘플 ratio에 오차가 존재하고 있다고 판단하여 리샘플 ratio의 fractional rate part값을 업데이트한다.
클럭에 의한 카운트와 리샘플 ratio의 누적값의 정수부(Dint)의 손실 포인트가 발생하는 경우 펄스를 발생시킨다. 클럭에 의해 발생하는 펄스값을 기준으로 Dint에 의해 발생하는 펄스의 발생 간격이 빨라지게 되면, 실제 클럭비보다 높은 리샘플 ratio가 입력된 것이고, 발생 간격이 느려지게 되면 실제 클럭비보다 낮은 리샘플 ratio가 입력된 것을 추정할 수 있다.
추정 결과에 따라 미리 설정한 보상값을 현재의 리샘플 ratio에 더해주거나 빼줌으로써 업데이트하고, 펄스 발생 간격 차이가 발생하지 않을 때까지 이러한 동작을 반복하면서 오차를 줄여나간다.
리샘플 ratio값을 실제 클럭비와 일치시키기에는 bit resolution 등의 문제로 인한 한계가 있어 최대한 실제 클럭비와 가깝게 추정해 그 오차를 최소화하는 것이 중요하다.
본 발명에서는 리샘플 ratio의 미세한 오차값 보정을 위해 입력되는 단위 보상값을 조절해줌으로써 최소의 오차를 가지는 리샘플 ratio를 추정할 수 있다.
리샘플 ratio 오차 추정부(530)는 클럭 카운트 블럭(531), 계산 및 펄스 발생블럭(532,533), 펄스 카운트블럭(534,535), 비교블럭(536) 및 업데이트 블럭(538)을 포함한다.
클럭 카운트 블록(531)은 실제 클럭비에 따른 신호의 손실 포인트를 찾기 위해 사용되는 카운트 블록으로 입력 클럭으로 카운트 된 신호를 출력 클럭(Cclk(m))으로 출력한다.
계산 및 펄스 발생블럭(532,533)은 클럭 카운트 블록(531)의 출력값 Cclk(m)과 이전의 Cclk(m-1)와 비교하여 Cclk(m)-Cclk(m-1)값이 리샘플 ratio에 따라 미리 설정된 값 T와 일치하는지를 비교하는 블럭(532)과 누적기(511)로부터 피드백 받은 Dint의 값인 D(m)을 이전의 D(m-1)와 비교하여 D(m)-D(m-1)값이 리샘플 ratio에 따라 미리 설정된 값 T와 일치하는지를 비교하는 블럭(533)을 포함한다.
여기서, 계산 및 펄스 발생블럭(532,533)은 각각의 비교값이 T와 일치하지 않으면, fractional part의 누적부에 의해 손실포인트가 발생하였다고 판단하여 펄스(Pulse_A 또는 Pulse_B)를 발생한다.
펄스 카운트블럭(534,535)은 펄스 발생 간격을 계산하는 블록으로, 이전의 펄스가 발생한 시점부터 다음 펄스가 발생하는 시점까지의 간격을 계산해주는 블록이다. 이값을 가지고, 실제 클럭비와 리샘플 ratio의 오차 유무를 판단할 수 있다.
이러한 과정을 통해 발생한 펄스와 펄스 간격값을 가지고, 실제 클럭 동작에 의해 발생된 펄스를 기준으로 Dint에 의해 발생된 펄스를 비교해 입력된 Dint값이 빨리 동작하는지 천천히 동작하는지를 판단할 수 있다.
업데이트 블록(538)은 Dint값의 상태(fast/slow)를 입력받고, 리샘플 ratio 값(+ 혹은 -값으로 입력됨)이 입력된 보정 단위값인 comp_Fdelay만큼 업데이트 하여 FracRate_comp라는 파라미터값을 출력한다.
업데이트는 실제 클럭비와 현재 동작중인 리샘플 ratio의 손실 포인트가 동일하게 유지될 때까지 이 동작을 반복해준다. 만약 상태값이 0을 기준으로 이전과 다른 방향성을 가지는 값으로 변하게 되면, 리샘플 ratio의 현재 오차값이 오차보정 단위값(comp_Fdelay)보다 작은 값이라고 판단해 comp_Fdelay의 값을 줄여준다.
이러한 과정을 반복함으로써 실제 동작 클럭비와 최소의 오차를 가지는 리샘플 ratio를 추정할 수 있다.
도6은 본 발명의 일실시예로 연산 오차 보상부(540)의 상세 구조를 설명하기 위한 도면이다.
연산오차 보상부(540)는 FracRate_comp 값이 업데이트 됨에 따라 생기는 이전의 리샘플 포지션 누적값에 대한 오차값을 계산해서 보정해주는 역할을 한다.
리샘플 포지션은 리샘플링을 해야하는 위치를 1 심볼 구간 내의 상대적인 위치로 표현한 값으로, 리샘플 ratio가 누적된 값을 통해 추정되는 값이기 때문에 이전 값의 영향을 받게 된다. 따라서 오차를 포함한 값이 누적되면, 그 결과값 또한 오차를 포함하게 되어 잘못된 리샘플 포지션 값이 출력된다.
오차 추정과정을 통해 실제 클럭비와 일치하는 리샘플 ratio를 찾게 되어도, 이전 신호에 대한 리샘플 포지션과 현재 신호의 리샘플 포지션 사이의 상대적인 위치에 대한 정확도만 높아질 뿐, 현재 출력신호에 대한 절대적인 리샘플 포지션 값은 이전의 누적 오차값에 의해 여전히 오차를 포함하고 있게 된다.
연산오차 보상부(540)는 이러한 문제점을 해결하기 위해 리샘플 ratio 값이 업데이트 될때마다 이전 리샘플 ratio의 오차에 대한 누적값을 같이 업데이트해줌으로써 리샘플 포지션의 누적 오차값을 보정해준다.
연산오차 보상부(540)는 연산 오차 보상부는 카운터부(570)와 누적부(580)로 구성되어 있다.
카운터부(570)는 FracRate_comp 값이 업데이트 될 때마다 이전 ratio로 계산된 구간에 대한 카운트를 해주는 구성부로, m-1번째 FracRate_comp가 업데이트 되는 시점부터 카운트를 시작해 m번째 FracRate_comp가 업데이트되는 시점에 계산한 카운트 값을 누적부(580)의 shift&sum블럭(581)으로 전해준다.
누적부(580)에서는 카운트부(570)에서 계산된 값과 comp_Fdelay 값을 가지고, 이전 ratio로 계산된 구간에 대한 오차 보상값을 계산한다.
Shift&sum블럭(581)은 계산된 카운트 값과 comp_Fdelay 값을 가지고 m-1번째 FracRate_comp로 계산된 구간에 대한 누적 오차값을 계산해 보상해준다.
카운트 값과 comp_Fdelay 값을 곱하면 누적 오차값을 계산할 수 있지만, 입력된 카운트 값을 2^n 단위로 나누어 해당되는 값마다 comp_Fdelay를 시프트해주는 방식을 사용한다. 따라서, 곱셈기 없이 시프트와 덧셈기만을 사용해 복잡도를 줄여 계산할 수 있다.
누적블럭(582)은 계산된 오차값의 누적값으로 연산 오차 보상부(540)의 동작이 시작되는 시점부터 m-1번째 FracRate_comp값으로 계산된 구간에 대한 누적 오차값을 계산해주는 블록이다.
누적블럭(582)의 출력값 Error_comp는 리샘플 연산부(510)의 입력으로 들어가 누적기에서 더해짐으로써, 리샘플 연산부(510)의 동작이 시작되는 시점부터 현재까지 m번째 FracRate_comp값으로 계산된 것과 동일한 결과의 출력값을 가지게 된다.
도7은 본 발명의 일실시예로 샘플링 레이트 컨버팅 방법을 도시한 순서도이다.
S10 단계는 입력 클럭 레이트로 샘플링된 입력 신호를 순서대로 클럭 레이트 변환부(300)의 메모리에 저장하는 단계이다.
S20 단계는 리샘플 포지션 연산부(500)에서 설정된 리샘플 ratio 값에 의해 신호의 리샘플 포지션 값을 출력하는 단계이다.
여기서, 리샘플 포지션 값은 정수부분의 정수값(Dint)과 소수부분의 소수값(dfrac)으로 구분할 수 있다.
S30 단계는 클럭 레이트 변환부(300)가 리샘플 포지션의 정수값(Dint)을 메모리 주소로 사용하여 해당 메모리에 저장되어 있는 신호를 출력 클럭 레이트로 샘플링하는 단계이다.
상술한 바와 같이 클럭 레이트 변환부(300)는 입력 동작 주파수에서 출력 동작 주파수로 신호의 샘플링 레이트를 변환해주는 역할을 한다. 클럭 레이트 변환부(300)는 메모리를 사용하여 신호의 샘플링 레이트를 출력 클럭의 샘플링 레이트로 안전하게 변환하기 위한 기능을 수행한다.
클럭 레이트 변환부(300)는 입력 클럭 레이트로 샘플링된 입력 신호를 순서대로 메모리에 저장하고, 리샘플 포지션 연산부(500)에서 계산된 리샘플 포지션의 정수값을 메모리 주소로 이용하여 해당 메모리에 저장되어 있는 신호를 출력 클럭 레이트로 샘플링한다.
여기서, 본 발명에서 이용되는 메모리는 링타입 메모리이다. 메모리의 사이즈가 N개라고 가정하면, 하나의 메모리에서 N개 입력 클럭 동안 하나의 신호가 유지된다.
예를 들어 설명하면, L번째 입력 클럭에 m번째 신호가 0번 메모리에 입력되었을 때, 이 m번째 신호는 N 개의 입력 클럭 동안 0번째 메모리에 저장되어 있고, (L+N)번째 입력 클럭이 동작할 때는 (m+N)번째 신호가 다시 0번 메모리에 입력된다.
이러한 과정을 통해 데이터의 보유시간을 늘림으로써 비동기 클럭 사용시 발생하는 clock domain crossing 문제로 인한 metastability 영향에 따른 성능 열화를 완화시킬 수 있다.
또한, 입력된 리샘플 ratio의 누적값 계산을 통해 샘플링하고자 하는 신호가 있는 메모리의 위치와 그에 대한 리샘플 포지션을 예측하기 때문에 비동기 클럭 간에 발생하는 위상 오프셋의 영향을 최소화할 수 있다.
S40 단계는 리샘플 포지션 보상부(600)에서 리샘플 포지션 값(Dint, dfrac)을 신호에 적용하여 비정수배 샘플링 레이트 컨버젼에 의해 발생하는 신호의 오차값을 보정하는 단계이다.
도8과 도9는 본 발명의 일실시예로 리샘플 ratio 오차 추정부의 간략한 플로우차트를 나타내는 도면이다.
리샘플 ratio 오차 추정부(530)은 Dint 값에 의해 발생하는 데이터의 손실 포인트가 실제 두 클럭 사이에서 일어나는 데이터의 손실 포인트와 일치하지 않으면 입력된 리샘플 ratio에 오차가 존재하고 있다고 판단하여 리샘플 ratio의 fractional rate part값을 업데이트한다.
리샘플 ratio 오차 추정부(530)의 동작을 도8과 도9를 이용하여 설명하면 다음과 같다.
여기서, Rf= FracRate_comp, Rc= comp_Fdelay, Ec= Error_comp 를 의미한다.
Update_EN은 현재 동작되는 리샘플 ratio의 업데이트 여부를 판단해주는 신호로, 초기값을 0으로 둔다(S100). 이후에 이 값이 1이되면, 실제 클럭비와 현재 동작중인 리샘플 ratio 사이에 오차가 발생한 것으로 판단한다. 이후 오차를 보정하는 과정(S110~S120)을 수행한다.
본 발명에서의 오차 추정 방식은 데이터의 손실 포인트 발생 유무가 아니라 손실 포인트 발생의 빠르고 느림의 판단에 의한 것이기 때문에, Update_EN 값이 0 인지 1인지에 따라 오차의 판단기준이 달라지게 된다.
Update_EN 값을 판단(S103)하여 Update_EN이 0인 동안에는 두 값 사이의 손실포인트가 동일하여 오차가 없다는 전제하에 A_cnt와 B_cnt의 값을 비교한다(S104). A_cnt와 B_cnt 값이 같으면, 두 값 사이의 오차가 없는 것으로 Ec= 0이고 Rf= Rc 인 상태이다(S105).
A_cnt와 B_cnt 값이 다르면, 오차가 발생한 시점을 찾기 위한 과정(S106~ S109)을 수행한다.
Update_EN을 1로 인 경우(S106 및 S110이후)에는 두 값 사이의 손실 포인트가 발생하는 시점이 다르다는 전제가 있는 것이기 때문에 먼저 손실포인트가 발생한 값을 tmp_cnt에 저장하고 tmp_cnt의 값과 손실 포인트의 발생이 느리게 일어나는 블록의 값을 비교하게 된다.
이 두 값이 같아지는 시점이 되면 Update_EN이 0이 되고, 오차 추정 과정을 멈추게 된다.
Update_EN이 1이 되는 동안에는 매 펄스마다 리샘플 ratio의 업데이트가 이루어지게 된다. 리샘플 ratio의 오차가 큰 경우에는 누적값에 의해 실제 클럭비와의 손실 포인트가 발생하는 지점의 오차 또한 크게 발생하게 된다.
따라서, Update_EN이 1인 동안에는 매 펄스마다 업데이트를 해줌으로써 빠른 시간내에 오차 추정의 범위를 좁혀 나갈 수 있게 된다.
여기서, Up_case는 실제 클럭비를 기준으로 리샘플 ratio의 값이 큰지 작은지를 판단해주는 기준값으로 업데이트의 방향성을 알려준다.
Up_case값이 바뀌는 시점이 오면, 현재 발생된 오차값이 오차보정 단위값보다 작은 값이라 판단하여 오차보정 단위값을 1/2로 줄여줌으로써 최소의 오차값으로 보정할 수 있다(S113, S118).
도8과 도9는 과정은 다음의 도10과 도11의 설명을 통해 보다 잘 이해될 수 있다.
도10과 도11은 리샘플 ratio 오차 추정부의 동작을 타이밍도를 예로 들어 설명하고 있다.
도10은 실제 클럭비와 리샘플 ratio에서 발생하는 손실 포인트를 찾아 펄스를 발생시키는 것을 보여주는 타이밍도이다.
클럭 카운트 블록(531)의 출력값 Cclk과 누적기 결과값의 정수값인 Dint에서 손실 포인트가 발생할 때마다 펄스값 Pulse_A와 Pulse_B를 발생시킨다. 각각의 펄스 사이 간격을 카운트한 값이 A_cnt와 B_cnt이다.
도11은 실제 클럭비보다 작은 리샘플 ratio가 입력되었을 때를 예시로 한다.
실제 클럭비보다 작은 값이 입력되었기 때문에 fractional part의 누적값에 의해 발생하는 손실 포인트가 실제 클럭에 의한 동작보다 늦게 발생하게 되고, 이를 통해 현재 리샘플러에 적용되는 리샘플 ratio가 실제 클럭비보다 작은 값으로 동작되고 있다는 것을 알 수 있다.
도11은 리샘플 ratio 오차 추정부(530)에서 리샘플 ratio를 보상하는 방법에 대해 간략히 설명하는 타이밍도이다.
Update_EN은 현재 동작되는 리샘플 ratio의 업데이트 여부를 판단해주는 신호로, A_cnt와 B_cnt가 서로 다른 값을 가지면 둘 사이에 오차가 있는 것으로 판단하여 1로 내보내준다.
Update_EN이 1이 되면, 리샘플 ratio를 업데이트 하게 된다. Update_EN이 1일 때 A_cnt 값이 B_cnt값보다 작으면, 리샘플 ratio가 실제 클럭비보다 작은 값으로 동작하고 있다고 판단하여 comp_Fdelay를 더한 값으로 업데이트 해주고, A_cnt 값이 B_cnt 값보다 크면, 리샘플 ratio가 실제 클럭비보다 큰 값으로 동작하고 있다고 판단하여, comp_Fdelay를 뺀 값으로 업데이트 해준다.
도11의 첫번째 타이밍도는 실제 클럭비보다 작은 리샘플 ratio 값이 입력되었을 때 오차를 추정하는 과정의 예를 보여준다.
A_cnt와 B_cnt의 값에 오차가 생기는 시점이 발생하면, Update_EN이 1이 되고 FracRate_comp 값이 업데이트 된다. A_cnt가 B_cnt보다 작으면 이 때의 A_cnt 값을 tmp_cnt에 저장하고, 리샘플 ratio가 실제 클럭비보다 작은 값으로 동작하고 있다고 판단하여 (FracRate_comp+comp_Fdelay) 값으로 업데이트 해준다. B_cnt의 값이 tmp_cnt와 같아지면 Update_EN은 0이 되고, 업데이트 과정은 일어나지 않는다.
두번째 타이밍도는 실제 클럭비보다 큰 리샘플 ratio 값이 입력되었을 때 오차를 추정하는 과정의 예이다. 이 경우는 앞의 경우와 반대로 오차가 생기는 시점에 A_cnt가 B_cnt 보다 크기 때문에, 실제 클럭비보다 큰 리샘플 ratio가 동작한다고 판단하여 (FracRate_comp-comp_Fdelay) 값으로 업데이트 된다.
도12는 본 발명의 일 실시예로 리샘플 ratio의 오차 크기에 따른 FracRate_comp 값이 업데이트 되는 과정을 나타낸 타이밍도이다.
도12의 첫번째 클럭의 입력된 리샘플 ratio(F')는 실제 클럭비와 비교해 2a의 오차를 가진다.
두번째 클럭의 타이밍도는 실제 클럭비와 비교해 6a의 오차를 가진다. 이 두 경우를 예를 들어 리샘플 ratio 오차 추정 방법을 보여주고 있다. 오차가 작으면 실제 클럭비와 Dint에서의 손실포인트 발생 시점의 차이가 작지만, 그만큼 오차가 발생하는 시간도 길어진다. 반면 오차가 클수록 누적된 오차값에 의해 실제 클럭비와 Dint에서의 손실 포인트가 발생하는 시점의 간격이 커지게 되어 Update_EN이 1로 유지되는 시간이 길어진다.
이때, 매 펄스마다 FracRate_comp 값을 업데이트 해줌으로써, 빠른 시간내에 오차 추정의 범위를 좁혀나갈 수 있다.
상기에서는 본 발명의 실시예를 참조하여 설명하였지만, 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
100 : 샘플링 레이트 컨버터 200 : 데이터 지연부
300 : 클럭 레이트 변환부 400 : Lagrange 방정식 필터부
500 : 리샘플 포지션 연산부 510 : 리샘플 레이트 연산부
511 : 누적기 520 : 리샘플 ratio 오차 보상부
530 : 리셈플 ratio 오차 추정부 540 : 연산 오차 보상부
570 : 카운터부 580 : 누적부
600 : 리샘플 포지션 보상부

Claims (14)

  1. 입력 클럭에 따라 신호를 지연시켜 주는 데이터 지연부;
    상기 신호의 샘플링 레이트(sampling rate)를 변환시키는 클럭 레이트 변환부;
    레이트(rate)가 변환된 신호의 필터링 기능을 수행하는 Lagrange 방정식 필터부;
    설정된 리샘플(resample) ratio 값에 의해 상기 신호의 리샘플 포지션 값(Dint, dfrac)을 출력하는 리샘플 포지션 연산부; 및
    상기 리샘플 포지션 값(Dint, dfrac)을 상기 신호에 적응하여 비정수배 샘플링 레이트 컨버전에 의해 발생하는 신호의 오차값을 보정해 주고 최종 신호를 출력하는 리샘플 포지션 보상부;
    를 포함하되,
    상기 리샘플 포지션 값은 정수값(Dint)과 소수값(dfrac)을 포함하는 샘플링 레이트 컨버터.
  2. 제1항에 있어서,
    상기 클럭 레이트 변환부는 메모리를 포함하고 있어, 입력 클럭 레이트로 샘플링된 입력 신호를 순서대로 상기 메모리에 저장하고 상기 리샘플 포지션 연산부에서 출력된 상기 리샘플 포지션의 정수값(Dint)을 메모리 주소로 사용하여 해당 메모리에 저장되어 있는 신호를 출력 클럭 레이트로 샘플링하는 특징으로 하는 샘플링 레이트 컨버터.
  3. 제1항에 있어서,
    상기 Lagrange 방정식 필터부의 필터 차수는 리샘플 레이트, 대역폭에 따라 가변적으로 적용할 수 있고 상기 차수에 따라 필터의 계수가 결정되는 것을 특징으로 하는 샘플링 레이트 컨버터.
  4. 제1항에 있어서,
    상기 데이터 지연부는 상기 Lagrange 방정식 필터부의 필터 차수에 의해 지연 차수가 결정되고 상기 입력 클럭에 따라 상기 신호를 1샘플씩 지연시켜 주는 것을 특징으로 하는 샘플링 레이트 컨버터.
  5. 제1항에 있어서,
    상기 리샘플 포지션 연산부는 입력 클럭과 출력 클럭의 비를 나타내는 값인 상기 리샘플 ratio 값을 기반으로 리샘플 포지션을 추정하는 데 사용하는 상기 리샘플 포지션 값을 출력하는 것을 특징으로 하는 샘플링 레이트 컨버터.
  6. 제5항에 있어서,
    상기 리샘플 포지션 연산부는
    입력된 리샘플 ratio 값과 실제 동작 클럭비와의 오차를 추정하여 상기 리샘플 ratio 값을 업데이트하고, 업데이트된 상기 리샘플 비율 값에 상응하는 누적 오차를 보상하는 기능을 수행하는 리샘플 ratio 오차 보상부; 및
    상기 리샘플 ratio 오차 보상부에서 추정된 값을 입력받아 출력 샘플링 레이트에 맞는 상기 리샘플 포지션 값을 출력하는 리샘플 레이트 연산부;
    를 포함하는 것을 특징으로 하는 샘플링 레이트 컨버터.
  7. 제6항에 있어서,
    상기 리샘플 ratio 오차 보상부는,
    입력된 리샘플 ratio 값과 실제 동작 클럭비와의 오차를 추정하는 리샘플 ratio 오차 추정부; 및
    상기 리샘플 ratio 값이 업데이트 됨에 따라 생기는 이전의 리샘플 ratio 값으로 동작된 누적 오차값을 보정하는 연산 오차 보상부;
    를 포함하는 것을 특징으로 하는 샘플링 레이트 컨버터.
  8. 제7항에 있어서,
    상기 리샘플 ratio 오차 추정부는,
    상기 리샘플 포지션 값의 정수값(Dint)에 의해서 발생하는 데이터의 변화 포인트가 실제 클럭 사이에서 발생하는 데이터의 변화 포인트와 일치하지 않으면 입력된 리샘플 ratio 에 오차가 있다고 판단하여 리샘플 ratio의 소수 레이트 부분(fractional rate part) 값을 업데이트하는 것을 특징으로 하는 샘플링 레이트 컨버터.
  9. 제7항에 있어서,
    상기 리샘플 ratio 오차 추정부는,
    입력 클럭으로 카운트 된 신호를 출력 클럭(Cclk(m))으로 출력하는 클럭 카운트 블럭;
    상기 클럭 카운트 블럭의 상기 출력 클럭(Cclk(m))과 상기 클럭의 리샘플 포지션 값의 정수값(Dint)의 해당 클럭에서의 값(D(m))을 이전 클럭의 출력 클럭(Cclk(m-1))과 이전 클럭의 리샘플 포지션 값의 정수값(D(m-1))과 각각 비교하여 그 차이((Cclk(m)-Cclk(m-1)) 및 D(m)-D(m-1))의 값이 상기 리샘플 ratio에 따라 미리 설정된 값(T)과 일치하는지를 비교하여, 상기 미리 설정된 값(T)과 일치하지 않으면, 소수 레이트 부분(fractional rate part)의 누적부에 의해 손실포인트가 발생하였다고 판단하여 펄스를 발생시키는 계산 및 펄스 발생블럭;
    상기 펄스의 펄스 발생 간격을 계산하는 펄스 카운트블럭;
    실제 클럭 동작에 의해 발생한 상기 펄스를 기준으로 상기 리샘플 포지션 값의 정수값(Dint)에 의해 발생된 펄스를 비교하여 입력된 상기 리샘플 포지션 값의 정수값(Dint)의 동작 속도를 판단하는 비교블럭; 및
    상기 리샘플 포지션 값의 정수값(Dint)의 동작 상태를 입력받아 상기 리샘플 ratio 값을 보정 단위값(comp_Fdelay) 만큼 업데이트 해준 값(FracRate_comp)으로 출력하는 업데이트 블럭;
    을 포함하는 것을 특징으로 하는 샘플링 레이트 컨버터.
  10. 제9항에 있어서,
    상기 연산 오차 보상부는,
    상기 리샘플 ratio 값을 보정 단위값(comp_Fdelay) 만큼 업데이트 해준 값(FracRate_comp)이 업데이트 될 때마다 이전 ratio 로 계산된 구간에 대한 카운트 값을 출력하는 카운터부; 및
    상기 카운터부에서 출력된 값과 상기 보정 단위값(comp_Fdelay)을 이용하여 이전 ratio 로 계산된 구간에 대한 오차 보상값을 계산하는 누적부;
    를 포함하는 것을 특징으로 하는 샘플링 레이트 컨버터.
  11. 입력 클럭 레이트로 샘플링된 입력 신호를 순서대로 클럭 레이트 변환부의 메모리에 저장하는 단계;
    리샘플 포지션 연산부에서 설정된 리샘플 ratio 값에 의해 신호의 리샘플 포지션 값을 출력하는 단계;
    클럭 레이트 변환부가 리샘플 포지션의 정수값(Dint)을 메모리 주소로 사용하여 해당 메모리에 저장되어 있는 신호를 출력 클럭 레이트로 샘플링하는 단계; 및
    리샘플 포지션 보상부에서 상기 리샘플 포지션 값을 신호에 적용하여 비정수배 샘플링 레이트 컨버젼에 의해 발생하는 신호의 오차값을 보정하는 단계;
    를 포함하는 샘플링 레이트 컨버팅 방법.
  12. 제11항에 있어서,
    상기 리샘플 포지션 값은 정수부분의 정수값(Dint)과 소수부분의 소수값(dfrac)을 포함하는 것을 특징으로 하는 샘플링 레이트 컨버팅 방법.
  13. 제11항에 있어서,
    상기 클럭 레이트 변환부가 리샘플 포지션의 정수값(Dint)을 메모리 주소로 사용하여 해당 메모리에 저장되어 있는 신호를 출력 클럭 레이트로 샘플링하는 단계;는,
    상기 클럭 레이트 변환부가 입력 클럭 레이트로 샘플링된 입력 신호를 순서대로 상기 메모리에 저장하고, 상기 리샘플 포지션 연산부에서 계산된 리샘플 포지션의 정수값을 메모리 주소로 이용하여 해당 메모리에 저장되어 있는 신호를 출력 클럭 레이트로 샘플링하는 것을 특징으로 하는 샘플링 레이트 컨버팅 방법.
  14. 제11항에 있어서,
    상기 리샘플 포지션 보상부에서 상기 리샘플 포지션 값을 신호에 적용하여 비정수배 샘플링 레이트 컨버젼에 의해 발생하는 신호의 오차값을 보정하는 단계;는,
    입력된 리샘플 ratio의 누적값 계산을 통해 샘플링하고자 하는 신호가 있는 메모리의 위치와 그에 대한 리샘플 포지션을 예측하여 비동기 클럭 간에 발생하는 위상 오프셋의 영향을 최소화하는 것을 특징으로 하는 샘플링 레이트 컨버팅 방법.
KR1020140124737A 2014-09-19 2014-09-19 샘플링 레이트 컨버터 및 그 방법 KR20160033916A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020140124737A KR20160033916A (ko) 2014-09-19 2014-09-19 샘플링 레이트 컨버터 및 그 방법
US14/793,645 US9379886B2 (en) 2014-09-19 2015-07-07 Sample rate converter and method of converting sample rate

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140124737A KR20160033916A (ko) 2014-09-19 2014-09-19 샘플링 레이트 컨버터 및 그 방법

Publications (1)

Publication Number Publication Date
KR20160033916A true KR20160033916A (ko) 2016-03-29

Family

ID=55526790

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140124737A KR20160033916A (ko) 2014-09-19 2014-09-19 샘플링 레이트 컨버터 및 그 방법

Country Status (2)

Country Link
US (1) US9379886B2 (ko)
KR (1) KR20160033916A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110519197A (zh) * 2017-08-08 2019-11-29 北京展讯高科通信技术有限公司 时域信号预处理方法及装置、存储介质、接收机

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3226499B1 (en) * 2016-03-31 2019-09-04 Intel IP Corporation Apparatuses and methods for generating a second digital signal based on a first digital signal
CN106972840B (zh) * 2017-02-28 2020-05-05 深圳市鼎阳科技股份有限公司 一种采样率转换方法与装置
US10097200B1 (en) * 2017-05-12 2018-10-09 Analog Devices Global Resynchronization of sample rate converters
CN108337639B (zh) * 2018-05-02 2019-07-26 巢湖学院 一种基于牛顿插值的蒙特卡罗移动节点定位算法
US10826676B2 (en) * 2018-08-31 2020-11-03 Commscope Technologies Llc Efficient implementation of fixed-rate farrow-based resampling filter
US10720904B2 (en) 2018-11-12 2020-07-21 Analog Devices International Unlimited Company Techniques for input formatting and coefficient selection for sample rate converter in parallel implementation scheme
CN114257112B (zh) * 2021-11-03 2024-06-11 淮阴工学院 一种应用拉格朗日插值法补偿单相并网逆变器延时的方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100402928B1 (ko) 1996-12-24 2004-03-20 엘지전자 주식회사 클럭위상시프터의지연오차보정장치
US7773665B2 (en) 2004-05-12 2010-08-10 Electronics And Telecommunications Research Institute Apparatus and method for corresponding frequency synchronization in on-channel repeater
US7339503B1 (en) * 2006-09-29 2008-03-04 Silicon Laboratories Inc. Adaptive asynchronous sample rate conversion
KR100837702B1 (ko) 2006-10-26 2008-06-13 한국전자통신연구원 위상 편이를 이용한 반송파 주파수 복원 장치 및 그 방법
WO2011085947A1 (en) 2010-01-15 2011-07-21 St-Ericsson Sa Sampling rate converter data flow control mechanism
KR101181979B1 (ko) 2010-10-14 2012-09-11 주식회사 이노와이어리스 부분지연발생기를 이용한 디지털 리샘플링 장치
KR102060358B1 (ko) 2013-01-15 2019-12-30 삼성전자주식회사 서브 샘플된 광대역 시스템을 위하여 서브 샘플된 레이트로 타이밍을 동기화하는 방법 및 시스템
US9054905B2 (en) 2013-01-15 2015-06-09 Samsung Electronics Co., Ltd. Method and apparatus for timing synchronization at sub-sampled rate for sub-sampled wideband systems

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110519197A (zh) * 2017-08-08 2019-11-29 北京展讯高科通信技术有限公司 时域信号预处理方法及装置、存储介质、接收机
CN110519197B (zh) * 2017-08-08 2022-03-22 北京紫光展锐通信技术有限公司 时域信号预处理方法及装置、存储介质、接收机

Also Published As

Publication number Publication date
US9379886B2 (en) 2016-06-28
US20160087787A1 (en) 2016-03-24

Similar Documents

Publication Publication Date Title
KR20160033916A (ko) 샘플링 레이트 컨버터 및 그 방법
US10291245B2 (en) Device and method for correcting error estimation of analog-to-digital converter
US7061409B1 (en) Techniques for sample rate conversion
JP5537192B2 (ja) 受信装置及びゲイン設定方法
JP3811873B2 (ja) ディジタル復調器におけるシンボルタイミング復元回路
KR100620934B1 (ko) 비동기 신호 입력 장치 및 샘플링 주파수 변환 장치
EP2620944B1 (en) Asynchronous sampling frequency conversion device, method, and program
KR19980015796A (ko) 디지털 복조기의 인터폴레이터
KR100684245B1 (ko) 데이터 전송 제어기 및 샘플링 주파수 변환기
JP2006129497A (ja) 周期的サンプリング誤差の補正方法
US20160380638A1 (en) Cdr control circuit, cdr circuit, and cdr control method
US20120054454A1 (en) Sampling frequency converter
US8472561B2 (en) Receiver circuit
JP4386079B2 (ja) サンプリング周波数変換装置
US8213558B2 (en) Digital timing correction system, method and apparatus
US7724861B2 (en) Sample rate converter
US8242829B1 (en) Multichannel interpolator
US9000958B1 (en) Device and method for converting data rate
US7764758B2 (en) Apparatus and/or method for variable data rate conversion
JP5885219B2 (ja) 受信装置及びゲイン設定方法
JP5787608B2 (ja) 信号生成装置および信号生成方法
CN113890532B (zh) 电子装置的接收端及定时恢复操作的相位阈值的设定方法
CN115347999A (zh) 并行符号同步方法和装置、电子设备、存储介质
KR0152029B1 (ko) 보간기법을 이용한 동기가산 평균화장치 및 그 방법
Senst et al. Rate conversion for arbitrary sampling rates in the transmit path of a digital transceiver

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid