Lately, I needed to build an audio sinewave generator to produce, as a first step, 30 frequencies around the ones listed below (18 KHz to 615 Hz):
18,000 15,500 13,500 12,000 10,800 9,800 9,000 7,700 6,760 6,000 5,400 4,900 4,500 3,850 3,380 3,000 2,700 2,450 2,250 1,930 1,690 1,500 1,350 1,230 1,130 965 845 750 675 615
The exact frequency values are not important as long they are close (tolerance +/- 0.5%) to the ones listed above.
I have to use ATmega8L only with an external 8 MHz crystal, and some general purpose resistors and capacitors.
But, with these limited components, I also have to satisfy the following conditions:
[1] The 30 signals have just one passive RC filter.
[2] Their output amplitudes could be at any level as long they are close to each other (tolerance +/- 5%).
[3] Their distortions (THD) have to be less than 1% (audio) and less than 2% (total).
My question is:
Do you think that the saying “necessity is the mother of invention” could be applied in this case too?
Thank you.
Kerim