Wednesday, January 05, 2011

Producing sinusoidal signals


Sometimes I need a signal of different frequencies for testing, so I wrote a simple Python code to produce compound sinusoidal signal by adding several cosine waves of different frequencies, amplitudes, and phases.

The code is listed as the follows. (download)
from scipy import *
from pylab import *

data_size = 10 # number of sinusoidal waves

A = rand(data_size)
theta = rand(data_size)
f = [i for i in range(1,data_size+1)]
t = linspace(0,10,1024)

y = [0.0 for i in range(len(t))]

for i in range(data_size):
        y += A[i]*cos(2*pi*f[i]*t + theta[i])

plot(t,y)
show()

No comments:

Post a Comment