MATLAB Fourier Synthesis: Create Signal from Spectrum

Click For Summary

Discussion Overview

The discussion revolves around the process of Fourier synthesis to recreate a time-domain signal from a given frequency spectrum, specifically focusing on the use of MATLAB for this purpose. Participants explore methods for implementing this synthesis, including the use of inverse transforms and specific coding approaches.

Discussion Character

  • Technical explanation, Mathematical reasoning, Debate/contested

Main Points Raised

  • One participant inquires about recreating a time signal from a frequency spectrum, mentioning the power of the fundamental frequency and harmonics.
  • Another participant suggests using the inverse Fourier transform (ifft) as a method for synthesis, noting potential issues with the fftshift command.
  • A different participant proposes a coding approach using a loop to sum contributions from harmonics based on their power and frequency.
  • One participant raises a caveat regarding the use of discrete cosine transforms, indicating that the inverse transform may be more complex for certain signals and suggesting that the IFFT function should be used if the original transform was done with the usual FFT.

Areas of Agreement / Disagreement

Participants express differing views on the applicability of Fourier synthesis methods, particularly regarding the conditions under which certain transforms can be used. The discussion remains unresolved with multiple competing perspectives on the topic.

Contextual Notes

There are limitations regarding the assumptions about the type of Fourier transform used and the properties of the original signal, which may affect the applicability of the proposed methods.

Branny12000
Messages
15
Reaction score
0
Hi I wanted to check how to do a Fourier synthesis to recreate a signal from a frequency spectrum. So I basically have the frequency spectrum so I have the power of the fundamental frequency and the harmonics. Is there a way I can do a synthesis to create a time signal?
 
Physics news on Phys.org
If you have the spectra you should be able to just do an inverse transform (ifft).
There are a few things that can cause problems (read up on the fftshift command in the manual); but it should not be very difficult.

Have a look at some examples in the manual.
 
is there are a way I can do it from Fourier synthesis using a version of the code
for i =1:n (N = no of harmonics)
y = y + p(n)*cos(2*pi*n*f*t)

end

where P(n) is the power and f is the fundamental frequency
 
Only if the original Fourier transform was done using a discrete cosine transform and the signal had some unusual properties(I think?); the inverse transform fir the cosine transform is as far as I know more complicated than what you have in your program
Hence, I guess the answer is perhaps yes for some signals but not in general.

Have a look at the wiki for discrete cosine transforms if this is really what you need. If your spectra was calculated from the usual FFT you need to use the IFFT function.
 

Similar threads

  • · Replies 8 ·
Replies
8
Views
3K
  • · Replies 13 ·
Replies
13
Views
2K
  • · Replies 10 ·
Replies
10
Views
4K
  • · Replies 8 ·
Replies
8
Views
3K
  • · Replies 10 ·
Replies
10
Views
3K
  • · Replies 5 ·
Replies
5
Views
3K
Replies
4
Views
3K
  • · Replies 9 ·
Replies
9
Views
5K
  • · Replies 2 ·
Replies
2
Views
3K
  • · Replies 4 ·
Replies
4
Views
2K