Advertisement
Guest User

joondus

a guest
Apr 17th, 2010
671
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 20.53 KB | None | 0 0
  1. //============================================================================
  2. // Name        : filter.cpp
  3. // Author      : Olavi Suurmägi olavsu1@gmail.com
  4. // Version     : 0.3a
  5. // Copyright   : (c) 2009 Olavi Suurmägi olavsu1@gmail.com
  6. // Description : Ühe, kahe ja kolmeribaliste kõlarite sagedusfilti arvutus.
  7. //============================================================================
  8.  
  9. #include <iostream>
  10. #include <math.h>
  11. #include <cmath>
  12. #include <fstream>
  13.  
  14. using namespace std;
  15.  
  16. int main(){
  17.      
  18.       double  Lv, Lvm, Lvkes, Ck, Ckm, Ckkes, Z, Zm, Zkes, Fdw, a1, a2, a3, Rk, Rm, Rkes, L1, L2, L3, L4, L5, L6, K, C1, C2, C3 ,C4 ,C5, C6, Spk, Cp, Lp; //muutujad
  19.      
  20.       //põhiühikute teisenduse jaoks.
  21.       Lp = 1000; // H -> mH
  22.       Cp = 1000000; // F -> µF
  23.      
  24.       /*sagedused*/
  25.       double Fd1, Fd2, DeltaFd;
  26.       Fd1 = 500; //madaldsageduse ülempiir
  27.       Fd2 = 5000; //kõrgsageduse alampiir
  28.       DeltaFd = Fd2 - Fd1; //kesksagedus ala
  29.      
  30.       cout << "Mitme ribaline on sinu kõlar? Woofri puhul vali '1' (1, 2, 3)" << endl;
  31.       cin >> Spk;
  32.       if(Spk !=2 && Spk !=3 && Spk != 1){
  33.         cout << "Mõtle ikka järgi, mis sa teha tahtsid.";
  34.         return 0;
  35.       }
  36.       if(Spk == 2 && Spk !=1 && Spk != 3){
  37.         cout << "Kaheribakõlar valitud" << endl;
  38.         cout << "Anna kõrgsagedus valjuhääldi takistus oomides." << endl;
  39.         cin >> Rk;
  40.         cout << "Anna madalsagedus valjuhääldi takistus oomides." << endl;
  41.         cin >> Rm;
  42.         cout << "Anna madalsagedus valjuhääldi |Z| takistus oomides - leiad selle vastava valjuhääldi passis olevast graafikust väärtuse 10000 Hz juurest"<< endl;
  43.         cin >> Zm;
  44.         cout << "Mitmendat järku on sinu filter? (1, 2, 3)" << endl;
  45.         cin >> K;
  46.         if(K == 1 && K != 3 && K != 2){
  47.           /*konstandid*/
  48.          
  49.           a1 = 1;
  50.           //valemid põhiühikutes
  51.           L1 = a1*Rm/(2*M_PI*Fd2); //L1(ms)
  52.           C1 = 1/(2*M_PI*Fd2*Rk*a1);//C1(ks)
  53.           //väljund koos teisendamisega
  54.           cout << "Kondensaatorid - Capasitors" <<endl;
  55.           cout << endl;
  56.           cout << " C1 = " << C1*Cp <<" µF" << endl;
  57.           cout << endl;
  58.           cout << "Induktiivpoolid - Coils" << endl;
  59.           cout << endl;
  60.           cout << " L1 = " << L1*Lp <<" mH" << endl;
  61.           cout << endl;
  62.           cout <<"Selles filtris on L1 jadaühenduses madalsagedus valjuhääldiga ja"<< endl;
  63.           cout <<"C1 jadaühenduses kõrgsagedus valjuhäädiga."<< endl;
  64.           //kompensatsioon
  65.           Lvm = Zm/(2*M_PI*10000);
  66.           Ckm = Lvm/(Rm*Rm);
  67.           cout << "madalsageduse kompensatsioon - RC jadaahel rööbiti madalsagedus valjuhääldiga" << endl;
  68.           cout << endl;
  69.           cout << "R =" << Rm <<" Ω"<< endl;
  70.           cout << "C" << Ckm*Cp <<" µF, põhiühikutes  " << Ckm <<" F"<< endl;
  71.           ofstream myfile ("2ribakõlar_1järk.txt");
  72.           if (myfile.is_open())
  73.           {
  74.             myfile << "Kondensaatorid - Capasitors" <<endl;
  75.             myfile << endl;
  76.             myfile << " C1 = " << C1*Cp <<" µF" << endl;
  77.             myfile << endl;
  78.             myfile << "Induktiivpoolid - Coils" << endl;
  79.             myfile << endl;
  80.             myfile << " L1 = " << L1*Lp <<" mH" << endl;
  81.             myfile << endl;
  82.             myfile <<"Selles filtris on L1 jadaühenduses madalsagedus valjuhääldiga ja"<< endl;
  83.             myfile <<"C1 jadaühenduses kõrgsagedus valjuhäädiga."<< endl;
  84.             myfile << "madalsageduse kompensatsioon - RC jadaahel rööbiti madalsagedus valjuhääldiga" << endl;
  85.             myfile << endl;
  86.             myfile << "R =" << Rm <<" Ω"<< endl;
  87.             myfile << "C =" << Ckm*Cp <<" µF, põhiühikutes  " << Ckm <<" F"<< endl;
  88.             myfile.close();
  89.             cout << "Tulemus kirjutati faili 2ribakõlar_1järk.txt";
  90.           }
  91.           else cout << "Ei saa faili kirjutada";
  92.          
  93.           return 0;
  94.         }//esimest järku filter
  95.        
  96.         if(K == 2 && K != 1 && K != 3){
  97.           /*konstandid*/
  98.           a1 = 2;
  99.           a2 = 1.5000;
  100.           //valemid põhiühikutes
  101.           L1 = a1*Rm/(2*M_PI*Fd2); //L1(ms)
  102.           C1 = a2/(2*M_PI*Fd2*Rm); //C2(ms)
  103.           C2 = 1/(2*M_PI*Fd2*Rk*a1); // C1(ks)
  104.           L2 = Rk/(2*M_PI*Fd2*a2); //L2(ks)
  105.           //väljund koos teisendamisega
  106.           cout << "Kondensaatorid - Capasitors" <<endl;
  107.           cout << endl;
  108.           cout << " C1 = " << C1*Cp <<" µF" << endl;
  109.           cout << " C2 = " << C2*Cp <<" µF" << endl;
  110.           cout << endl;
  111.           cout << "Induktiivpoolid - Coils" << endl;
  112.           cout << endl;
  113.           cout << " L1 = " << L1*Lp <<" mH" << endl;
  114.           cout << " L2 = " << L2*Lp <<" mH" << endl;
  115.           //kompensatsioon
  116.           Lvm = Zm/(2*M_PI*10000);
  117.           Ckm = Lvm/(Rm*Rm);
  118.           cout << "madalsageduse kompensatsioon - RC jadaahel rööbiti madalsagedus valjuhääldiga" << endl;
  119.           cout << endl;
  120.           cout << "R = " << Rm <<" Ω"<< endl;
  121.           cout << "C = " << Ckm*Cp <<" µF, põhiühikutes  " << Ckm <<" F"<< endl;
  122.           ofstream myfile ("2ribakõlar_2järk.txt");
  123.           if (myfile.is_open())
  124.           {
  125.             myfile << "Kondensaatorid - Capasitors" <<endl;
  126.             myfile << "Kondensaatorid - Capasitors" <<endl;
  127.             myfile << endl;
  128.             myfile << " C1 = " << C1*Cp <<" µF" << endl;
  129.             myfile << " C2 = " << C2*Cp <<" µF" << endl;
  130.             myfile << endl;
  131.             myfile << "Induktiivpoolid - Coils" << endl;
  132.             myfile << endl;
  133.             myfile << " L1 = " << L1*Lp <<" mH" << endl;
  134.             myfile << " L2 = " << L2*Lp <<" mH" << endl;
  135.             //kompensatsioon
  136.             Lvm = Zm/(2*M_PI*10000);
  137.             Ckm = Lvm/(Rm*Rm);
  138.             myfile << "madalsageduse kompensatsioon - RC jadaahel rööbiti madalsagedus valjuhääldiga" << endl;
  139.             myfile << endl;
  140.             myfile << "R = " << Rm <<" Ω"<< endl;
  141.             myfile << "C = " << Ckm*Cp <<" µF, põhiühikutes  " << Ckm <<" F"<< endl;
  142.             myfile.close();
  143.             cout << "Tulemus kirjutati faili 2ribakõlar_2järk.txt";
  144.           }
  145.           else cout << "Ei saa faili kirjutada";
  146.           return 0;
  147.         }//teist järku filter
  148.        
  149.         if (K == 3 && K != 1 && K != 2) {
  150.           /*konstandid*/
  151.           a1 = 1.5000;
  152.           a2 = 1.3333;
  153.           a3 = 0.5000;
  154.           //valemid põhiühikutes
  155.           L1 = a1*Rm/(2*M_PI*Fd2); //L1(ms)
  156.           C1 = a2/(2*M_PI*Fd2*Rm); //C2(ms)
  157.           L2 = a3*Rm/(2*M_PI*Fd2); //L3(ms)
  158.           C2 = 1/(2*M_PI*Fd2*Rk*a1); // C1(ks)
  159.           L3 = Rk/(2*M_PI*Fd2*a2); //L2(ks)
  160.           C3 = 1/(2*M_PI*Fd2*Rk*a3); // C1(ks)
  161.           //väljund koos teisendamisega
  162.           cout << "Kondensaatorid - Capasitors" <<endl;
  163.           cout << endl;
  164.           cout << " C1 = " << C1*Cp <<" µF" << endl;
  165.           cout << " C2 = " << C2*Cp <<" µF" << endl;
  166.           cout << " C3 = " << C3*Cp <<" µF" << endl;
  167.           cout << endl;
  168.           cout << "Induktiivpoolid - Coils" << endl;
  169.           cout << endl;
  170.           cout << " L1 = " << L1*Lp <<" mH" << endl;
  171.           cout << " L2 = " << L2*Lp <<" mH" << endl;
  172.           cout << " L3 = " << L3*Lp <<" mH" << endl;
  173.           //kompensatsioon
  174.           Lvm = Zm/(2*M_PI*10000);
  175.           Ckm = Lvm/(Rm*Rm);
  176.           cout << "madalsageduse kompensatsioon - RC jadaahel rööbiti madalsagedus valjuhääldiga" << endl;
  177.           cout << endl;
  178.           cout << "R = " << Rm <<" Ω"<< endl;
  179.           cout << "C = " << Ckm*Cp <<" µF, põhiühikutes  " << Ckm <<" F"<< endl;
  180.           ofstream myfile ("2ribakõlar_3järk.txt");
  181.           if (myfile.is_open())
  182.           {
  183.             myfile<< "Kondensaatorid - Capasitors" <<endl;
  184.             myfile << endl;
  185.             myfile << " C1 = " << C1*Cp <<" µF" << endl;
  186.             myfile << " C2 = " << C2*Cp <<" µF" << endl;
  187.             myfile<< " C3 = " << C3*Cp <<" µF" << endl;
  188.             myfile << endl;
  189.             myfile << "Induktiivpoolid - Coils" << endl;
  190.             myfile << endl;
  191.             myfile << " L1 = " << L1*Lp <<" mH" << endl;
  192.             myfile << " L2 = " << L2*Lp <<" mH" << endl;
  193.             myfile << " L3 = " << L3*Lp <<" mH" << endl;
  194.             //kompensatsioon
  195.             Lvm = Zm/(2*M_PI*10000);
  196.             Ckm = Lvm/(Rm*Rm);
  197.             myfile << "madalsageduse kompensatsioon - RC jadaahel rööbiti madalsagedus valjuhääldiga" << endl;
  198.             myfile << endl;
  199.             myfile << "R = " << Rm <<" Ω"<< endl;
  200.             myfile<< "C = " << Ckm*Cp <<" µF, põhiühikutes  " << Ckm <<" F"<< endl;
  201.             myfile.close();
  202.             cout << "Tulemus kirjutati faili 2ribakõlar_3järk.txt";                
  203.           }else cout <<"Ei saa falili kirjutada" << endl;
  204.           return 0;
  205.         }//kolmandat järku filter    
  206.       }//kaheribakõlar
  207.      
  208.       if(Spk == 3 && Spk != 2 && Spk != 1){
  209.         cout << "kolmeribakõlar valitud" << endl;
  210.         cout << "anna kõrgsagedus valjuhääldi takistus oomides" << endl;
  211.         cin >> Rk;
  212.         cout << "anna kesksagedus valjuhääldi takistus oomides" << endl;
  213.         cin >> Rkes;
  214.         cout << "anna kesksagedus valjuhääldi |Z| takistus oomides - leiad selle vastava valjuhääldi passis olevast graafikust väärtuse 10000 Hz juurest"<< endl;
  215.         cin >> Zkes;
  216.         cout << "anna madalsagedus valjuhääldi takistus oomides" << endl;
  217.         cin >> Rm;
  218.         cout << "anna madalsagedus valjuhääldi |Z| takistus oomides - leiad selle vastava valjuhääldi passis olevast graafikust väärtuse 10000 Hz juurest"<< endl;
  219.         cin >> Zm;
  220.         cout << "mitmendat järku on sinu filter? (1, 2, 3)" << endl;
  221.         cin >> K;
  222.         if(K == 1 && K != 2 && K != 3){
  223.           /*konstandid*/
  224.           a1 = 1;
  225.           //valemid põhiühikutes
  226.           L1 = a1*Rm/(2*M_PI*Fd1); //L1(ms)
  227.           L2 = a1*Rkes/(2*M_PI*DeltaFd); //L1(kes)
  228.           C1 = 1/(4*(M_PI*M_PI)*Fd2*Fd1*L2); //C1(kes)
  229.           C2 = 1/(2*M_PI*Fd2*Rk*a1); // C1(ks)
  230.           //väljund koos teisendamisega
  231.           cout << "Kondensaatorid - Capasitors" <<endl;
  232.           cout << endl;
  233.           cout << " C1 = " << C1*Cp <<" µF" << endl;
  234.           cout << " C2 = " << C2*Cp <<" µF" << endl;
  235.           cout << endl;
  236.           cout << "Induktiivpoolid - Coils" << endl;
  237.           cout << endl;
  238.           cout << " L1 = " << L1*Lp <<" mH" << endl;
  239.           cout << " L2 = " << L2*Lp <<" mH" << endl;
  240.           //korreksioon, vajalik on konkreetse valjuhääldi |Z|
  241.           Lvm = Zm/(2*M_PI*10000);
  242.           Ckm = Lvm/(Rm*Rm);
  243.           Lvkes = Zkes/(2*M_PI*10000);
  244.           Ckkes = Lvkes/(Rkes*Rkes);
  245.           cout << "madalsageduse kompensatsioon - RC jadaahel rööbiti madalsagedus valjuhääldiga" << endl;
  246.           cout << endl;
  247.           cout << "R = " << Rm <<" Ω"<< endl;
  248.           cout << "C = " << Ckm*Cp <<" µf, põhiühikutes  " << Ckm <<" F"<< endl;
  249.           cout << "kesksageduse kompensatsioon - RC jadaahel rööbiti kesksagedus valjuhääldiga" << endl;
  250.           cout << endl;
  251.           cout << "R = " << Rkes <<" Ω"<< endl;
  252.           cout << "C = " << Ckkes*Cp <<" µF, põhiühikutes  " << Ckkes <<" F"<< endl;
  253.           ofstream myfile ("3ribakõlar_1järk.txt");
  254.           if (myfile.is_open())
  255.           {
  256.             myfile << "Kondensaatorid - Capasitors" <<endl;
  257.             myfile<< endl;
  258.             myfile << " C1 = " << C1*Cp <<" µF" << endl;
  259.             myfile<< " C2 = " << C2*Cp <<" µF" << endl;
  260.             myfile << endl;
  261.             myfile << "Induktiivpoolid - Coils" << endl;
  262.             myfile << endl;
  263.             myfile << " L1 = " << L1*Lp <<" mH" << endl;
  264.             myfile << " L2 = " << L2*Lp <<" mH" << endl;
  265.             //korreksioon, vajalik on konkreetse valjuhääldi |Z|
  266.             Lvm = Zm/(2*M_PI*10000);
  267.             Ckm = Lvm/(Rm*Rm);
  268.             Lvkes = Zkes/(2*M_PI*10000);
  269.             Ckkes = Lvkes/(Rkes*Rkes);
  270.             myfile << "madalsageduse kompensatsioon - RC jadaahel rööbiti madalsagedus valjuhääldiga" << endl;
  271.             myfile << endl;
  272.             myfile << "R = " << Rm <<" Ω"<< endl;
  273.             myfile << "C = " << Ckm*Cp <<" µf, põhiühikutes  " << Ckm <<" F"<< endl;
  274.             myfile << "kesksageduse kompensatsioon - RC jadaahel rööbiti kesksagedus valjuhääldiga" << endl;
  275.             myfile << endl;
  276.             myfile << "R = " << Rkes <<" Ω"<< endl;
  277.             myfile << "C = " << Ckkes*Cp <<" µF, põhiühikutes  " << Ckkes <<" F"<< endl;
  278.             myfile.close();
  279.             cout << "Tulemus kirjutati faili 3ribakõlar_1järk.txt";                
  280.           }else cout <<"Ei saa falili kirjutada" << endl;
  281.           return 0;
  282.         }//esimest järku filter
  283.        
  284.         if(K == 2 && K != 1 && K != 3){
  285.           /*konstandid*/
  286.           a1 = 2;
  287.           a2 = 1.5000;
  288.           //valemid põhiühikutes
  289.           L1 = a1*Rm/(2*M_PI*Fd1);  //L1(ms) põhiühikutes
  290.           C1 = a2/(2*M_PI*Fd1*Rm); //C2(ms)
  291.           L2 = a1*Rkes/(2*M_PI*DeltaFd); //L1(kes)
  292.           C2 = 1/(4*(M_PI*M_PI)*Fd1*Fd2*L2); //c1(kes)
  293.           C3 = a2/(2*M_PI*DeltaFd*Rkes); //c2(kes)
  294.           L3 = 1/(4*(M_PI*M_PI)*Fd1*Fd2*C3); //L2(kes)
  295.           C4 = 1/(2*M_PI*Fd2*Rk*a1); //C1(ks)
  296.           L4 = Rk/(2*M_PI*Fd2*a2); //l2(ks)
  297.          
  298.           //väljund koos teisendamisega
  299.           cout << "Kondensaatorid - Capasitors" <<endl;
  300.           cout << endl;
  301.           cout << " C1 = " << C1*Cp <<" µF" << endl;
  302.           cout << " C2 = " << C2*Cp <<" µF" << endl;
  303.           cout << " C3 = " << C3*Cp <<" µF" << endl;
  304.           cout << " C4 = " << C4*Cp <<" µF" << endl;
  305.           cout << endl;
  306.           cout << "Induktiivpoolid - Coils" << endl;
  307.           cout << endl;
  308.           cout << " L1 = " << L1*Lp <<" mH" << endl;
  309.           cout << " L2 = " << L2*Lp <<" mH" << endl;
  310.           cout << " L3 = " << L3*Lp <<" mH" << endl;
  311.           cout << " L4 = " << L4*Lp <<" mH" << endl;
  312.           //korreksioon, vajalik on konkreetse valjuhääldi |Z|
  313.           Lvm = Zm/(2*M_PI*10000);
  314.           Ckm = Lvm/(Rm*Rm);
  315.           Lvkes = Zkes/(2*M_PI*10000);
  316.           Ckkes = Lvkes/(Rkes*Rkes);
  317.           cout << "madalsageduse kompensatsioon - RC jadaahel rööbiti madalsagedus valjuhääldiga" << endl;
  318.           cout << endl;
  319.           cout << "R = " << Rm <<" Ω"<< endl;
  320.           cout << "C = " << Ckm*Cp <<" µF, põhiühikutes  " << Ckm <<" F"<< endl;
  321.           cout << "kesksageduse kompensatsioon - RC jadaahel rööbiti kesksagedus valjuhääldiga" << endl;
  322.           cout << endl;
  323.           cout << "R = " << Rkes <<" Ω"<< endl;
  324.           cout << "C = " << Ckkes*Cp <<" µF, põhiühikutes  " << Ckkes <<" F"<< endl;
  325.           ofstream myfile ("3ribakõlar_2järk.txt");
  326.           if (myfile.is_open())
  327.           {
  328.             myfile << "Kondensaatorid - Capasitors" <<endl;
  329.             myfile << endl;
  330.             myfile << " C1 = " << C1*Cp <<" µF" << endl;
  331.             myfile << " C2 = " << C2*Cp <<" µF" << endl;
  332.             myfile << " C3 = " << C3*Cp <<" µF" << endl;
  333.             myfile << " C4 = " << C4*Cp <<" µF" << endl;
  334.             myfile << endl;
  335.             myfile << "Induktiivpoolid - Coils" << endl;
  336.             myfile << endl;
  337.             myfile << " L1 = " << L1*Lp <<" mH" << endl;
  338.             myfile << " L2 = " << L2*Lp <<" mH" << endl;
  339.             myfile << " L3 = " << L3*Lp <<" mH" << endl;
  340.             myfile << " L4 = " << L4*Lp <<" mH" << endl;
  341.             //korreksioon, vajalik on konkreetse valjuhääldi |Z|
  342.             Lvm = Zm/(2*M_PI*10000);
  343.             Ckm = Lvm/(Rm*Rm);
  344.             Lvkes = Zkes/(2*M_PI*10000);
  345.             Ckkes = Lvkes/(Rkes*Rkes);
  346.             myfile << "madalsageduse kompensatsioon - RC jadaahel rööbiti madalsagedus valjuhääldiga" << endl;
  347.             myfile << endl;
  348.             myfile << "R = " << Rm <<" Ω"<< endl;
  349.             myfile << "C = " << Ckm*Cp <<" µF, põhiühikutes  " << Ckm <<" F"<< endl;
  350.             myfile << "kesksageduse kompensatsioon - RC jadaahel rööbiti kesksagedus valjuhääldiga" << endl;
  351.             myfile << endl;
  352.             myfile << "R = " << Rkes <<" Ω"<< endl;
  353.             myfile << "C = " << Ckkes*Cp <<" µF, põhiühikutes  " << Ckkes <<" F"<< endl;
  354.             myfile.close();
  355.             cout << "Tulemus kirjutati faili 3ribakõlar_2järk.txt";                
  356.           }else cout <<"Ei saa falili kirjutada" << endl;
  357.           return 0;
  358.         }//teist järku filter
  359.        
  360.         if(K == 3 && K != 2 && K != 1){
  361.           /*konstandid*/
  362.           a1 = 1.5000;
  363.           a2 = 1.3333;
  364.           a3 = 0.5000;
  365.           //valemid põhiühikutes
  366.           L1 = a1*Rm/(2*M_PI*Fd1);//L1(ms)
  367.           C1 = a2/(2*M_PI*Fd1*Rm);//C2(ms)
  368.           L2 = a3*Rm/(2*M_PI*Fd1);//L3(ms)
  369.           L3 = a1*Rkes/(2*M_PI*DeltaFd); //L1(kes)
  370.           C2 = 1/(4*(M_PI*M_PI)*Fd1*Fd2*L3);//C1(kes)
  371.           C3 = a2/(2*M_PI*DeltaFd*Rkes); //C2(kes)
  372.           L4 = 1/(4*(M_PI*M_PI)*Fd1*Fd2*C3); //L2(kes)
  373.           L5 = a3*Rkes/(2*M_PI*DeltaFd); //L3(kes)
  374.           C4 = 1/(4*(M_PI*M_PI)*Fd1*Fd2*L5);//C3(kes)
  375.           C5 = 1/(2*M_PI*Fd2*a1);//C1(ks)
  376.           L6 = Rk/(2*M_PI*Fd2*a2);//L2(ks)
  377.           C6 =1/(2*M_PI*Fd2*Rk*a3); //C3(ks)
  378.          
  379.           //väljund koos teisendamisega
  380.           cout << "Kondensaatorid - Capasitors" <<endl;
  381.           cout << endl;
  382.           cout << " C1 = " << C1*Cp <<" µF" << endl;
  383.           cout << " C2 = " << C2*Cp <<" µF" << endl;
  384.           cout << " C3 = " << C3*Cp <<" µF" << endl;
  385.           cout << " C4 = " << C4*Cp <<" µF" << endl;
  386.           cout << " C5 = " << C5*Cp <<" µF" << endl;
  387.           cout << " C6 = " << C6*Cp <<" µF" << endl;
  388.           cout << endl;
  389.           cout << "Induktiivpoolid - Coils" << endl;
  390.           cout << endl;
  391.           cout << " L1 = " << L1*Lp <<" mH" << endl;
  392.           cout << " L2 = " << L2*Lp <<" mH" << endl;
  393.           cout << " L3 = " << L3*Lp <<" mH" << endl;
  394.           cout << " L4 = " << L4*Lp <<" mH" << endl;
  395.           cout << " L5 = " << L5*Lp <<" mH" << endl;
  396.           cout << " L6 = " << L6*Lp <<" mH" << endl;
  397.           //korreksioon, vajalik on konkreetse valjuhääldi |Z|
  398.           Lvm = Zm/(2*M_PI*10000);
  399.           Ckm = Lvm/(Rm*Rm);
  400.           Lvkes = Zkes/(2*M_PI*10000);
  401.           Ckkes = Lvkes/(Rkes*Rkes);
  402.           cout << "madalsageduse kompensatsioon - RC jadaahel rööbiti madalsagedus valjuhääldiga" << endl;
  403.           cout << endl;
  404.           cout << "R = " << Rm <<" Ω"<< endl;
  405.           cout << "C = " << Ckm*Cp <<" µf, põhiühikutes  " << Ckm << " F"<< endl;
  406.           cout << "kesksageduse kompensatsioon - RC jadaahel rööbiti kesksagedus valjuhääldiga" << endl;
  407.           cout << endl;
  408.           cout << "R = " << Rkes <<" Ω"<< endl;
  409.           cout << "C = " << Ckkes*Cp <<" µF, põhiühikutes  " << Ckkes << " F"<< endl;
  410.           ofstream myfile ("3ribakõlar_3järk.txt");
  411.           if (myfile.is_open())
  412.           {
  413.             myfile << "Kondensaatorid - Capasitors" <<endl;
  414.             myfile << endl;
  415.             myfile << " C1 = " << C1*Cp <<" µF" << endl;
  416.             myfile << " C2 = " << C2*Cp <<" µF" << endl;
  417.             myfile << " C3 = " << C3*Cp <<" µF" << endl;
  418.             myfile << " C4 = " << C4*Cp <<" µF" << endl;
  419.             myfile << " C5 = " << C5*Cp <<" µF" << endl;
  420.             myfile << " C6 = " << C6*Cp <<" µF" << endl;
  421.             myfile << endl;
  422.             myfile << "Induktiivpoolid - Coils" << endl;
  423.             myfile << endl;
  424.             myfile << " L1 = " << L1*Lp <<" mH" << endl;
  425.             myfile << " L2 = " << L2*Lp <<" mH" << endl;
  426.             myfile << " L3 = " << L3*Lp <<" mH" << endl;
  427.             myfile << " L4 = " << L4*Lp <<" mH" << endl;
  428.             myfile << " L5 = " << L5*Lp <<" mH" << endl;
  429.             myfile << " L6 = " << L6*Lp <<" mH" << endl;
  430.             //korreksioon, vajalik on konkreetse valjuhääldi |Z|
  431.             Lvm = Zm/(2*M_PI*10000);
  432.             Ckm = Lvm/(Rm*Rm);
  433.             Lvkes = Zkes/(2*M_PI*10000);
  434.             Ckkes = Lvkes/(Rkes*Rkes);
  435.             myfile << "madalsageduse kompensatsioon - RC jadaahel rööbiti madalsagedus valjuhääldiga" << endl;
  436.             myfile << endl;
  437.             myfile << "R = " << Rm <<" Ω"<< endl;
  438.             myfile << "C = " << Ckm*Cp <<" µf, põhiühikutes  " << Ckm << " F"<< endl;
  439.             myfile << "kesksageduse kompensatsioon - RC jadaahel rööbiti kesksagedus valjuhääldiga" << endl;
  440.             myfile << endl;
  441.             myfile << "R = " << Rkes <<" Ω"<< endl;
  442.             myfile << "C = " << Ckkes*Cp <<" µF, põhiühikutes  " << Ckkes << " F"<< endl;
  443.             myfile.close();
  444.             cout << "Tulemus kirjutati faili 3ribakõlar_3järk.txt";                
  445.           }else cout <<"Ei saa falili kirjutada" << endl;
  446.           return 0;
  447.         }//kolmandat järku filter    
  448.       }//kolmeribakõlar
  449.      
  450.       if(Spk == 1 && Spk != 2 && Spk != 3){
  451.         cout << "Woofer valitud" << endl;
  452.         cout << "Anna soovitud lõikesagedus, hertsides" << endl;
  453.         cin >> Fdw; // tavakõlaril on bassi lõikesagedus 500Hz, woofril on see madalam.
  454.         cout << "Anna valjuhääldi takistus" << endl;
  455.         cin >> Rm;
  456.         cout << "Anna valjuhääldi |Z|takistus - leiad selle vastava valjuhääldi passis olevast graafikust väärtuse 10000 Hz juurest" << endl;
  457.         cin >> Z;
  458.         /*konstandid*/
  459.         a1 = 1.5000;
  460.         a2 = 1.3333;
  461.         a3 = 0.5000;
  462.         //valemid põhiühikutes ainult kolmas järk.
  463.         L1 = a1*Rm/(2*M_PI*Fdw);//L1(ms)
  464.         C1 = a2/(2*M_PI*Fdw*Rm);//C2(ms)
  465.         L2 = a3*Rm/(2*M_PI*Fdw);//L3(ms)
  466.         //väljund koos teisendamisega
  467.         //korreksioon, vajalik on konkreetse valjuhääldi |Z|
  468.         Lv = Z/(2*M_PI*10000); //valjuhääldi induktiivsus sagedusel 10000
  469.         Ck = Lv/(Rm*Rm);
  470.         cout << endl;
  471.         //cout <<"Lv =" << Lv*pow(10, 3) <<" mH"<< endl;
  472.         cout << endl;
  473.         cout << "Kondensaatorid - Capasitors" <<endl;
  474.         cout << endl;
  475.         cout << " C1 = " << C1*Cp <<" µF" << endl;
  476.         cout << endl;
  477.         cout << "Induktiivpoolid - Coils" << endl;
  478.         cout << endl;
  479.         cout << " L1 = " << L1*Lp <<" mH" << endl;
  480.         cout << " L2 = " << L2*Lp <<" mH" << endl;
  481.         cout << endl;
  482.         cout << "Kompensatsioon - RC jadaahel rööbiti valjuhääldiga" << endl;
  483.         cout << endl;
  484.         cout << "R = " << Rm <<" Ω"<< endl;
  485.         cout << "C = " << Ck*Cp <<" µF, põhiühikutes  " << Ck <<" F"<< endl;
  486.        
  487.         ofstream myfile ("woofer.txt");
  488.         if (myfile.is_open())
  489.         {
  490.           myfile << "Kondensaatorid - Capasitors\n";
  491.           myfile << endl;
  492.           myfile << " C1 = " << C1*Cp <<" µF" << endl;
  493.           myfile << endl;
  494.           myfile << "Induktiivpoolid - Coils" << endl;
  495.           myfile << endl;
  496.           myfile << " L1 = " << L1*Lp <<" mH" << endl;
  497.           myfile << " L2 = " << L2*Lp <<" mH" << endl;
  498.           myfile << endl;
  499.           myfile << "Kompensatsioon - RC jadaahel rööbiti valjuhääldiga" << endl;
  500.           myfile << endl;
  501.           myfile << "R = " << Rm <<" Ω"<< endl;
  502.           myfile << "C = " << Ck*Cp <<" µF, põhiühikutes  " << Ck <<" F"<< endl;
  503.          
  504.           myfile.close();
  505.           cout << "Tulemused salvestati faili woofer.txt";
  506.         }
  507.         else cout << "Ei saa faili avada - Unable to open file";
  508.         return 0;    
  509.       }
  510. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement