MathNet 필터를 사용하여 신호에 대역 통과 필터를 적용하려고합니다. 정확한 방법으로 MathNet.Filtering.OnlineFiter.CreateBandpass(..)
메서드를 사용하고 있습니다.MathNet.Filtering Bandpass parameters
예상되는 결과를 얻지 못하고이 메서드의 매개 변수로 혼란스러워지고 있습니다. 1Khz에서 샘플링 된 신호가 있고 4 ~ 6Hz 범위를 벗어나는 모든 것을 제거하고 싶습니다. CreateBandpass(..)
메서드를 호출하는 올바른 방법은 무엇입니까?
주석의 요청에 따라이 코드입니다
편집 : (30)처럼 (
OnlineFilter bandPass = CreateBandpass(ImpulseResponse.Finite, samplingRate, 3, 7);
postProcessedData = bandPass.ProcessSamples(preProcessedData);
소스는 약간의 상대적으로 높은 주파수의 노이즈가 정확히 5 Hz에서 사인파이다 -70 Hz); 신호의 진폭은 0에 중심을 둔 약 20 피크 피크입니다 (그래서 -10에서 +10). 필터링 된 신호는 2.1
P.S.로, 노이즈와 진폭, 피크 - 피크 5 Hz에서 정현파 인
이 과정은 테스트 파형에서도 마찬가지입니다. 순수한 사인파 (주파수가 무엇이든)를 생성하고 주파수 주위에서 필터링하면 동일한 주파수와 완전히 관련없는 진폭의 사인파를 얻습니다. 반면에 FFT (여전히 MathNet을 사용하여) 웨이브를 사용하고 관심이없는 컴포넌트를 제거하면 예상되는 진폭으로 웨이브를 재구성하고 노이즈로부터 완전히 제거 할 수 있습니다.
나는 꽤 괜찮은 결과를 얻을 수 있습니다. 정확히 당신에게 좋지 않은 것은 무엇입니까? 코드를 게시하십시오. – jsanalytics