Updated 03 Mar 2019
The Time domain decomposition (TDD)  is an output-only method to extract mode shapes of a structure. Here, the modal damping ratios and modal displacements are in addition extracted using the functions presented in . The TDD is similar to a more popular technique called Frequency-domain method (FDD) that was introduced by [2,3]. A good example of the FDD already exists on the Matlab File Exchange . In a previous version, the present submission contained a function for the FDD. This function has been modified and moved to a new submission .
This script contains:
- The function TDD.m: function to apply the TDD method.
- An example file Example1.m
- Acceleration data beamData.m (4 Mb)
Comments, suggestions for improvements and questions are welcome. All the credits for the theory go to  and .
 Byeong Hwa Kim, Norris Stubbs, Taehyo Park, A new method to extract modal parameters using output-only responses, Journal of Sound and Vibration, Volume 282, Issues 1–2, 6 April 2005, Pages 215-230, ISSN 0022-460X, http://dx.doi.org/10.1016/j.jsv.2004.02.026.
 Brincker, R.; Zhang, L.; Andersen, P. (2001). "Modal identification of output-only systems using frequency domain decomposition". Smart Materials and Structures 10 (3): 441. doi:10.1088/0964-1726/10/3/303.
 BRINCKER, Rune, ZHANG, Lingmi, et ANDERSEN, P. Modal identification from ambient responses using frequency domain decomposition. In: Proc. of the 18*‘International Modal Analysis Conference (IMAC), San Antonio, Texas. 2000
E. Cheynet (2019). Mode shapes extraction by time domain decomposition (TDD) (https://www.mathworks.com/matlabcentral/fileexchange/52276-mode-shapes-extraction-by-time-domain-decomposition-tdd), MATLAB Central File Exchange. Retrieved .
The function I have used to produce beamData.m, has not been uploaded on Matlab FileExchange until recently (dynaResp_TD.m). The function CentDiff.m is only one way to solve the equation of motion in the time domain. The function dynaResp_TD.m Ihas nested functions that solve the equation of motion more efficiently than CentDiff.m which has, sometimes, convergence issues.
You used CentDiff function to produce beamData.m, if I'm not wrong. How did you set the number of sensors (Nyy) and n in that function? They are not the input of the function. Maybe running the function several times (Nyy times?)
Did you have to change anything in your CentDiff function when using it for different structures?
*great job anyway, I'm enjoying studying your work :)
Added project website
Updated example and functions inputs/outputs
Example file contains one more figure
Major changes: The example file and TDD.m function are simplified. The modal damping ratio are now calculated. The code for FDD has been moved to File ID: #57153
MathWorks update: Added Live Script.
-typo + picture
Create scripts with code, output, and formatted text in a single executable document.