# Mathematica: Transistor Harmonic Derivations

• Mathematica
Hello,

I am trying to derive the harmonic content of a signal passing through a transistor's transfer function. After a Taylor expansion in Mathematica 7, I have the expanded equation and the next step is to reduce everything to first order Sine/Cosine functions.

In Mathematica, if I have a term like

(A Sin (wt) )^3

What function can I use to reduce this down? Doing it by hand it should look something like

a Sin(wt) - b Sin(3wt) + c Sin(wt)

where a,b,c are the collections of constants.
Any idea how I can do this reduction in Mathematica? I can't seem to get/find a function like TrigReduce to do what I want.

Thanks for any help.

Bill Simpson
Mathematica often has its own idea about the form it wants things in and trying to force it to put it in the form you want can often be a frustrating experience.

This can show you the coefficients without having to do it by hand, and without what I think might be a typo in what you said the result should be.

In[1]:= Table[Integrate[Sin[n w t]A Sin[w t]^3,{t,0,2Pi/w}]/(Pi/w),{n,0,3}]

Out[1]= {0, (3*A)/4, 0, -A/4}

In[2]:= FullSimplify[3A/4Sin[w t]-A/4Sin[3 w t]==A Sin[w t]^3]

Out[2]= True

Only after I finished that did I grope around and discover this

In[3]:= TrigReduce[A Sin[w t]^3]

Out[3]= (3*A*Sin[t*w] - A*Sin[3*t*w])/4

Note: You may find if your "A" is a large complicated collection of other things then this might confuse TrigReduce to the point where it will not do the transformation that you desire. If that is the case you may be able to use pattern matching and substitution to temporarily remove the large complicated collection, do the TrigReduce, and then put back the large complicated collection.

Last edited:
Gah... I was using Sin() instead of Sin[]...

I have TrigReduce working now, Thank you very much!!! Its always the little things haha

Cheers

Bill Simpson
Gah... I was using Sin() instead of Sin[]...

I have been recommending for a long time that there be a new feature in Mathematica.

This would make things
like sin(x), sin[x], e^x, etc, etc, etc
and many or most of the other simple errors like this