My transform, EST, finds exactly what you are looking for.
The steps of EST are as follows.
Let N be the number of exponentials.
- Find the LPC (Linear Prediction Coefficients) for the signal.
For the sake of simplicity I will assume that all the exponential bases (the z values) are complex. The size of the LPC has to be 2N.
You must have at least 4N samples.
Case 1 is when you have exactly 4N samples. Create a system of linear equations with the Hankel matrix and the last 2N samples as the results vector. The LPC vector is the solution to this system.
Case 2 is when you have more than 4N samples. In this case you find the LPC using the covariance method.
Convert the LPC vector to a prediction polynomial, exactly as LSP (Line Spectral Pairs) is doing.
Find the roots of the polynomial.
The roots of the polynomial are the exponential bases you are looking for.
If the signal is noise-free, then the exponential bases are precise. If not, it is an estimate.
Once the exponential bases are known, finding the coefficients (the c values), is simply a matter of linear equations.
You also asked if you can find the number of exponentials.
In the case of a noise-free signal: yes.
Otherwise, you should find a large enough number of exponentials and filter out some of them.
Please note that each exponential base holds a frequency and the growth/decay rate of the signal at that frequency and each coefficient holds an amplitude and a phase. These parameters can be used for filtering criteria.