You're welcome.
This one bounced around my head a bit, so I've come for a second bite. Setting aside the phase lock to incoming 1 kHz signal, there are some requirements to get coherent harmonics out...
- To operate PLL, require fosc is a multiple of 1 kHz
- To get 2 kHz output, require fosc is a multiple of 2 kHz
- To get 3 kHz output, require fosc is a multiple of 3 kHz
- Thus to have the choice between (or multiple outputs) 2 and 3 kHz, fosc must be a multiple of both 2 kHz and 3 kHz, i.e. a multiple of 6 kHz
As the number of harmonics of interest goes up, so too does the required f_osc.
Let's imagine we'd like the option to output the following: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 kHz
We can decompose those to products of primes: 1, 2, 3, 2
2,
5, 2*3,
7,
23,
32, 2*5
Thus we could use f
osc = product(2
3, 3
2, 5, 7) = 2520 kHz
Let's imagine we'd like to add on 11, 12 kHz
That's going to add some more products of primes: 11, 2
2*3
Thus we could use f
osc = product(2
3, 3
2, 5, 7, 11) = 27,720 kHz
And if we want to go a bit further and add on 13, 14, 15kHz
That's going to add some more products of primes: 13, 2*7, 3*5
Thus we could use f
osc = product(2
3, 3
2, 5, 7, 11, 13) = 360,360 kHz
So if we want to use a single value of f
osc[\sub] and output many different harmonics then fosc needs to be quite high. Adjusting fosc ratio to vary depending on which harmonics we want to output could make a huge impact, though