PDA

View Full Version : Summary: Swept-Sine

Arno Grunendahl
11-30-2003, 07:04 PM
Thanks to Joe and Jeremy!

************************************************** **************************
*********

Dear all:

Desperately I'm trying to build a swept-sine displacement-history for
dynamic FE calculations. What I want to do is impose a sine-like
dispalcement in a frequency range from 10 to 50 Hz during one single
calcualtion. I found the following formular for swept-sine inputs:

y(a,b,c,d,x)=c*sin{PI/(b-a)*[((b-a)*x/d+a)^2-a^2]}

What do the parameters a,b and d represent? Can anybody enlighten me? At
least I know what c is for

Kind Regards,

Arno

************************************************** **************************
*********

I haven't got a clue about that formular. Anyway, a swept sine:

Try:

y = a * sin (2*PI*t*f/s)

Where:

a = amplitude
t = sample index
f = frequency in Hz
s = samples per second

Then to sweep it, relate f to t and s, e.g:

f = 10.0 + 40.0 * t / (s * sweeptime)

This would sweep from 10 to 50Hz in sweeptime seconds

Hope this helps

Joe

************************************************** **************************
*********

You have a rather complex formula for y. If you simplify the brackets
you will reduce to:

y = c sin { [ pi (b-a) x / d+2a] x}

which is of the form y = c sin {f(x) x} where the modulating
frequency

f(x) = pi (b-a) x / d+2a

is linear in x

If you want to simulate an instantaneous frequency F(x) then you have
to choose f(x) so that

F(x) = d [f(x) . x ] / dx

With a linear sweep this means that there is a factor of 2 in the
coefficient of the x term. So for a sweep from f0 to f1 in time
window x=0 to x=X you would want to generate

F(x) = f0 + (f1-f0) x / X

Then the parameters a, b and d are:

a = f0 / 2

b = f1 / 2

and

d = pi.X

So a and b are the bandwidth parameters and d is pi times the
duration. (There is some ambiguity between b and d but this is the
obvious way to write it.)

The formula you have is for a linear frequency sweep. You can model
other signals F(x) by integrating

F(x) = d [f(x) . x ] / dx

The constant of integration is equivalent to a phase shift in the
waveform: that might be important for your simulation or for the
response of any filters you are using, and you should not leave it
out. You could either use a complex exponential or write

y = c cos { [ pi (b-a) x / d+2a] x + 2.pi.e}

where 0