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 4082466
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 20, 20262026-05-20T18:11:29+00:00 2026-05-20T18:11:29+00:00

In their book Digital Signal Processing Proakis & Manolakis describe a Method for computing

  • 0

In their book “Digital Signal Processing” Proakis & Manolakis describe a Method for computing the FFT of a real Signal of length 2N using a FFT of length N. This is basically done by splitting the signal in its odd and even parts. The even parts are the input for the real part of the FFT and the odd parts are the imaginary. Both signals are extracted of the FFTs output using a technique that is sometimes known as “Two for the price of one” http://www.engineeringproductivitytools.com/stuff/T0001/PT10.HTM

After that, the final stage of a decimation in time FFT is used to compute the signal in frequency domain. I’ve implemented and I think I also understood how this method works. However, I got stuck doing the IFFT in a similar way.

I have a frequency domain signal with the length of 2N. As it is the frequency domain representation of a real signal, its left and right side are symmetrical. I now want to use the first half of the signal, and use an IFFT with length N to compute the time domain representation of that signal. I spent all last night trying to figure out how this works and trying to implement it, however I never ended up with the numbers I should. The page I mentioned is the only source I found that gives a vague explanation how something similar should work, however that didn’t help much to understand it.

What do I need to do in order to use a IFFT of length N in order to transform a complex and symmetric frequency domain signal of length 2N into its real time domain representation of length 2N in one pass?

  • 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-05-20T18:11:29+00:00Added an answer on May 20, 2026 at 6:11 pm

    In case someone has the same question as me, here is my unoptimized source code in C. Hopefully I will sometimes find time to add some explanation. (code uses 2*n of the signal as real and 2*n+1 as imaginary part) Note that the array that keeps the complex spectrum needs to be of length realInputSignal + 2 in order to keep the DC offset. However it is possible to store the last real value in the place of the first complex value (as it is not used) and you don’t have to add the 2 more samples to the array. However, your DFT has to also be aware of that.

    N = lData/2;
    
    double X1R = 0.5*(outData[0] + outData[N*2]);
    double X1I = 0.0;
    double X2Ra = 0.5*(outData[0] - outData[N*2]);
    double X2Ib =0.0;//
    
    double wr = cos((double)0 * M_PI / (double)N);
    double wi = -sin((double)0 * M_PI / (double)N);
    double X2R = (X2Ra*wr + X2Ib*wi)/(wr*wr + wi*wi);
    double X2I = (X2Ib*wr - X2Ra*wi)/(wr*wr + wi*wi);
    outData2[0*2] = X1R - X2I;
    outData2[0*2+1] = X1I + X2R;
    
    
    for (int i=1; i<N; i++){
    
        double X1R = 0.5*(outData[i*2] + outData[N*2-2*i]);
        double X1I = 0.5*(outData[i*2+1] - outData[N*2-2*i+1]);
        double X2Ra = 0.5*(outData[i*2] - outData[N*2-2*i]);
        double X2Ib = 0.5*(outData[i*2+1] + outData[N*2-2*i+1]);
        double wr = cos((double)i * M_PI / (double)N);
        double wi = -sin((double)i * M_PI / (double)N);
        double X2R = (X2Ra*wr + X2Ib*wi)/(wr*wr + wi*wi);
        double X2I = (X2Ib*wr - X2Ra*wi)/(wr*wr + wi*wi);
        outData2[i*2] = X1R - X2I;
        outData2[i*2+1] = X1I + X2R;
    
    }
    
    ifft(outData2);
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

Is their a method to encode/decode HTML and URL (in Xcode, using Objective-C)? [NSString
I am learning a book on data structures, and complied their node in linked
Is their a way to use a non-member non-friend function on an object using
I usually read a word 'delegate' in the apple document and their library book.
I'm building an events system where users can book & pay for tickets -
Lots of sites these days allow users to import their email address book to
In his book Effective Java , Joshua Bloch recommends against using Interfaces to hold
I'm learning SQLite3 by means of a book (Using SQLite) and the Northwind database.
Our application has an invite page where a user can import their address book.
I'm currently reading the django book and their instructions aren't working for me. People

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.