2012-05-09 6 views
2

실제 벡터를 분할 실제 양식을 분할 가속,하지만 난 여전히 대해 조금 혼란 스러워요 한 것은이 부분이다 :프레임 워크 FFT vDSPztoc 내가 프레임 워크를 가속화하여 아이폰 OS에서 가속도계 기반의 FFT를 구현하고

/* The output signal is now in a split real form. Use the function 
* vDSP_ztoc to get a split real vector. */ 
vDSP_ztoc(&A, 1, (COMPLEX *) obtainedReal, 2, nOver2); 

최종 배열은 어떻게 생겼습니까? "실제 형식 분할"과 "실제 벡터 분할"의 구별에 대해서는 혼란 스럽습니다. 그것이 의미하는 바를 어느 정도 이해하고 있을지 모르지만 나는 올바른 생각을 갖고 있는지 확인하고 싶습니다.

가속도와 같은 입력 데이터를 나타내는 두 배의 배열 인 시작 데이터는 vDSP_ctoz를 통해 짝수 번째 형식으로 놓입니다. 그리고 결과는 (애플의 VDSP 가이드에서 복사)이 형태 : 내 구현에서

{[DC,0],C[1],C[2],...,C[n/2],[NY,0],Cc[n/2],...,Cc[2],Cc[1]} 

where 
1. DC and NY are the dc and nyquist components (real valued), 
2. C is complex in a split representation, 
3. Cc is the complex conjugate of C in a split representation. 

For an n size real array A, the complex results require 2n 
spaces. In order to fit the 2n size result into an n size input and 
since the complex conjugates are duplicate information, the real 
FFT produces its results as follows: 
    {[DC,NY],C[1],C[2],...,C[n/2]} 

은 (어떤 작품, 내가 출력에 대해 단지 혼란 스러워요), 나 또한 vDSP_ztoc를 호출합니다. 이 호출을해야합니까, 아니면 원래의 배열과 일치하도록 배열을 복원하려고하기 때문에 예제에서만 완료됩니다 (역 변환을 수행했기 때문에)?

전화를 걸면 vDSP_ztoc 이후의 최종 양식은 무엇입니까? 두 번째는 그래서 세 번째는 첫 번째 빈의 허수 부 첫 번째 빈의 실제 일부이며,

{[DC,NY],C[1],C[2],...,C[n/2]} 

또는 출력 배열의 첫 번째 요소는 DC이다 : 그것은인가? 아니면 세 번째와 네 번째 요소를 첫 번째 빈의 실수와 허수 성분으로 만드는 설정에서 나이키 스트 주파수와 같은 두 번째 요소입니까?

조금 명확하지 않지만이 질문은 매우 간단하고 신속한 확인/수정이 필요하다고 생각합니다.

감사합니다.

+0

이제는 언팩커를 호출해야하고, 최종 출력은 위에 표시된 것과 같습니다. – shim

답변

1

최종 형태 {C [0], C [1], C [2], ..., C [n/2]} 은 정확합니다.

다른 빈들에서 설명한 바와 같이 빈의 빈도는 입니다. F = Fs/N 여기서 Fs는 샘플링 빈도이며, N은 입력 배열의 총 요소 수입니다. 당신은 N/2 복소수로 끝납니다 (반 실제 반).