왜곡 보정 필터를 만드는 방법


11

복잡한 믹서, CIC 데시 메이터 및 FIR 보상 / 데시 메이션 필터 로 구성된 채널 라이저를 만들고 있습니다. 중요하다면, 최종 FIR 필터는 하나 이상의 필터로서 구현 될 수있다.

제 질문은 CIC 필터의 평탄하지 않은 주파수 응답을 보상하도록 필터를 어떻게 설계합니까? CIC 응답의 역수를 계산하여 원하는 주파수 응답을 생성 한 다음 역 FFT를 통해 실행하여 임펄스 응답을 얻습니까?

보시다시피, 내 특정 문제는 CIC 필터와 관련이 있지만 내 질문은 실제로 모든 종류의 왜곡 보정 필터를 만드는 방법에 관한 것입니다.

시간 내 줘서 고마워.


3
통신 시스템에서 조기에 왜곡을 보상하는 목적을 갖는 필터를 종종 이퀄라이저 라고합니다 . 그 동안 읽어야 할 추가 정보를 얻을 수 있습니다. 일반적인 유형은 제로 포싱 이퀄라이저 (보정하는 시스템의 주파수 응답에 0이있는 경우 원하는 것이 아님)와 최소 평균 제곱 오차 (MMSE) 이퀄라이저입니다.
Jason R

@JasonR 저는 의사 결정 지향 이퀄라이저를 보상하는 채널의 맥락에서 MMSE 적응 형 이퀄라이저에 익숙하지만 그게 당신의 의도인지 의심 스럽습니다. 어떻게 든 이퀄라이저를 훈련 하시겠습니까? 요점은 오류가 무엇인지 결정하는 방법입니다.
Jim Clay

MMSE는 이퀄라이저가 노력하는 기준만을 참조합니다. 적응 적이거나 비 적응적일 수 있습니다. 보상 할 시스템의 전달 함수와 부가 노이즈의 자기 상관 함수를 알고 있고 둘 다 시간이 변하지 않는 경우 "MMSE 이퀄라이저"를 도출 할 수 있습니다. 적응 형 솔루션은 해당 정보를 정확하게 알지 못하거나 시간이 지남에 따라 변경되는 경우에 매우 유용합니다.
Jason R

적응 형 필터는 종종 다수의 알려진 심볼이 시스템을 통해 전송되는 훈련 모드를 포함하여, 수신기가 필터를 양호한 계수 세트에 수렴시킬 수있게한다. 훈련 후, 필터 탭의 지속적인 업데이트를 위해 의사 결정 작업이 사용되는 추적 단계에 들어가는 것이 일반적입니다. 대안으로서, SNR과 ISI가 "충분히 좋은"체제에서, 의사 결정 지향 모드는 처음부터 블라인드 획득 방식으로 사용되어 훈련 단계를 생략 할 수있다.
Jason R

수학적으로 접근 가능한이 주제에 대한 읽기 자료를 찾는 것은 다소 어렵습니다. 나는 Haykin의 Adaptive Filter Theory를 좋아 하지만 수학을 끝내려면 약간의 노력이 필요합니다 (그리고 당신은 단단한 선형 대수 배경이 필요합니다). 정기적으로 사용하지 않으면 통계 신호 처리 주제를 먼저 다루어야 할 정도로 복잡합니다.
Jason R

답변:


9

다음은 CIC 보상을 다루며 일반적인 "왜곡"기술이 아닙니다. 그러나 그것은 변하지 않는 "왜곡"을 "보상"하는 간단한 방법입니다. 주파수 응답이 알려진 경우 주파수의 역을 사용하여 보상 할 수 있습니다. 복잡성이 감소하여 불량한 필터를 사용할 수있는 CIC 필터와 같은 예는 나중에 신호 체인에서 보상됩니다. 이 예에서는 주파수 응답을 알고 역수를 사용할 수 있습니다. 다중 속도 필터에서는 데시 메이션 후 "사용 가능한"스펙트럼 만 사용하려고합니다.

일반적으로, CIC 필터를 보상하기 위해 CIC 필터 응답의 역이 보상 필터를 생성하는데 사용될 수있다. CIC의 응답은 다음과 같습니다 (참조 [r2] 또는 [r3] 참조)

H(ω)=|sin(ωD/2)sin(ωM/2)|N

여기서 D는 미분 지연, M은 데시 메이션 비율, N은 필터 차수 (캐스케이드 필터 수)입니다. 역은 다음과 같이 지정할 수 있습니다

H(ω)=|sin(ωM/2)sin(ωD/2)|N

보상 필터의 주파수 응답이 확보되면 원하는 FIR 필터의 길이를 간단히 선택할 수 있습니다. FIR의 길이는 응용 프로그램에 따라 다릅니다. FIR 필터가 길수록 보상이 더 좋습니다.

다음은이 직선 보정의 도표입니다.

다음은 주파수 응답 및 플롯을 생성하는 Python 코드입니다.

import numpy as np
from numpy import sin, abs, pi
import pylab

D = 1; M = 7; N = 3

Hfunc = lambda w : abs( (sin((w*M)/2)) / (sin((w*D)/2.)) )**N
HfuncC = lambda w : abs( (sin((w*D)/2.)) / (sin((w*M)/2.)) )**N

w = np.arange(1024) * pi/1024

G = (M*D)**N
H = np.array(map(Hfunc, w))
Hc = np.array(map(HfuncC, w))
# only use the inverse (compensation) roughly to the first null.
Hc[int(1024*pi/M/2):] = 1e-8
plot(w, 20*log10(H/G))
plot(w, 20*log10(Hc*G))
grid('on')

다른 접근법과 근사값 은 [r1]을 참조하십시오 .sinc1

[r1] Altera, "CIC 보상 필터 이해"

[r2] R. Lyons, "디지털 신호 처리 이해하기", 2nd ed., Prentice Hall, Upper Saddle River, 2004, 뉴저지

[r3] R. Lyons, "캐스케이드 인티 그레이터 콤 필터 이해"


Ref 1은 훌륭하지만 다른 용어를 사용합니다 (M = 스테이지 지연, D를 사용한 경우 지연. R = 감소율, M을 사용한 경우). 오류를 보는 데 시간이 걸렸습니다. F / R. 빠른 Excel 도표를 작성한 후에 Altera 버전이 올바른 것으로 생각합니다.
Alan Campbell

@AlanCampbell 위의 방정식 (코드 조각에서했던)을 플롯하면 오류가 없음을 알 수 있습니다. 내가 방정식에서 명시 적으로 부르지 않은 것은 gain 입니다. 코드 조각에서 게인을 제거합니다. 당신은 코드 싹둑를 실행하고를 수정하는 경우 M=8그리고 N=9그것은 내가 참조 2. 가까이 명칭을 사용 참조 1과 동일한 플롯을 생성
크리스토퍼 펠튼을

2

크리스토퍼의 대답은 좋은 것 같습니다. 나는 우리에게 게으른 / 사기꾼 유형을 추가 할 것이라고 생각했습니다.

Matlab의 fdatool (Filter Design & Analysis Tool)을 파헤 치면서 CIC 및 역 sinc 필터를 모두 설계하고 모델링 할 수 있음을 발견했습니다. 역 sinc 필터는 CIC의 왜곡 보상 필터입니다.

"다중 필터 작성"페이지 (버전 R2011b의 왼쪽에있는 단추)로 이동하여 CIC 필터를 지정하여 CIC 필터를 생성하십시오. 그런 다음 보간 / 데시 메이션 비율, 캐스케이드 수 (Matlab에서 "섹션"이라고 함) 등 원하는 모든 매개 변수를 설정할 수 있습니다.

"디자인 필터"페이지 (도구가 시작될 때 기본적으로 사용되는 페이지)로 이동하고 저역 통과 드롭 다운 메뉴에서 "역정도 저역 통과"를 지정하여 역 sinc 필터를 작성합니다. 그런 다음 다양한 매개 변수를 설정할 수 있습니다. "p"를 포함하여 대화 상자의 옵션 부분에 몇 개의 고유 한 매개 변수가 있습니다. 이는 캐스케이드 수 (증가 지수)에 해당합니다.

역 싱크 필터 설계는 통과 대역이 어디에 있는지, CIC 처짐이 그 시점에 있었는지 파악한 다음 대략 취소 된 필터를 설계하는 것보다 수학 계산의 사례가 적었 기 때문에 완전히 만족스럽지 않았습니다. 처진 밖으로. 내 CIC 필터에는 4 개의 캐스케이드가 있으므로 "p"를 4로 설정해야한다고 생각했지만 그렇게하면 과도하게 보상됩니다. "p"를 기본값 인 1로 두었습니다.

이 도구는 세션에서 두 필터를 모두 저장 한 후 필터 관리자로 이동하여 전체 주파수 응답을 확인하기 위해 계단식으로 정렬했을 때 정말 빛났습니다. 이것은 매우 도움이되고 쉬웠습니다.


0

여기에 답변을 복제하지 않고 참조하십시오

CIC 보상 필터를 만드는 방법

CIC 보상을위한 매우 간단한 3 탭 솔루션을 보여줍니다.

이것은 CIC에만 해당되거나 역 Sinc가 필요한 모든 용도 (예 : D / A 변환 전)입니다.

일반적인 횡단 왜곡을 보상하기 위해 (동적 잡음 왜곡과는 반대로 횡단 필터로 복제 할 수 있음) Wiener Hopf 방정식을 사용하여 최소 제곱 오차 접근법을 사용하는 보상 필터를 찾는 것이 이상적입니다. 원하는 실제 반응과 비교하고 이퀄라이저를 훈련시키기 위해 가능한 경우 훈련 순서를 사용하는 것 사용 된 소스 코드로이를 보여주는 응용 프로그램은 다음을 참조하십시오.

오디오 신호에서 라우드 스피커 주파수 응답 보정

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.