2014-10-01 4 views
2

길이가 4096 인 배열 계산 된 FFT 결과가 포함되어 있습니다. 결과는 1024의 창 길이로 표시되어야합니다. 값을 4096에서 1024로 줄이는 방법과 결과가 올바른지 확인하는 방법.배열의 값을 어떻게 다운 샘플링합니까?

좋은 방법입니까?

int index = 0; 
for(int i = 0; i < 1024; i++){ 
        A = 0; 
        windowOffset = oldLength/1024; ---> 4096/1024 = 4 
        while(windowOffset > 0){  
         A += oldArray[index]; 
         windowOffset --; 
         index++      -----> index will go to 4096 
        } 
        newArray[i] =A/(blockSize/1024); ---- summ of 4 values/4 

       } 
+0

배열의 한도 인 –

+0

한도를 확인하십시오.하지만 다운 샘플링을위한 좋은 해결책은 무엇인지 알아야합니다. 그냥. 새 값 = (이전 값 [1] + 이전 값 [2] + 이전 값 [3] + 이전 값 [1])/4 – vragolan

답변

1

평균 4 개를 계산하고 표시하는 방법은 분명 유효합니다. 그러나 "매끄러운"데이터에는 적합하지만 높은 피크 수가 적은 데이터에는 적합하지 않습니다.

FFT가 평균적으로 10 회를 초과하는 20 개의 피크를 반환하는 상황을 생각해보십시오. 접근법을 적용한 후에는 최고점이 유지되지만 평균을 2.5 회 초과합니다. 즉, 히스토그램은 훨씬 더 부드러워졌습니다.

이 문제를 해결하는 한 가지 방법은 조정 된 4 개의 숫자 중 최대 값을 선택하는 것입니다. 이렇게하면 봉우리를 그대로 보존 할 수 있습니다.

+0

그게 전부 야! 감사. 나는 각 간격에 대한 최대를 발견하고 좋은 그림 :) – vragolan