Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //============================================================================
- // Name : filter.cpp
- // Author : Olavi Suurmägi olavsu1@gmail.com
- // Version : 0.3a
- // Copyright : (c) 2009 Olavi Suurmägi olavsu1@gmail.com
- // Description : Ühe, kahe ja kolmeribaliste kõlarite sagedusfilti arvutus.
- //============================================================================
- #include <iostream>
- #include <math.h>
- #include <cmath>
- #include <fstream>
- using namespace std;
- int main(){
- 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
- //põhiühikute teisenduse jaoks.
- Lp = 1000; // H -> mH
- Cp = 1000000; // F -> µF
- /*sagedused*/
- double Fd1, Fd2, DeltaFd;
- Fd1 = 500; //madaldsageduse ülempiir
- Fd2 = 5000; //kõrgsageduse alampiir
- DeltaFd = Fd2 - Fd1; //kesksagedus ala
- cout << "Mitme ribaline on sinu kõlar? Woofri puhul vali '1' (1, 2, 3)" << endl;
- cin >> Spk;
- if(Spk !=2 && Spk !=3 && Spk != 1){
- cout << "Mõtle ikka järgi, mis sa teha tahtsid.";
- return 0;
- }
- if(Spk == 2 && Spk !=1 && Spk != 3){
- cout << "Kaheribakõlar valitud" << endl;
- cout << "Anna kõrgsagedus valjuhääldi takistus oomides." << endl;
- cin >> Rk;
- cout << "Anna madalsagedus valjuhääldi takistus oomides." << endl;
- cin >> Rm;
- cout << "Anna madalsagedus valjuhääldi |Z| takistus oomides - leiad selle vastava valjuhääldi passis olevast graafikust väärtuse 10000 Hz juurest"<< endl;
- cin >> Zm;
- cout << "Mitmendat järku on sinu filter? (1, 2, 3)" << endl;
- cin >> K;
- if(K == 1 && K != 3 && K != 2){
- /*konstandid*/
- a1 = 1;
- //valemid põhiühikutes
- L1 = a1*Rm/(2*M_PI*Fd2); //L1(ms)
- C1 = 1/(2*M_PI*Fd2*Rk*a1);//C1(ks)
- //väljund koos teisendamisega
- cout << "Kondensaatorid - Capasitors" <<endl;
- cout << endl;
- cout << " C1 = " << C1*Cp <<" µF" << endl;
- cout << endl;
- cout << "Induktiivpoolid - Coils" << endl;
- cout << endl;
- cout << " L1 = " << L1*Lp <<" mH" << endl;
- cout << endl;
- cout <<"Selles filtris on L1 jadaühenduses madalsagedus valjuhääldiga ja"<< endl;
- cout <<"C1 jadaühenduses kõrgsagedus valjuhäädiga."<< endl;
- //kompensatsioon
- Lvm = Zm/(2*M_PI*10000);
- Ckm = Lvm/(Rm*Rm);
- cout << "madalsageduse kompensatsioon - RC jadaahel rööbiti madalsagedus valjuhääldiga" << endl;
- cout << endl;
- cout << "R =" << Rm <<" Ω"<< endl;
- cout << "C" << Ckm*Cp <<" µF, põhiühikutes " << Ckm <<" F"<< endl;
- ofstream myfile ("2ribakõlar_1järk.txt");
- if (myfile.is_open())
- {
- myfile << "Kondensaatorid - Capasitors" <<endl;
- myfile << endl;
- myfile << " C1 = " << C1*Cp <<" µF" << endl;
- myfile << endl;
- myfile << "Induktiivpoolid - Coils" << endl;
- myfile << endl;
- myfile << " L1 = " << L1*Lp <<" mH" << endl;
- myfile << endl;
- myfile <<"Selles filtris on L1 jadaühenduses madalsagedus valjuhääldiga ja"<< endl;
- myfile <<"C1 jadaühenduses kõrgsagedus valjuhäädiga."<< endl;
- myfile << "madalsageduse kompensatsioon - RC jadaahel rööbiti madalsagedus valjuhääldiga" << endl;
- myfile << endl;
- myfile << "R =" << Rm <<" Ω"<< endl;
- myfile << "C =" << Ckm*Cp <<" µF, põhiühikutes " << Ckm <<" F"<< endl;
- myfile.close();
- cout << "Tulemus kirjutati faili 2ribakõlar_1järk.txt";
- }
- else cout << "Ei saa faili kirjutada";
- return 0;
- }//esimest järku filter
- if(K == 2 && K != 1 && K != 3){
- /*konstandid*/
- a1 = 2;
- a2 = 1.5000;
- //valemid põhiühikutes
- L1 = a1*Rm/(2*M_PI*Fd2); //L1(ms)
- C1 = a2/(2*M_PI*Fd2*Rm); //C2(ms)
- C2 = 1/(2*M_PI*Fd2*Rk*a1); // C1(ks)
- L2 = Rk/(2*M_PI*Fd2*a2); //L2(ks)
- //väljund koos teisendamisega
- cout << "Kondensaatorid - Capasitors" <<endl;
- cout << endl;
- cout << " C1 = " << C1*Cp <<" µF" << endl;
- cout << " C2 = " << C2*Cp <<" µF" << endl;
- cout << endl;
- cout << "Induktiivpoolid - Coils" << endl;
- cout << endl;
- cout << " L1 = " << L1*Lp <<" mH" << endl;
- cout << " L2 = " << L2*Lp <<" mH" << endl;
- //kompensatsioon
- Lvm = Zm/(2*M_PI*10000);
- Ckm = Lvm/(Rm*Rm);
- cout << "madalsageduse kompensatsioon - RC jadaahel rööbiti madalsagedus valjuhääldiga" << endl;
- cout << endl;
- cout << "R = " << Rm <<" Ω"<< endl;
- cout << "C = " << Ckm*Cp <<" µF, põhiühikutes " << Ckm <<" F"<< endl;
- ofstream myfile ("2ribakõlar_2järk.txt");
- if (myfile.is_open())
- {
- myfile << "Kondensaatorid - Capasitors" <<endl;
- myfile << "Kondensaatorid - Capasitors" <<endl;
- myfile << endl;
- myfile << " C1 = " << C1*Cp <<" µF" << endl;
- myfile << " C2 = " << C2*Cp <<" µF" << endl;
- myfile << endl;
- myfile << "Induktiivpoolid - Coils" << endl;
- myfile << endl;
- myfile << " L1 = " << L1*Lp <<" mH" << endl;
- myfile << " L2 = " << L2*Lp <<" mH" << endl;
- //kompensatsioon
- Lvm = Zm/(2*M_PI*10000);
- Ckm = Lvm/(Rm*Rm);
- myfile << "madalsageduse kompensatsioon - RC jadaahel rööbiti madalsagedus valjuhääldiga" << endl;
- myfile << endl;
- myfile << "R = " << Rm <<" Ω"<< endl;
- myfile << "C = " << Ckm*Cp <<" µF, põhiühikutes " << Ckm <<" F"<< endl;
- myfile.close();
- cout << "Tulemus kirjutati faili 2ribakõlar_2järk.txt";
- }
- else cout << "Ei saa faili kirjutada";
- return 0;
- }//teist järku filter
- if (K == 3 && K != 1 && K != 2) {
- /*konstandid*/
- a1 = 1.5000;
- a2 = 1.3333;
- a3 = 0.5000;
- //valemid põhiühikutes
- L1 = a1*Rm/(2*M_PI*Fd2); //L1(ms)
- C1 = a2/(2*M_PI*Fd2*Rm); //C2(ms)
- L2 = a3*Rm/(2*M_PI*Fd2); //L3(ms)
- C2 = 1/(2*M_PI*Fd2*Rk*a1); // C1(ks)
- L3 = Rk/(2*M_PI*Fd2*a2); //L2(ks)
- C3 = 1/(2*M_PI*Fd2*Rk*a3); // C1(ks)
- //väljund koos teisendamisega
- cout << "Kondensaatorid - Capasitors" <<endl;
- cout << endl;
- cout << " C1 = " << C1*Cp <<" µF" << endl;
- cout << " C2 = " << C2*Cp <<" µF" << endl;
- cout << " C3 = " << C3*Cp <<" µF" << endl;
- cout << endl;
- cout << "Induktiivpoolid - Coils" << endl;
- cout << endl;
- cout << " L1 = " << L1*Lp <<" mH" << endl;
- cout << " L2 = " << L2*Lp <<" mH" << endl;
- cout << " L3 = " << L3*Lp <<" mH" << endl;
- //kompensatsioon
- Lvm = Zm/(2*M_PI*10000);
- Ckm = Lvm/(Rm*Rm);
- cout << "madalsageduse kompensatsioon - RC jadaahel rööbiti madalsagedus valjuhääldiga" << endl;
- cout << endl;
- cout << "R = " << Rm <<" Ω"<< endl;
- cout << "C = " << Ckm*Cp <<" µF, põhiühikutes " << Ckm <<" F"<< endl;
- ofstream myfile ("2ribakõlar_3järk.txt");
- if (myfile.is_open())
- {
- myfile<< "Kondensaatorid - Capasitors" <<endl;
- myfile << endl;
- myfile << " C1 = " << C1*Cp <<" µF" << endl;
- myfile << " C2 = " << C2*Cp <<" µF" << endl;
- myfile<< " C3 = " << C3*Cp <<" µF" << endl;
- myfile << endl;
- myfile << "Induktiivpoolid - Coils" << endl;
- myfile << endl;
- myfile << " L1 = " << L1*Lp <<" mH" << endl;
- myfile << " L2 = " << L2*Lp <<" mH" << endl;
- myfile << " L3 = " << L3*Lp <<" mH" << endl;
- //kompensatsioon
- Lvm = Zm/(2*M_PI*10000);
- Ckm = Lvm/(Rm*Rm);
- myfile << "madalsageduse kompensatsioon - RC jadaahel rööbiti madalsagedus valjuhääldiga" << endl;
- myfile << endl;
- myfile << "R = " << Rm <<" Ω"<< endl;
- myfile<< "C = " << Ckm*Cp <<" µF, põhiühikutes " << Ckm <<" F"<< endl;
- myfile.close();
- cout << "Tulemus kirjutati faili 2ribakõlar_3järk.txt";
- }else cout <<"Ei saa falili kirjutada" << endl;
- return 0;
- }//kolmandat järku filter
- }//kaheribakõlar
- if(Spk == 3 && Spk != 2 && Spk != 1){
- cout << "kolmeribakõlar valitud" << endl;
- cout << "anna kõrgsagedus valjuhääldi takistus oomides" << endl;
- cin >> Rk;
- cout << "anna kesksagedus valjuhääldi takistus oomides" << endl;
- cin >> Rkes;
- cout << "anna kesksagedus valjuhääldi |Z| takistus oomides - leiad selle vastava valjuhääldi passis olevast graafikust väärtuse 10000 Hz juurest"<< endl;
- cin >> Zkes;
- cout << "anna madalsagedus valjuhääldi takistus oomides" << endl;
- cin >> Rm;
- cout << "anna madalsagedus valjuhääldi |Z| takistus oomides - leiad selle vastava valjuhääldi passis olevast graafikust väärtuse 10000 Hz juurest"<< endl;
- cin >> Zm;
- cout << "mitmendat järku on sinu filter? (1, 2, 3)" << endl;
- cin >> K;
- if(K == 1 && K != 2 && K != 3){
- /*konstandid*/
- a1 = 1;
- //valemid põhiühikutes
- L1 = a1*Rm/(2*M_PI*Fd1); //L1(ms)
- L2 = a1*Rkes/(2*M_PI*DeltaFd); //L1(kes)
- C1 = 1/(4*(M_PI*M_PI)*Fd2*Fd1*L2); //C1(kes)
- C2 = 1/(2*M_PI*Fd2*Rk*a1); // C1(ks)
- //väljund koos teisendamisega
- cout << "Kondensaatorid - Capasitors" <<endl;
- cout << endl;
- cout << " C1 = " << C1*Cp <<" µF" << endl;
- cout << " C2 = " << C2*Cp <<" µF" << endl;
- cout << endl;
- cout << "Induktiivpoolid - Coils" << endl;
- cout << endl;
- cout << " L1 = " << L1*Lp <<" mH" << endl;
- cout << " L2 = " << L2*Lp <<" mH" << endl;
- //korreksioon, vajalik on konkreetse valjuhääldi |Z|
- Lvm = Zm/(2*M_PI*10000);
- Ckm = Lvm/(Rm*Rm);
- Lvkes = Zkes/(2*M_PI*10000);
- Ckkes = Lvkes/(Rkes*Rkes);
- cout << "madalsageduse kompensatsioon - RC jadaahel rööbiti madalsagedus valjuhääldiga" << endl;
- cout << endl;
- cout << "R = " << Rm <<" Ω"<< endl;
- cout << "C = " << Ckm*Cp <<" µf, põhiühikutes " << Ckm <<" F"<< endl;
- cout << "kesksageduse kompensatsioon - RC jadaahel rööbiti kesksagedus valjuhääldiga" << endl;
- cout << endl;
- cout << "R = " << Rkes <<" Ω"<< endl;
- cout << "C = " << Ckkes*Cp <<" µF, põhiühikutes " << Ckkes <<" F"<< endl;
- ofstream myfile ("3ribakõlar_1järk.txt");
- if (myfile.is_open())
- {
- myfile << "Kondensaatorid - Capasitors" <<endl;
- myfile<< endl;
- myfile << " C1 = " << C1*Cp <<" µF" << endl;
- myfile<< " C2 = " << C2*Cp <<" µF" << endl;
- myfile << endl;
- myfile << "Induktiivpoolid - Coils" << endl;
- myfile << endl;
- myfile << " L1 = " << L1*Lp <<" mH" << endl;
- myfile << " L2 = " << L2*Lp <<" mH" << endl;
- //korreksioon, vajalik on konkreetse valjuhääldi |Z|
- Lvm = Zm/(2*M_PI*10000);
- Ckm = Lvm/(Rm*Rm);
- Lvkes = Zkes/(2*M_PI*10000);
- Ckkes = Lvkes/(Rkes*Rkes);
- myfile << "madalsageduse kompensatsioon - RC jadaahel rööbiti madalsagedus valjuhääldiga" << endl;
- myfile << endl;
- myfile << "R = " << Rm <<" Ω"<< endl;
- myfile << "C = " << Ckm*Cp <<" µf, põhiühikutes " << Ckm <<" F"<< endl;
- myfile << "kesksageduse kompensatsioon - RC jadaahel rööbiti kesksagedus valjuhääldiga" << endl;
- myfile << endl;
- myfile << "R = " << Rkes <<" Ω"<< endl;
- myfile << "C = " << Ckkes*Cp <<" µF, põhiühikutes " << Ckkes <<" F"<< endl;
- myfile.close();
- cout << "Tulemus kirjutati faili 3ribakõlar_1järk.txt";
- }else cout <<"Ei saa falili kirjutada" << endl;
- return 0;
- }//esimest järku filter
- if(K == 2 && K != 1 && K != 3){
- /*konstandid*/
- a1 = 2;
- a2 = 1.5000;
- //valemid põhiühikutes
- L1 = a1*Rm/(2*M_PI*Fd1); //L1(ms) põhiühikutes
- C1 = a2/(2*M_PI*Fd1*Rm); //C2(ms)
- L2 = a1*Rkes/(2*M_PI*DeltaFd); //L1(kes)
- C2 = 1/(4*(M_PI*M_PI)*Fd1*Fd2*L2); //c1(kes)
- C3 = a2/(2*M_PI*DeltaFd*Rkes); //c2(kes)
- L3 = 1/(4*(M_PI*M_PI)*Fd1*Fd2*C3); //L2(kes)
- C4 = 1/(2*M_PI*Fd2*Rk*a1); //C1(ks)
- L4 = Rk/(2*M_PI*Fd2*a2); //l2(ks)
- //väljund koos teisendamisega
- cout << "Kondensaatorid - Capasitors" <<endl;
- cout << endl;
- cout << " C1 = " << C1*Cp <<" µF" << endl;
- cout << " C2 = " << C2*Cp <<" µF" << endl;
- cout << " C3 = " << C3*Cp <<" µF" << endl;
- cout << " C4 = " << C4*Cp <<" µF" << endl;
- cout << endl;
- cout << "Induktiivpoolid - Coils" << endl;
- cout << endl;
- cout << " L1 = " << L1*Lp <<" mH" << endl;
- cout << " L2 = " << L2*Lp <<" mH" << endl;
- cout << " L3 = " << L3*Lp <<" mH" << endl;
- cout << " L4 = " << L4*Lp <<" mH" << endl;
- //korreksioon, vajalik on konkreetse valjuhääldi |Z|
- Lvm = Zm/(2*M_PI*10000);
- Ckm = Lvm/(Rm*Rm);
- Lvkes = Zkes/(2*M_PI*10000);
- Ckkes = Lvkes/(Rkes*Rkes);
- cout << "madalsageduse kompensatsioon - RC jadaahel rööbiti madalsagedus valjuhääldiga" << endl;
- cout << endl;
- cout << "R = " << Rm <<" Ω"<< endl;
- cout << "C = " << Ckm*Cp <<" µF, põhiühikutes " << Ckm <<" F"<< endl;
- cout << "kesksageduse kompensatsioon - RC jadaahel rööbiti kesksagedus valjuhääldiga" << endl;
- cout << endl;
- cout << "R = " << Rkes <<" Ω"<< endl;
- cout << "C = " << Ckkes*Cp <<" µF, põhiühikutes " << Ckkes <<" F"<< endl;
- ofstream myfile ("3ribakõlar_2järk.txt");
- if (myfile.is_open())
- {
- myfile << "Kondensaatorid - Capasitors" <<endl;
- myfile << endl;
- myfile << " C1 = " << C1*Cp <<" µF" << endl;
- myfile << " C2 = " << C2*Cp <<" µF" << endl;
- myfile << " C3 = " << C3*Cp <<" µF" << endl;
- myfile << " C4 = " << C4*Cp <<" µF" << endl;
- myfile << endl;
- myfile << "Induktiivpoolid - Coils" << endl;
- myfile << endl;
- myfile << " L1 = " << L1*Lp <<" mH" << endl;
- myfile << " L2 = " << L2*Lp <<" mH" << endl;
- myfile << " L3 = " << L3*Lp <<" mH" << endl;
- myfile << " L4 = " << L4*Lp <<" mH" << endl;
- //korreksioon, vajalik on konkreetse valjuhääldi |Z|
- Lvm = Zm/(2*M_PI*10000);
- Ckm = Lvm/(Rm*Rm);
- Lvkes = Zkes/(2*M_PI*10000);
- Ckkes = Lvkes/(Rkes*Rkes);
- myfile << "madalsageduse kompensatsioon - RC jadaahel rööbiti madalsagedus valjuhääldiga" << endl;
- myfile << endl;
- myfile << "R = " << Rm <<" Ω"<< endl;
- myfile << "C = " << Ckm*Cp <<" µF, põhiühikutes " << Ckm <<" F"<< endl;
- myfile << "kesksageduse kompensatsioon - RC jadaahel rööbiti kesksagedus valjuhääldiga" << endl;
- myfile << endl;
- myfile << "R = " << Rkes <<" Ω"<< endl;
- myfile << "C = " << Ckkes*Cp <<" µF, põhiühikutes " << Ckkes <<" F"<< endl;
- myfile.close();
- cout << "Tulemus kirjutati faili 3ribakõlar_2järk.txt";
- }else cout <<"Ei saa falili kirjutada" << endl;
- return 0;
- }//teist järku filter
- if(K == 3 && K != 2 && K != 1){
- /*konstandid*/
- a1 = 1.5000;
- a2 = 1.3333;
- a3 = 0.5000;
- //valemid põhiühikutes
- L1 = a1*Rm/(2*M_PI*Fd1);//L1(ms)
- C1 = a2/(2*M_PI*Fd1*Rm);//C2(ms)
- L2 = a3*Rm/(2*M_PI*Fd1);//L3(ms)
- L3 = a1*Rkes/(2*M_PI*DeltaFd); //L1(kes)
- C2 = 1/(4*(M_PI*M_PI)*Fd1*Fd2*L3);//C1(kes)
- C3 = a2/(2*M_PI*DeltaFd*Rkes); //C2(kes)
- L4 = 1/(4*(M_PI*M_PI)*Fd1*Fd2*C3); //L2(kes)
- L5 = a3*Rkes/(2*M_PI*DeltaFd); //L3(kes)
- C4 = 1/(4*(M_PI*M_PI)*Fd1*Fd2*L5);//C3(kes)
- C5 = 1/(2*M_PI*Fd2*a1);//C1(ks)
- L6 = Rk/(2*M_PI*Fd2*a2);//L2(ks)
- C6 =1/(2*M_PI*Fd2*Rk*a3); //C3(ks)
- //väljund koos teisendamisega
- cout << "Kondensaatorid - Capasitors" <<endl;
- cout << endl;
- cout << " C1 = " << C1*Cp <<" µF" << endl;
- cout << " C2 = " << C2*Cp <<" µF" << endl;
- cout << " C3 = " << C3*Cp <<" µF" << endl;
- cout << " C4 = " << C4*Cp <<" µF" << endl;
- cout << " C5 = " << C5*Cp <<" µF" << endl;
- cout << " C6 = " << C6*Cp <<" µF" << endl;
- cout << endl;
- cout << "Induktiivpoolid - Coils" << endl;
- cout << endl;
- cout << " L1 = " << L1*Lp <<" mH" << endl;
- cout << " L2 = " << L2*Lp <<" mH" << endl;
- cout << " L3 = " << L3*Lp <<" mH" << endl;
- cout << " L4 = " << L4*Lp <<" mH" << endl;
- cout << " L5 = " << L5*Lp <<" mH" << endl;
- cout << " L6 = " << L6*Lp <<" mH" << endl;
- //korreksioon, vajalik on konkreetse valjuhääldi |Z|
- Lvm = Zm/(2*M_PI*10000);
- Ckm = Lvm/(Rm*Rm);
- Lvkes = Zkes/(2*M_PI*10000);
- Ckkes = Lvkes/(Rkes*Rkes);
- cout << "madalsageduse kompensatsioon - RC jadaahel rööbiti madalsagedus valjuhääldiga" << endl;
- cout << endl;
- cout << "R = " << Rm <<" Ω"<< endl;
- cout << "C = " << Ckm*Cp <<" µf, põhiühikutes " << Ckm << " F"<< endl;
- cout << "kesksageduse kompensatsioon - RC jadaahel rööbiti kesksagedus valjuhääldiga" << endl;
- cout << endl;
- cout << "R = " << Rkes <<" Ω"<< endl;
- cout << "C = " << Ckkes*Cp <<" µF, põhiühikutes " << Ckkes << " F"<< endl;
- ofstream myfile ("3ribakõlar_3järk.txt");
- if (myfile.is_open())
- {
- myfile << "Kondensaatorid - Capasitors" <<endl;
- myfile << endl;
- myfile << " C1 = " << C1*Cp <<" µF" << endl;
- myfile << " C2 = " << C2*Cp <<" µF" << endl;
- myfile << " C3 = " << C3*Cp <<" µF" << endl;
- myfile << " C4 = " << C4*Cp <<" µF" << endl;
- myfile << " C5 = " << C5*Cp <<" µF" << endl;
- myfile << " C6 = " << C6*Cp <<" µF" << endl;
- myfile << endl;
- myfile << "Induktiivpoolid - Coils" << endl;
- myfile << endl;
- myfile << " L1 = " << L1*Lp <<" mH" << endl;
- myfile << " L2 = " << L2*Lp <<" mH" << endl;
- myfile << " L3 = " << L3*Lp <<" mH" << endl;
- myfile << " L4 = " << L4*Lp <<" mH" << endl;
- myfile << " L5 = " << L5*Lp <<" mH" << endl;
- myfile << " L6 = " << L6*Lp <<" mH" << endl;
- //korreksioon, vajalik on konkreetse valjuhääldi |Z|
- Lvm = Zm/(2*M_PI*10000);
- Ckm = Lvm/(Rm*Rm);
- Lvkes = Zkes/(2*M_PI*10000);
- Ckkes = Lvkes/(Rkes*Rkes);
- myfile << "madalsageduse kompensatsioon - RC jadaahel rööbiti madalsagedus valjuhääldiga" << endl;
- myfile << endl;
- myfile << "R = " << Rm <<" Ω"<< endl;
- myfile << "C = " << Ckm*Cp <<" µf, põhiühikutes " << Ckm << " F"<< endl;
- myfile << "kesksageduse kompensatsioon - RC jadaahel rööbiti kesksagedus valjuhääldiga" << endl;
- myfile << endl;
- myfile << "R = " << Rkes <<" Ω"<< endl;
- myfile << "C = " << Ckkes*Cp <<" µF, põhiühikutes " << Ckkes << " F"<< endl;
- myfile.close();
- cout << "Tulemus kirjutati faili 3ribakõlar_3järk.txt";
- }else cout <<"Ei saa falili kirjutada" << endl;
- return 0;
- }//kolmandat järku filter
- }//kolmeribakõlar
- if(Spk == 1 && Spk != 2 && Spk != 3){
- cout << "Woofer valitud" << endl;
- cout << "Anna soovitud lõikesagedus, hertsides" << endl;
- cin >> Fdw; // tavakõlaril on bassi lõikesagedus 500Hz, woofril on see madalam.
- cout << "Anna valjuhääldi takistus" << endl;
- cin >> Rm;
- cout << "Anna valjuhääldi |Z|takistus - leiad selle vastava valjuhääldi passis olevast graafikust väärtuse 10000 Hz juurest" << endl;
- cin >> Z;
- /*konstandid*/
- a1 = 1.5000;
- a2 = 1.3333;
- a3 = 0.5000;
- //valemid põhiühikutes ainult kolmas järk.
- L1 = a1*Rm/(2*M_PI*Fdw);//L1(ms)
- C1 = a2/(2*M_PI*Fdw*Rm);//C2(ms)
- L2 = a3*Rm/(2*M_PI*Fdw);//L3(ms)
- //väljund koos teisendamisega
- //korreksioon, vajalik on konkreetse valjuhääldi |Z|
- Lv = Z/(2*M_PI*10000); //valjuhääldi induktiivsus sagedusel 10000
- Ck = Lv/(Rm*Rm);
- cout << endl;
- //cout <<"Lv =" << Lv*pow(10, 3) <<" mH"<< endl;
- cout << endl;
- cout << "Kondensaatorid - Capasitors" <<endl;
- cout << endl;
- cout << " C1 = " << C1*Cp <<" µF" << endl;
- cout << endl;
- cout << "Induktiivpoolid - Coils" << endl;
- cout << endl;
- cout << " L1 = " << L1*Lp <<" mH" << endl;
- cout << " L2 = " << L2*Lp <<" mH" << endl;
- cout << endl;
- cout << "Kompensatsioon - RC jadaahel rööbiti valjuhääldiga" << endl;
- cout << endl;
- cout << "R = " << Rm <<" Ω"<< endl;
- cout << "C = " << Ck*Cp <<" µF, põhiühikutes " << Ck <<" F"<< endl;
- ofstream myfile ("woofer.txt");
- if (myfile.is_open())
- {
- myfile << "Kondensaatorid - Capasitors\n";
- myfile << endl;
- myfile << " C1 = " << C1*Cp <<" µF" << endl;
- myfile << endl;
- myfile << "Induktiivpoolid - Coils" << endl;
- myfile << endl;
- myfile << " L1 = " << L1*Lp <<" mH" << endl;
- myfile << " L2 = " << L2*Lp <<" mH" << endl;
- myfile << endl;
- myfile << "Kompensatsioon - RC jadaahel rööbiti valjuhääldiga" << endl;
- myfile << endl;
- myfile << "R = " << Rm <<" Ω"<< endl;
- myfile << "C = " << Ck*Cp <<" µF, põhiühikutes " << Ck <<" F"<< endl;
- myfile.close();
- cout << "Tulemused salvestati faili woofer.txt";
- }
- else cout << "Ei saa faili avada - Unable to open file";
- return 0;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement