The Matlab Periodicity Toolbox contains .m files that implement the periodicity algorithms described in Periodicity Transforms along with a number of demonstrations to get you started. A Mathematica notebook implementing the same routines can be downloaded here (you may need to right click and select "save link as"). And thanks to Jacob Sundstrom, python versions are now available.
(1) PTdemos2l gives a simple introduction to the "small to large" algorithm. This is a good place to start.
(2) PTdemomb demos the "M-best" algorithm. Often returns the best results.
(3) PTdemobc shows the "best-correlation" algorithm. Especially good for impulsive data.
(4) PTdemobf demos the "best-frequency" algorithm. By misbehaving, this algorithm shows how important the difference between period and frequency can be.
After downloading, unzip the files and a folder called periodicity will be created. If you put this in your MATLAB path, then you will be able to type
>help periodicity
at the MATLAB prompt for a list of all the functions and .m files. Just type
>PTdemos2l
to view the demo of the "small to large" algorithm. For detailed information about the function type
>help small2large
Please let me know if you find these implementations useful.
For more details, see our papers:
W. A. Sethares and T. W. Staley, "Periodicity Transforms", IEEE Transactions on Signal Processing, Nov 1999.
A companion paper explores the application of Periodicity Transforms to the automatic detection of rhythm in musical performance.
To get to my homepage, click here.