I'm looking for a method (preferably of low computational complexity)
that will allow me to extend a sum of complex exponential from a small
period to a greater one.
More precisely I have (discrete):
sum(a_i * E^(i*2pi*f_i + theta_i)) for t over {1,K} for some set of
a_i, f_i, theta_i...
and would like to produce:
sum(a_i * E^(i*2pi*f_i + theta_i)) for t over {1,N}
for N >> K
K is, of course, more than the number of complex exponentials.
Any ideas? Something like zero-stuffing will create phase
discontinuities in the other domain so this does now work.
Thanks in advance,
Martin
Extending unknown complex exponential in time
Started by ●June 25, 2009
Reply by ●June 25, 20092009-06-25
On Jun 25, 10:58�am, "wazerf...@gmail.com" <wazerf...@gmail.com> wrote:> I'm looking for a method (preferably of low computational complexity) > that will allow me to extend a sum of complex exponential from a small > period to a greater one. > > More precisely I have (discrete): > > sum(a_i * E^(i*2pi*f_i + theta_i)) for t over {1,K} for some set of > a_i, f_i, theta_i... > and would like to produce: > sum(a_i * E^(i*2pi*f_i + theta_i)) for t over {1,N} > > for N >> K > > K is, of course, more than the number of complex exponentials. > > Any ideas? �Something like zero-stuffing will create phase > discontinuities in the other domain so this does now work. > > Thanks in advance, > > MartinI apologize for not pluralizing half of the 'exponential's
Reply by ●June 25, 20092009-06-25
On Jun 25, 10:59�am, "wazerf...@gmail.com" <wazerf...@gmail.com> wrote:> On Jun 25, 10:58�am, "wazerf...@gmail.com" <wazerf...@gmail.com> > wrote: > > > > > I'm looking for a method (preferably of low computational complexity) > > that will allow me to extend a sum of complex exponential from a small > > period to a greater one. > > > More precisely I have (discrete): > > > sum(a_i * E^(i*2pi*f_i + theta_i)) for t over {1,K} for some set of > > a_i, f_i, theta_i... > > and would like to produce: > > sum(a_i * E^(i*2pi*f_i + theta_i)) for t over {1,N} > > > for N >> K > > > K is, of course, more than the number of complex exponentials. > > > Any ideas? �Something like zero-stuffing will create phase > > discontinuities in the other domain so this does now work. > > > Thanks in advance, > > > Martin > > I apologize for not pluralizing half of the 'exponential'sgrr... and there is obviously supposed to be a 't' in there: sum(a_i * E^(i*2pi*f_i*t + theta_i)) Sorry for spamming the group. -Martin
Reply by ●June 25, 20092009-06-25
On 25 Jun, 10:58, "wazerf...@gmail.com" <wazerf...@gmail.com> wrote:> I'm looking for a method (preferably of low computational complexity) > that will allow me to extend a sum of complex exponential from a small > period to a greater one. > > More precisely I have (discrete): > > sum(a_i * E^(i*2pi*f_i + theta_i)) for t over {1,K} for some set of > a_i, f_i, theta_i... > and would like to produce: > sum(a_i * E^(i*2pi*f_i + theta_i)) for t over {1,N} > > for N >> K > > K is, of course, more than the number of complex exponentials. > > Any ideas? �Something like zero-stuffing will create phase > discontinuities in the other domain so this does now work.Can't see how this can be done without first solving for the exponentials, and then extend the parametric model. Rune
Reply by ●June 25, 20092009-06-25
On Jun 25, 11:14�am, Rune Allnor <all...@tele.ntnu.no> wrote:> On 25 Jun, 10:58, "wazerf...@gmail.com" <wazerf...@gmail.com> wrote: > > > > > I'm looking for a method (preferably of low computational complexity) > > that will allow me to extend a sum of complex exponential from a small > > period to a greater one. > > > More precisely I have (discrete): > > > sum(a_i * E^(i*2pi*f_i + theta_i)) for t over {1,K} for some set of > > a_i, f_i, theta_i... > > and would like to produce: > > sum(a_i * E^(i*2pi*f_i + theta_i)) for t over {1,N} > > > for N >> K > > > K is, of course, more than the number of complex exponentials. > > > Any ideas? �Something like zero-stuffing will create phase > > discontinuities in the other domain so this does now work. > > Can't see how this can be done without first solving > for the exponentials, and then extend the parametric > model. > > RuneThat was my worry.
Reply by ●June 25, 20092009-06-25
On Jun 25, 6:01�am, "wazerf...@gmail.com" <wazerf...@gmail.com> wrote:> On Jun 25, 11:14�am, Rune Allnor <all...@tele.ntnu.no> wrote: > > > > > > > On 25 Jun, 10:58, "wazerf...@gmail.com" <wazerf...@gmail.com> wrote: > > > > I'm looking for a method (preferably of low computational complexity) > > > that will allow me to extend a sum of complex exponential from a small > > > period to a greater one. > > > > More precisely I have (discrete): > > > > sum(a_i * E^(i*2pi*f_i + theta_i)) for t over {1,K} for some set of > > > a_i, f_i, theta_i... > > > and would like to produce: > > > sum(a_i * E^(i*2pi*f_i + theta_i)) for t over {1,N} > > > > for N >> K > > > > K is, of course, more than the number of complex exponentials. > > > > Any ideas? �Something like zero-stuffing will create phase > > > discontinuities in the other domain so this does now work. > > > Can't see how this can be done without first solving > > for the exponentials, and then extend the parametric > > model. > > > Rune > > That was my worry.- Hide quoted text - > > - Show quoted text -I assume a correlation-based approach has been considered and rejected?
Reply by ●June 26, 20092009-06-26
On Jun 25, 12:01�pm, "wazerf...@gmail.com" <wazerf...@gmail.com> wrote:> On Jun 25, 11:14�am, Rune Allnor <all...@tele.ntnu.no> wrote: > > > > > On 25 Jun, 10:58, "wazerf...@gmail.com" <wazerf...@gmail.com> wrote: > > > > I'm looking for a method (preferably of low computational complexity) > > > that will allow me to extend a sum of complex exponential from a small > > > period to a greater one. > > > > More precisely I have (discrete): > > > > sum(a_i * E^(i*2pi*f_i + theta_i)) for t over {1,K} for some set of > > > a_i, f_i, theta_i... > > > and would like to produce: > > > sum(a_i * E^(i*2pi*f_i + theta_i)) for t over {1,N} > > > > for N >> K > > > > K is, of course, more than the number of complex exponentials. > > > > Any ideas? �Something like zero-stuffing will create phase > > > discontinuities in the other domain so this does now work. > > > Can't see how this can be done without first solving > > for the exponentials, and then extend the parametric > > model. > > > Rune > > That was my worry.It looks like using the auto regressive model is necessary. For the future reference of others, I took the following approach: - given some y of length 100 which contains the sum of a few complex exponentials: [U,S,V] = svd(y,'econ'); b = V(:,size(V,2)); %auto regressive model coefficients: alphas = flipud(-b0(2:3) ./ b0(1)); %construct a y2 which has an additional 100 samples of the exponentials: y2 = [y;zeros(100,1)]; %apply autoregressive model: for(m=101:200) y2(m) = y2((m-2):(m-1)).'*alphas; end I think this is about as good as can be done unless anyone has some other approaches...
Reply by ●June 26, 20092009-06-26
On Jun 26, 11:07�am, "wazerf...@gmail.com" <wazerf...@gmail.com> wrote:> On Jun 25, 12:01�pm, "wazerf...@gmail.com" <wazerf...@gmail.com> > wrote: > > > > > On Jun 25, 11:14�am, Rune Allnor <all...@tele.ntnu.no> wrote: > > > > On 25 Jun, 10:58, "wazerf...@gmail.com" <wazerf...@gmail.com> wrote: > > > > > I'm looking for a method (preferably of low computational complexity) > > > > that will allow me to extend a sum of complex exponential from a small > > > > period to a greater one. > > > > > More precisely I have (discrete): > > > > > sum(a_i * E^(i*2pi*f_i + theta_i)) for t over {1,K} for some set of > > > > a_i, f_i, theta_i... > > > > and would like to produce: > > > > sum(a_i * E^(i*2pi*f_i + theta_i)) for t over {1,N} > > > > > for N >> K > > > > > K is, of course, more than the number of complex exponentials. > > > > > Any ideas? �Something like zero-stuffing will create phase > > > > discontinuities in the other domain so this does now work. > > > > Can't see how this can be done without first solving > > > for the exponentials, and then extend the parametric > > > model. > > > > Rune > > > That was my worry. > > It looks like using the auto regressive model is necessary. �For the > future reference of others, I took the following approach: > > - given some y of length 100 which contains the sum of a few complex > exponentials: > > [U,S,V] = svd(y,'econ'); > b = V(:,size(V,2)); > > %auto regressive model coefficients: > alphas = flipud(-b0(2:3) ./ b0(1)); > > %construct a y2 which has an additional 100 samples of the > exponentials: > > y2 = [y;zeros(100,1)]; > > %apply autoregressive model: > for(m=101:200) > � �y2(m) = y2((m-2):(m-1)).'*alphas; > end > > I think this is about as good as can be done unless anyone has some > other approaches...b = V(:,size(V,2)); should be: b0 = V(:,size(V,2));
Reply by ●June 26, 20092009-06-26
On 26 Jun, 11:07, "wazerf...@gmail.com" <wazerf...@gmail.com> wrote:> On Jun 25, 12:01�pm, "wazerf...@gmail.com" <wazerf...@gmail.com> > wrote: > > > > > > > On Jun 25, 11:14�am, Rune Allnor <all...@tele.ntnu.no> wrote: > > > > On 25 Jun, 10:58, "wazerf...@gmail.com" <wazerf...@gmail.com> wrote: > > > > > I'm looking for a method (preferably of low computational complexity) > > > > that will allow me to extend a sum of complex exponential from a small > > > > period to a greater one. > > > > > More precisely I have (discrete): > > > > > sum(a_i * E^(i*2pi*f_i + theta_i)) for t over {1,K} for some set of > > > > a_i, f_i, theta_i... > > > > and would like to produce: > > > > sum(a_i * E^(i*2pi*f_i + theta_i)) for t over {1,N} > > > > > for N >> K > > > > > K is, of course, more than the number of complex exponentials. > > > > > Any ideas? �Something like zero-stuffing will create phase > > > > discontinuities in the other domain so this does now work. > > > > Can't see how this can be done without first solving > > > for the exponentials, and then extend the parametric > > > model. > > > > Rune > > > That was my worry. > > It looks like using the auto regressive model is necessary. �Since you have undamped exponentials, there are a few trade-offs to consider with the AR model: - If you use the Yule-Walker equations with the 'usual' biased estimator for the covariance matrix, the roots of the corresponding AR filter are strictly inside, not on, the unit circle. Which violates you model. - If you use the YW equations with the modified covariance equations (see Marple's 1987 book), you can get roots *on* the unit circle, but you are likely to get an unstable filter. Which will do you no good. If you have real-life data, there might not be much harm in using the 'usual' AR method. You might end up in trouble if you use it in with simulated data, though. BTW, what are you using these data for? It seems a bit, well, curious that you want to artificially extrapolate a data set? Particularly if they are measured data... Rune
Reply by ●June 26, 20092009-06-26
On Jun 25, 4:58�am, "wazerf...@gmail.com" <wazerf...@gmail.com> wrote:> I'm looking for a method (preferably of low computational complexity) > that will allow me to extend a sum of complex exponential from a small > period to a greater one. > > More precisely I have (discrete): > > sum(a_i * E^(i*2pi*f_i + theta_i)) for t over {1,K} for some set of > a_i, f_i, theta_i... > and would like to produce: > sum(a_i * E^(i*2pi*f_i + theta_i)) for t over {1,N} > > for N >> K > > K is, of course, more than the number of complex exponentials. > > Any ideas? �Something like zero-stuffing will create phase > discontinuities in the other domain so this does now work. > > Thanks in advance, > > MartinI would look at using an LPC analysis and synthesis. The analysis involves autocorrellation and solving a teoplitz matrix (efficiently done via Durbin's recursion). The synthesis is much simpler - An all pole filter triggered with an impulse. You find actually find code for these methods on books and papers involving speech processing. Try looking at different LPC orders ontil you find one that leaves little residual. IHTH, Clay






