つぎにいよいよ目的周波数から各設定値の算出方法を考えるわけですが、まずはおなじみの(笑)パラメータと条件のまとめ図をおさらいします。図の中のa,b,c,fvcoはBFO周波数設定ですでに規定されているので、これらのパラメータの条件は満たされています。次に上の図の2つの式をもとに、fout値を代入することによってパラメータd,e,fを算出する計算式を導きます。ここからはPCよりもずっと直感的で自由度の高い『直接紙に書く』方法が一番です。下の画像は実際に紙に書いて導き出した記録です。(クリックすると拡大して見れるかもしれません)書き文字が読みにくくて恐縮ですが(汗)、左下の赤線で囲ってある計算式がd,e,f値のそれぞれの算出式です。これらの算出式の導き方については上の画像を見てぜひ考えてみてください。算出式はプログラミング言語の四則計算のルールに沿って記述しているので、この結果を見ながら実際にファームウエアのコードに新しい関数として記述していきます。0);}上のコード前半ではBFO周波数値からパラメータa,b,cを割り出しています。この部分はシステムの起動時にはすでに計算されており、各変数をグローバル変数としてコードを省略することも可能です。コード後半の赤字部分がd,e,fの算出式で、最後に得られた数値をms_set()関数に代入してSi5351Aに転送します。やってみると意外と簡単な式に収まっていますが、各パラメータの条件の制約からこの方法では100Hzステップより細かくできませんでした。それでも任意の周波数で同時に3波発生可能となったので、何か応用できるものはないだろうかと思案中です。