私はC++を学んでいます。私の現在の知識では、必要なのは数学だけなので、私はCauerフィルタを作ることができると思いました。私の問題は、私には出発点がないことです。私はスイッチ/ケースを選択する必要がありますか?もし/ else?それは少し複雑です。C++ Cauer/elliptic filter starting point
全体として、フィルタは5つのパラメータ、Ap、As、fp、fs、N(詳細は必要ありません)の関数であり、これらの5つのうちの4つについては5番目が自動的に出力されます。たとえば、Apが指定されている場合、εp= sqrt(10 ^(Ap/10)-1)ですが、Ap = 0(他の4から推測する必要がある場合)これはAsとnomeQの関数であり、nomeQは間接的にfpとfsの比です。そして、さらに悪化させるためには、これらのすべて、εP、nomeQなどが最終的な計算に必要です。
double epsilonP, epsilonS, epsilonSC;
if (Ap)
epsilonP = sqrt(pow(10, Ap/10) - 1);
else
epsilonP = 16 * (pow(10, As/10) - 1) * exp(log(nomeQ) * N);
をしかしmodulusKの機能、関数である(この場合)H0の機能は、nomeQです:/他には、ここにある場合
当初、私は私が持っているものを使用してみましたfpとfsの比(またはfs/fp、別のパラメータに応じて、filterType)は、他の4!から自動的に決定できるようにヌルに指定できる初期用語です。同様に、As> 0ならばf(As)、そうでなければf(nomeQ)、nomeQは上記のようにf(h0)であるか、Nの直接関数modulusKは上記のf(fp、fs) nomeQ2に依存します。これはNとnomeQ1の関数です...私はあなたが私の問題を見ることを願っています。
ちょうど間違った考え方をしていないので、フィルタはLTspiceで動作しています(ltspicegoodies.ltwiki.org/files/Filter.7z、または.zip - フィルタ内の "subckt Cauer"を検索してください)。 .sub)、LTspiceはそれほど多くのことしかできないので(N、ApまたはAsだけがnullになる可能性があるので)、あらゆる可能性ではありません。だから私はC++を学び始めたのですが、ここは私です。
私の問題は:誰もがこのすべての出発点を示唆することができますか?私は誰かが私のためにこれを作っているという意味ではなく、迷路に取り組む方法のアドバイスを求めています。そして、私はそれぞれの可能性のためのプログラムについて話しているわけではありません。それは解決策ではありません。私はそれを書くようになりましたが、イプシロンPになったら、合併症を理解しました。