Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 7959863
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 4, 20262026-06-04T04:38:22+00:00 2026-06-04T04:38:22+00:00

I am implementing an accelerometer-based FFT in iOS using the Accelerate Framework, but the

  • 0

I am implementing an accelerometer-based FFT in iOS using the Accelerate Framework, but the one thing that I’m still a bit confused about is this part:

/* 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);

What does the final array look like?
I’m confused as to the distinction between “split real form” and “split real vector”. I might have some understanding of what it means, but I want to be sure I have the right idea.

The starting data, an array of doubles, representing input data such as acceleration is put into even-odd form via vDSP_ctoz. Then the result is in this form (copied from Apple’s vDSP Guide):

{[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]}

In my implementation (which works, I’m just confused about the output), I also have a call to vDSP_ztoc. Should it have this call, or is that only done in the example because they want to restore the array to match the original one (as they did a reverse transform)?

If you are supposed to call that, what’s the final form after vDSP_ztoc? Is it:

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

Or is the first element in the output array is DC, the second is the first bin’s real part the third is the first bin’s imaginary part, and so on? Or is the second element the Nyquist frequency like in that setup, making the third and fourth element the real and imaginary components of the first bin?

It’s a bit unclear, but I imagine that this question is very straightforward, and all I need is a quick confirmation / correction.

Thanks!

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-04T04:38:22+00:00Added an answer on June 4, 2026 at 4:38 am

    So the final form
    {C[0],C[1],C[2],…,C[n/2]}
    is correct.

    And the frequency of each bin is, as described in other similar threads is
    F = Fs/N
    Where Fs is the sampling frequency, N is the total number of elements in the input array. You end up with N/2 complex numbers (with half real half imaginary).

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

When implementing the Strategy Pattern, where does one put the code that determines which
Implementing a low pass FIR filter, when should one use FFT and IFFT instead
I`m implementing a custom filesystem on Ubuntu using Fuse, but I need to trap
Implementing a PhoneGap app for Android and iOS, the app is using Facebook Connect
when implementing/using methods that return or work with instances of objects, what is the
implementing publishActivity in PHP using the REST API using this code: $activity = array(
Implementing a custom membership provider, there are certain properties such as MinRequiredPasswordLength that only
Implementing a simple Login screen using JSF and Spring and Hibernate. I have written
While implementing XML file reading/writing in my application I saw that when I call
implementing service something similar with tinyurl or bit.ly, I'm would like to expose service

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.