FIR 필터 - 페이지 14

 
ssd >> :

Sabluk, 친구가 되어주세요. 제 실험을 위해 이 "적응형 필터"를 주세요.


그럼 이 필터로 무엇을 할 것인가? 그가 무엇에, 왜, 어떻게 적응하는지 관심이 있습니까?

 
begemot61 >> :

그럼 이 필터로 무엇을 할 것인가? 그가 무엇에, 왜, 어떻게 적응하는지 관심이 있습니까?

-------------------------------------------------- -------------------------------------------------- --

요컨대, 이상적으로는 지표 필터는 제 생각에 독립적으로

입력에 제공된 과거 데이터의 스펙트럼을 분석하고 동적으로 적응/조정

입력 신호의 스펙트럼 구성에 따른 필터링 특성.


즉, 선형 디지털 필터 공식에서 이러한 "가중 계수"는 다음과 같습니다.


Y[i] = B[0] X[i] + B[1] X[i-1] + .... - A[1] Y[i-1] - A[2] Y[i-2 ] - ....

여기서 X는 입력 시계열, Y는 출력 시리즈, A와 B는 가중치 계수 세트입니다.


입력 신호의 스펙트럼에 적응/조정해야 합니다.


 
sab1uk >> :
begemot61 подскажи как можно по простому конвертировать твой фильтр с определенными параметрами в импульсную характеристику и записать ее в файл или в массив из глобальных переменных?

이러한 계수는 전역 배열 double NormCoef[] 에 저장되며 Normalization() 함수에서 고려됩니다. Normalization()FilterOrder() , Io(double x) 함수를 사용합니다. PriceSelect(), FilterResponse(int index_of_bar) 함수가 필요하지 않습니다. 남겨둘 전역 변수는 직접 확인하십시오. 초기화 중에 Normalization() 을 한 번 계산합니다. 적응형 필터가 있는 경우 Normalization() start() 내부에 있어야 합니다 . 이 경우 작업 속도를 높이는 방법에 대해 생각할 것입니다. 예를 들어, Bessel 함수 Io(double x) 를 1비트로 계산하는 정확도를 줄입니다. 이중 베셀Accuracy=0.00001

 
begemot61 >> :

이러한 계수는 전역 배열 double NormCoef[] 에 저장되며 Normalization() 함수에서 고려됩니다. Normalization()FilterOrder() , Io(double x) 함수를 사용합니다. PriceSelect(), FilterResponse(int index_of_bar) 함수가 필요하지 않습니다. 남겨둘 전역 변수는 직접 확인하십시오. 초기화 중에 Normalization() 을 한 번 계산합니다. 적응형 필터가 있는 경우 Normalization() start() 내부에 있어야 합니다 . 이 경우 작업 속도를 높이는 방법에 대해 생각할 것입니다. 예를 들어, Bessel 함수 Io(double x) 를 1비트로 계산하는 정확도를 줄입니다. Te 이중 besselAccuracy=0.00001

감사하다! 내 디자인에서 FIR과 경주만 하면 됩니다.

즉, 필터의 초기화 부분을 생성기로 사용

 

질문이 있습니다:

필터 매개변수의 해당 변경과 함께 서로 다른 시간대의 필터 판독값이 일치해야 합니까? (예: H1 매개변수 = H4 * 4 매개변수)

 
neoclassic >> :

질문이 있습니다:

필터 매개변수의 해당 변경과 함께 서로 다른 시간대의 필터 판독값이 일치해야 합니까? (예: H1 매개변수 = H4 * 4 매개변수)

필터 자체는 아무것도 하지 않습니다. 입력으로 제공된 데이터를 처리합니다. 데이터가 다르면 처리 결과가 다릅니다. 처리 알고리즘은 동일하지만

 

Begemotych, PassBandRipple 매개변수를 변경하는 것이 의미가 있습니까?

정확히 30이 설정되는 이유는 무엇입니까?

 
sab1uk >> :

Begemotych, PassBandRipple 매개변수를 변경하는 것이 의미가 있습니까?

정확히 30이 설정되는 이유는 무엇입니까?

사실은 윈도우 기능의 Kaiser 구현이 있는 필터가 최악의 2가지 조건(통과 대역의 리플과 저지대역의 억제)을 선택할 수 있다는 것입니다. 그는 두 가지 조건을 동시에 제공할 수 없기 때문에 요구 사항 중 하나가 실제로 주어진 것보다 낫습니다. 현실적으로 20dB 컷은 +/-0.83dB 리플에 해당하고 40dB 컷은 +/-0.086dB 리플에 해당합니다. 내 목적을 위해 이것들은 아주 작은 값입니다. 따라서 나는 단순히 통과 대역의 리플을 가능한 값보다 분명히 크게 설정하고주의를 기울이지 않습니다. 평가가 코드에 존재하지만 필요한 경우 사용할 수 있습니다.

 

sab1uk , 대역통과 필터를 올바르게 구축하는 원리를 이해하고 있습니까?

또 다른 질문: GCM(2500)에서 필터 순서에 대한 제한을 우회할 수 있습니까?

 
대역통과(BandPass)는 유추에 의한 두 개의 저역 통과 필터(LowPass) 간의 차입니다. bastard MACD는 기계 간의 차이에서 얻어지기 때문입니다.
필터 차수 2500+ 또는 차단 기간 300+가 필요한 경우 거대 필터를 사용하십시오.
그러나 그의 필터는 모든 경우에 나에게 적합하지 않습니다 ..
1000dB의 감쇠 또는 0.000000000000001dB의 비트를 시도했지만 주파수 응답에서 발생기의 필터와 동일한 날카로운 공명을 얻을 수 없었습니다.