Professional Documents
Culture Documents
com/matlabcentral/answers/22430
Search: Answers
File Exchange Answers Newsgroup Link Exchange Blogs Trendy Cody Contest MathWorks.com
I am doing some modal analysis on a steel structure and have encountered some troubling issues while using Matlab's Power Spectral
Density functions to obtain the Frequency Response Functions of the structure.
I have obtained a force vector (in Newtons) from an impact hammer, denoted 'y', and an acceleration vector (in g's) from an accelerometer,
denoted 'x'. These vectors have been trimmed to a length 'L' of 153600, equating to 30 seconds of data at a sampling rate of 5120 Hz.
Having already applied my own windowing function to the data, I am using the rectwin function in Matlab. The data has been padded with
zeros to a length of 'NFFT' = 262144 as per instructions in the Matlab help file.
In order to obtain the FRFs, I have used the periodogram and cpsd functions as follows:
I have noticed two problems with these FRF estimates that do not match with the theory. Firstly, the coherence function obtained by this
method is exactly equal to unity (i.e., 1.00000) across the entire frequency spectrum. This shouldn't be possible! I would expect to see the
coherence values drop in the vicinity of anti-resonance. The second problem I have noticed is that the FRF estimates appear to be rotated
90 degrees in phase. This is particularly noticeable when plotting the Real vs. Imaginary portions of the FRF near resonance. Theory tells
me that I should see a circle centred on the imaginary axis, however, all my plots are showing a circle centred on the real axis.
This is all very annoying because I don't know what I have done wrong.
Please advise,
Craig Cowled.
0 Comments
Show all comments
0 votes
Tags
signal processing
Products
2 Answers
Answer by Wayne King on 28 Nov 2011
Accepted answer
Hi Craig, one problem is that you use one window for your coherence estimate that is the entire length of your data. This will always result
in a coherence estimate of unity at all frequencies.
That is not just a MATLAB issue, that is a known result. You always need more than one bivariate sample to get a meaningful coherence
estimate.
If you use mscohere (or if you want to keep it doing it your way with cpsd), then you must use overlapped segments. And, with these
overlapped, windowed segments, I would recommend against using a rectangular window. You can use the default Hamming, that would
be fine.
1 Comment
Show all comments
1 of 2 19/09/2013 21:41
Use of PSD functions to obtain FRFs - MATLAB Answers -... http://www.mathworks.com/matlabcentral/answers/22430
http://www.mathworks.com/matlabcentral/answers/22430#comment_49042
Wayne, thank you very much for your guidance. As you have recommended, I played around with various window lengths and number of
overlaps. The periodogram function does not allow overlaps, so I have used the pwelch function for autospectra. Because the frequencies
of interest are between 5 - 25Hz, I need to maximise the window length as much as possible. As I mentioned previously, my experiment
involved impact testing, so I have to use the rectwin function as the hamming window eliminates most of my useful data (i.e., at the
beginning of the signal). After some trial and error, I have adopted a window length that of 76800, which is half the data length. The number
of overlaps does not appear to affect the results very much. Using the following syntax, I have been able to obtain meaningful coherence
plots:
[Pxx,f]=pwelch(x,rectwin(76800),16,NFFT,Fs);
[Pff,f]=pwelch(y,rectwin(76800),16,NFFT,Fs);
[Pfx,f]=cpsd(y,x,rectwin(76800),16,NFFT,Fs);
[Pxf,f]=cpsd(x,y,rectwin(76800),16,NFFT,Fs);
Thank you very much for helping me to solve the problem of the coherence plots. I am, however, still getting the same problem with the
Nyquist plots of the FRFs near resonance. The circles are still centred on the real axis. Any thoughts on this issue?
Regards,
Craig Cowled.
0 votes
Link
Direct link to this answer:
http://www.mathworks.com/matlabcentral/answers/22430#answer_29518
0 Comments
Show all comments
0 votes
Link
Direct link to this answer:
http://www.mathworks.com/matlabcentral/answers/22430#answer_86576
Contact us
1994-2013 The MathWorks, Inc. Site Help Patents Trademarks Privacy Policy Preventing Piracy Terms of Use
Featured MathWorks.com Topics: New Products Support Documentation Training Webinars Newsletters MATLAB Trials Careers
2 of 2 19/09/2013 21:41