In [2]:
def getFlicker(f1,f2,sig_length):
    sF = f1*f2
    sr = 1./sF
    fr1 = 1./f1
    fr2 = 1./f2
    per1 = sig_length/fr1
    per2 = sig_length/fr2
    sig1 = concatenate((ones(fr1/sr*0.5),zeros(fr1/sr*0.5)))-0.5
    sig2 = concatenate((ones(fr2/sr*0.5),zeros(fr2/sr*0.5)))-0.5
    sig = concatenate((tile(sig1,per1),tile(sig2,per2)))
    return sig,sr,sig1,sig2
sig,sr,a,b= getFlicker(700,700,1.)
x, f=psd(sig,Fs=1/sr,NFFT=sig.size/2)
plt.xlim(500,1000)
figure()
plot(f[:100],20*log(x[:100]))
print sig.shape


(980000,)

In [ ]: