Technical discussion about Matlab and issues related to Digital Signal Processing.
Hi all! I am an electromagnetics person and don't have a strong hands-on experience of signal processing. I have a basic question that I shall be happy to get some answers to. I know that power spectral density (PSD) is described as the power per unit bandwidth (W/Hz) and that the total power in a signal can be found by integrating the PSD over the frequency range of interest. However, the problem arises when I try to use MATLAB FFT to calculate the physical power of a signal (in Watts), because as far as I know, the DFT (on which the MATLAB FFT is based) is not just a discrete version of the fourier transform of a signal; it involves convolution of the sampled time-domain data's fourier transform with the fourier transform of a window function. I fear that this convolution process drastically changes the amplitude of the frequency domain samples that we get with the MATLAB FFT operation compared to the "real" data. (Or does MATLAB adjust the amplitudes of the discrete FFT samples to bring them close the the "real" values?) Given this limitation of the DFT, how can I calculate the total physical power (in watts) of a signal? For those who are curious, I need to calculate the power dissipated by a time-varying current when it flows through a frequency-varying resistance. Hence, I need to calculate the physical power, not the PSD. I look forward to some useful advice. Many thanks in advance!
Your problem, I think, is related to the evaluation of the FFT. Try to apply your fft to an analytical wave form and verify if the result is correct (choose a wave form with analytic result e.g. ddp of Rayleight). If your result il wrong, look here: http://www.mathworks.com/matlabcentral/fileexchange/loadFile.do?objectId=5654&objectType=fi le If the amplitude is right also the power should be OK Bye On Sat, Jun 14, 2008 at 3:48 PM, <k...@gmail.com> wrote: > Hi all! I am an electromagnetics person and don't have a strong hands-on > experience of signal processing. I have a basic question that I shall be > happy to get some answers to. > > I know that power spectral density (PSD) is described as the power per unit > bandwidth (W/Hz) and that the total power in a signal can be found by > integrating the PSD over the frequency range of interest. > > However, the problem arises when I try to use MATLAB FFT to calculate the > physical power of a signal (in Watts), because as far as I know, the DFT (on > which the MATLAB FFT is based) is not just a discrete version of the fourier > transform of a signal; it involves convolution of the sampled time-domain > data's fourier transform with the fourier transform of a window function. I > fear that this convolution process drastically changes the amplitude of the > frequency domain samples that we get with the MATLAB FFT operation compared > to the "real" data. (Or does MATLAB adjust the amplitudes of the discrete > FFT samples to bring them close the the "real" values?) > > Given this limitation of the DFT, how can I calculate the total physical > power (in watts) of a signal? > > For those who are curious, I need to calculate the power dissipated by a > time-varying current when it flows through a frequency-varying resistance. > Hence, I need to calculate the physical power, not the PSD. > > I look forward to some useful advice. Many thanks in advance! > > >
Hi, Before deal with convolution with ttf or dft(they are same thing only different from arithmetic.) you have to pay attation to sample rate in order that convey continious signal to decrete signal without distortion. or say not change the amplitude of frequency domain. China --- On Sat, 6/14/08, k...@gmail.com <k...@gmail.com> wrote: From: k...@gmail.com <k...@gmail.com> Subject: [matlab] Calculation of physical power using MATLAB FFT To: m...@yahoogroups.com Date: Saturday, June 14, 2008, 9:48 PM Hi all! I am an electromagnetics person and don't have a strong hands-on experience of signal processing. I have a basic question that I shall be happy to get some answers to. I know that power spectral density (PSD) is described as the power per unit bandwidth (W/Hz) and that the total power in a signal can be found by integrating the PSD over the frequency range of interest. However, the problem arises when I try to use MATLAB FFT to calculate the physical power of a signal (in Watts), because as far as I know, the DFT (on which the MATLAB FFT is based) is not just a discrete version of the fourier transform of a signal; it involves convolution of the sampled time-domain data's fourier transform with the fourier transform of a window function. I fear that this convolution process drastically changes the amplitude of the frequency domain samples that we get with the MATLAB FFT operation compared to the "real" data. (Or does MATLAB adjust the amplitudes of the discrete FFT samples to bring them close the the "real" values?) Given this limitation of the DFT, how can I calculate the total physical power (in watts) of a signal? For those who are curious, I need to calculate the power dissipated by a time-varying current when it flows through a frequency-varying resistance. Hence, I need to calculate the physical power, not the PSD. I look forward to some useful advice. Many thanks in advance!
Many thanks to those who took the trouble to reply to my original query. I applied the MATLAB FFT to two functions whose continuous Fourier Transforms are analytically known (the rectangular pulse function and the exponential function). In both cases, the magnitude of the FFT was related to the continuous Fourier Transform through the same normalisation factor---the time interval between two samples of the sampled time-domain data. In other words, (if what I discovered is correct), if one multiplies the result of the MATLAB FFT with the time interval between two samples, one gets the "correct" Fourier Transform. Has anyone else also reached the same conclusion? Can anyone please confirm? On a theoretical note, something similar to this result is derived in "Fourier and Wavelet Analysis", by George Bachman, Lawrence Narici and Edward Beckenstein. I wonder why other authors don't make the connection between the amplitude of the FFT and the continuous Fourier Transform more explicitly. Comments welcome!
I spent long time to understand this concept and now I'm happy to share this result. The first comment is related to the rectangular pulse. This example bring many problems. The spectrum is theoretically extended from -infinity to +infinitive and is better to use Gaussian function or exponential where the spectrum is limited. My tutorial derived from my originally problem: when I used for the first time the fft (for example in rectangular pulse) I didn't obtain numerically results that was in agreement with theory. I neglected this considerations using like results the amplitude (often reported in dB) but the doubt survived in me. Some years ago (2004) I found a first result and decided to share the result with the community (Guide to fft 1^ edition). This result was a good point but i was unable to explain why the formula that I deduced was right. After 3 years the explication: the fft is defined for asymmetrical time support (from 0 to T) and not for symmetrical time support (like rectangular pulse) an than I submitted to the Matlab forum the new version (Guide to fft 2^ edition). You ask why authors speaking about fft don't underling the effect of the coefficient for the amplitude. The answer is that, like reported in matlab or other library (NAG, IMSL) the fft applied only to the data can be good enough (for a lot of application) and is general for example fft(x). In fact usually about the result of the fft what is relevant is the amplitude and not the phase. But if you need a result comparable with theory this normalization is necessary. Bye Daniele On Thu, Jun 19, 2008 at 4:42 PM, <k...@gmail.com> wrote: > Many thanks to those who took the trouble to reply to my original query. > > I applied the MATLAB FFT to two functions whose continuous Fourier > Transforms are analytically known (the rectangular pulse function and the > exponential function). In both cases, the magnitude of the FFT was related > to the continuous Fourier Transform through the same normalisation > factor---the time interval between two samples of the sampled time-domain > data. > > In other words, (if what I discovered is correct), if one multiplies the > result of the MATLAB FFT with the time interval between two samples, one > gets the "correct" Fourier Transform. > > Has anyone else also reached the same conclusion? Can anyone please > confirm? > > On a theoretical note, something similar to this result is derived in > "Fourier and Wavelet Analysis", by George Bachman, Lawrence Narici and > Edward Beckenstein. I wonder why other authors don't make the connection > between the amplitude of the FFT and the continuous Fourier Transform more > explicitly. > > Comments welcome! > > >
Hi Daniele! Thanks a lot for your help and sorry for the late response. I have, more or less, solved the problem conceptually. Your input was highly useful. In future also I will need some help. So, I thank you in advance!