Forcing IFFT to start/end at 0 value

  • Context: Graduate 
  • Thread starter Thread starter swraman
  • Start date Start date
  • Tags Tags
    Value
Click For Summary

Discussion Overview

The discussion revolves around the challenge of ensuring that the Inverse Fast Fourier Transform (IFFT) of a signal starts and ends at zero, particularly when working with real signals and their frequency responses. Participants explore various mathematical approaches and transformations, including the use of the Discrete Sine Transform (DST) as an alternative to FFTs, and the implications of these methods on the output signals.

Discussion Character

  • Exploratory
  • Technical explanation
  • Debate/contested

Main Points Raised

  • One participant describes the issue of IFFT returning signals that do not start or end at zero, leading to transients when applied to a physical system.
  • Another participant suggests using the Discrete Sine Transform (DST) to force the signal to zero at t=0, noting that this alters the relationship between the input and output signals.
  • A participant expresses confusion about the DST returning complex signals, questioning whether the property of real outputs from FFTs applies to DSTs as well.
  • One participant confirms that the output from DST should be strictly real but is unsure about the issues being encountered.
  • Another participant raises the possibility that the transfer function may have been computed using FFTs, which could affect the results.
  • A participant shares their experience of using DST for system identification but notes that the resulting input signal does not yield the desired output.
  • There is a clarification regarding the mathematical notation used in the computation of the transfer function, emphasizing the importance of correct syntax.
  • One participant expresses a desire to find a more engineering-oriented solution rather than a purely mathematical one.

Areas of Agreement / Disagreement

Participants do not reach a consensus on the best approach to ensure the IFFT starts and ends at zero. Multiple competing views and methods are presented, with ongoing uncertainty regarding the effectiveness of the DST compared to FFTs.

Contextual Notes

There are limitations regarding the assumptions made about the properties of the DST and its outputs, as well as the potential impact of using FFTs in the computation of the transfer function.

swraman
Messages
165
Reaction score
0
Hi,

I am not sure if this is the correct forum, but...

I am working with FFTs of real signals. I have a FFT of a time signal (call it R(f)) and a frequency response (output/input) function (call it H(f)).

The math is simple, I want to know what I need to put into my system defined by H(f) to get R(f) out. This is simple division:

input(t) = IFFT[R(f) ./ H(f)]

The problem arises because the IFFT often returns signals that do not begin/end at 0 - so when I apply the signal to my physical plant, there is a transient created by the instant jump from 0 to input(t=0). The FFT assumes a continuous repetition of my input(t) signal, which is why it is OK for it to output a non-zero-initial signal as it starts and ends at the same non-zero value.

From my basic analysis, I have found that Real(sum([R(f) ./ H(f)])) must be zero.

Any ideas on how to force the IFFT of the signal to be zero?
 
Physics news on Phys.org
To force a signal to zero at ##t=0##, you can do a sine transform, which corresponds to expanding the signal on sines only. You seem to be using Matlab, so check out dst and idst.

Note also that this means that the solution you get doesn't correspond exactly to IFFT[R(f) ./ H(f)], but to some modified R(f) or H(f).
 
Interesting, I've never used the DST.

Perhaps I just do not understand the DST yet, but it looks like whenever I idst() my sine domain function, it returns a complex time signal. WHen using the fft, the imaginary part of the ifft() is neglegable, but using dst it is not.

I am dealing with strictly real signals, so all my ffts are symetric, and thus all my iffts are real. Does this property not hold for the dst?

Thanks.
 
The output should be strictly real. I'm not sure what is going on here.
 
could it be that my transfer function was computed using FFTs?
 
I completed the entire system identification using DST instead of FFTs.
Code:
H = dst(output) / dst(input) % input was a broadband random signal
necessary_input = desired_output ./ H; % desired output is the DST of the desired output waveform
necessary_input_time = idst(necessary_input);

I do get a purely real signal when I do this, but it is not the correct input signal to my system to result in the desired output.
 
I don't fully understand what you are doing, but shouldn't
Code:
H = dst(output) / dst(input)
be
Code:
H = dst(output) ./ dst(input)
?
 
yes it was, i was not copy and pasting.

I could not find out a solution to this problem and am seeking a more 'engineering' solution one rather than a mathematical one now. Thanks for the ideas though.
 

Similar threads

  • · Replies 6 ·
Replies
6
Views
2K
  • · Replies 0 ·
Replies
0
Views
4K
  • · Replies 6 ·
Replies
6
Views
2K
  • · Replies 7 ·
Replies
7
Views
5K
  • · Replies 1 ·
Replies
1
Views
4K
  • · Replies 1 ·
Replies
1
Views
3K
  • · Replies 1 ·
Replies
1
Views
3K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 4 ·
Replies
4
Views
2K
  • · Replies 4 ·
Replies
4
Views
3K