kõlari sagedusfiltri arvutus

Kõik muud teemad, mis seotud Linuxi ja ei sobi mujale

Moderaator: Moderaatorid

Vasta
olavsu1
Vana Pingviin
Vana Pingviin
Postitusi: 923
Liitunud: 01.12.2006, 23:40

kõlari sagedusfiltri arvutus

Postitus Postitas olavsu1 »

Tere, kirjutasin enda vajaduste rahuldamiseks spetsprogrammi.

Programm arvutab kahe ja kolme ribaliste kõlarite LC sagedusfiltreid.

Kasutajalt küsitakse valjuhääldite takistusi oomides ja filtri tüüpi mida soovitakse luua. Programm annab filtri tegemiseks vajaliku komponentide nimekirja koos nende suurustega mH ja µF.

siit altpoolt saab nii programmi kui selle koodi.

Pilt

Teine koht, kust saab kui esimeses enam pole.

Loomulikult on soov programmi täiendada nii et arvutuse tulemused kirjutatakse faili koos vastava joonise pildiga. :)

arvamused on oodatud.
Viimati muutis olavsu1, 06.06.2009, 18:32, muudetud 1 kord kokku.
mil
Pingviini aktivist
Pingviini aktivist
Postitusi: 111
Liitunud: 01.01.2008, 19:37

Postitus Postitas mil »

proovisin, töötas. aga mulle, kel on teemast mõningad teadmised, jäi programmi kasutades esialgu arusaamatuks see järkude teema. Kui sa ise kasutad ja tead, siis pole nagu probleemi, aga teistele jagades võiks äkki mingi selgituse lisada.
olavsu1
Vana Pingviin
Vana Pingviin
Postitusi: 923
Liitunud: 01.12.2006, 23:40

Postitus Postitas olavsu1 »

mil kirjutas:proovisin, töötas. aga mulle, kel on teemast mõningad teadmised, jäi programmi kasutades esialgu arusaamatuks see järkude teema. Kui sa ise kasutad ja tead, siis pole nagu probleemi, aga teistele jagades võiks äkki mingi selgituse lisada.
see ongi see asi miks tahaks asja nii kaugele, et programm teeks faili kus joonis ja komponentide tabel.

erinevat järku filtrite joonised on sellised:

Pilt

siin toodud tähistused ei lähe programmi antavate tähistustega kokku. originaal tähistused on vaid koodis, valemite kommentaarides.
illukas
Vana Pingviin
Vana Pingviin
Postitusi: 2036
Liitunud: 24.10.2006, 21:35

Postitus Postitas illukas »

mul natuke loll küsimus või tähelepanek
Ei ole programmi uurinud, kuid kas programm ei arvesta kõlarite sageduskarakteristikuid... Filter filtriks, kui kõlar ei suuda seda sagedust mängida siis ei ole ka filtrist seal tolku...
olavsu1
Vana Pingviin
Vana Pingviin
Postitusi: 923
Liitunud: 01.12.2006, 23:40

Postitus Postitas olavsu1 »

kuid kas programm ei arvesta kõlarite sageduskarakteristikuid...
kõlar = valjuhääldi või valjuhääldid koos kasti või kõlalauaga.

valjuhääldite sageduskarakteristikuid arvestab küll. madalsagedusel on piiriks 500Hz ja kõrgsageduse algamine on seatud 5000Hz peale.
woofri puhul küsitakse soovitud piiri.
kaheribalistel on madalsageduse piiriks 5000Hz milleni mängivad välja kõik Visatoni kataloogist leitud madalsagedus valjuhääldid. ja kõrgsageduse omad suudavad juba 5000Hz piirist madalamalt alustada.

auku ei tohiks tekkida. augud võivad tulla kui saad kuskilt kätte vene filtri ja ühendad sinna lääne valjuhääldid

kasti mõõtusid tõesti ei arvesta. kasti teed ikka bassi valjuhääldi järgi sellel passis kirjas mitme liitrisesse kasti see käib.
olen Troll ja ootan pingviin.org konto sulgemist.
illukas
Vana Pingviin
Vana Pingviin
Postitusi: 2036
Liitunud: 24.10.2006, 21:35

Postitus Postitas illukas »

valjuhääldi kui üksiku elemendi mängimisulatust mõtlesin jah
olavsu1
Vana Pingviin
Vana Pingviin
Postitusi: 923
Liitunud: 01.12.2006, 23:40

Postitus Postitas olavsu1 »

uuendatud. hot.ee lingi pealt saab uue versiooni

http://www.hot.ee/olavsu1/filter-0.3a.tar.bz2

juurde tuli madal- ja kesksagedus valjuhääldite, nende filtritega sobitamiseks RC jadaahela arvutus. milleks küsitakse näivtakistuse |Z| väärtust 10000Hz juures. see võib muutuda vastavalt parandus ettepanekutele.
mainitud RC-jadaahel on kohe peale filtrit rööbiti vajuhääldiga.
olen Troll ja ootan pingviin.org konto sulgemist.
-ordi-
Vana Pingviin
Vana Pingviin
Postitusi: 821
Liitunud: 13.12.2008, 21:22

Postitus Postitas -ordi- »

Päris huvitav, kaua sellise proge valmistamine aega võttis? Enamus koodist on põhiliselt valemid, oled seda vahepeal täiustanud? Koodi joondus on ka väga kahtlane aga muidu tubli töö.
olavsu1
Vana Pingviin
Vana Pingviin
Postitusi: 923
Liitunud: 01.12.2006, 23:40

Postitus Postitas olavsu1 »

http://www.hot.ee/olavsu1/filter-0.3.tar.gz

Hetkel viimane versioon sellest. Nüüd kirjutatakse arvutustulemused faili.
kaua sellise proge valmistamine aega võttis?
Kirjutamisele kulusid mõned minutid, Palju rohkem aega kulus välja uurimisele kuidas kirjutada. Ma olen programmeerimises võhik...
Enamus koodist on põhiliselt valemid, oled seda vahepeal täiustanud?
Ikka, vastavalt vihastele mahategevatele kommentaaridele.

Nüüd tuleks uurima hakata kuidas graafilist rakendust teha...
olen Troll ja ootan pingviin.org konto sulgemist.
Kasutaja avatar
andreas
Pingviini aktivist
Pingviini aktivist
Postitusi: 112
Liitunud: 26.02.2008, 13:03

Postitus Postitas andreas »

Surkisin seda koodi sutsu kiiremaks.

Kood: Vali kõik

//============================================================================
// 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 <cmath>
#include <fstream>
#include <sstream>
using namespace std;


int main() {
  short Spk, K;
  double  Lv, Lvm, Lvkes, Ck, Ckm, Ckkes, Z, Zm, Zkes, Fdw, a1, a2, a3, Rk, Rm,
          Rkes, L1, L2, L3, L4, L5, L6, C1, C2, C3 ,C4 ,C5, C6,
          //põhiühikute teisenduse jaoks.
          Cp = 1000000, // F -> µF
          Lp = 1000;    // H -> mH
  stringstream sstr;
    
  /*sagedused*/
  short 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 < 1) || (Spk > 3))
    cerr << "Mõtle ikka järgi, mis sa teha tahtsid." << endl;
  else if(Spk == 2)
  {
    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)
    {
      /*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
      sstr << "Kondensaatorid - Capasitors" <<endl;
      sstr << endl;
      sstr << " C1 = " << C1*Cp <<" µF" << endl;
      sstr << endl;
      sstr << "Induktiivpoolid - Coils" << endl;
      sstr << endl;
      sstr << " L1 = " << L1*Lp <<" mH" << endl;
      sstr << endl;
      sstr <<"Selles filtris on L1 jadaühenduses madalsagedus valjuhääldiga ja"<< endl;
      sstr <<"C1 jadaühenduses kõrgsagedus valjuhäädiga."<< endl;
      //kompensatsioon
      Lvm = Zm/(2*M_PI*10000);
      Ckm = Lvm/(Rm*Rm);
      sstr << "madalsageduse kompensatsioon - RC jadaahel rööbiti madalsagedus valjuhääldiga" << endl;
      sstr << endl;
      sstr << "R =" << Rm <<" Ω"<< endl;
      sstr << "C" << Ckm*Cp <<" µF, põhiühikutes  " << Ckm <<" F"<< endl;
      cout << sstr.str();
      ofstream myfile ("2ribakõlar_1järk.txt");
      if (myfile.is_open())
      {
	myfile << sstr.str(); 
	myfile.close();
	cout << "Tulemus kirjutati faili 2ribakõlar_1järk.txt" << endl;
      }
      else
	cerr << "Ei saa faili kirjutada" << endl;
    }//esimest järku filter
    else if(K == 2)
    {
      /*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
      sstr << "Kondensaatorid - Capasitors" <<endl;
      sstr << endl;
      sstr << " C1 = " << C1*Cp <<" µF" << endl;
      sstr << " C2 = " << C2*Cp <<" µF" << endl;
      sstr << endl;
      sstr << "Induktiivpoolid - Coils" << endl;
      sstr << endl;
      sstr << " L1 = " << L1*Lp <<" mH" << endl;
      sstr << " L2 = " << L2*Lp <<" mH" << endl;
      //kompensatsioon
      Lvm = Zm/(2*M_PI*10000);
      Ckm = Lvm/(Rm*Rm);
      sstr << "madalsageduse kompensatsioon - RC jadaahel rööbiti madalsagedus valjuhääldiga" << endl;
      sstr << endl;
      sstr << "R = " << Rm <<" Ω"<< endl;
      sstr << "C = " << Ckm*Cp <<" µF, põhiühikutes  " << Ckm <<" F"<< endl;
      cout << sstr.str();
      ofstream myfile ("2ribakõlar_2järk.txt");
      if (myfile.is_open())
      {
	myfile << sstr.str();
	myfile.close();
	cout << "Tulemus kirjutati faili 2ribakõlar_2järk.txt" << endl;
      }
      else
	cerr << "Ei saa faili kirjutada"<< endl;
    }//teist järku filter
    else if(K == 3)
    {
      /*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
      sstr << "Kondensaatorid - Capasitors" <<endl;
      sstr << endl;
      sstr << " C1 = " << C1*Cp <<" µF" << endl;
      sstr << " C2 = " << C2*Cp <<" µF" << endl;
      sstr << " C3 = " << C3*Cp <<" µF" << endl;
      sstr << endl;
      sstr << "Induktiivpoolid - Coils" << endl;
      sstr << endl;
      sstr << " L1 = " << L1*Lp <<" mH" << endl;
      sstr << " L2 = " << L2*Lp <<" mH" << endl;
      sstr << " L3 = " << L3*Lp <<" mH" << endl;
      //kompensatsioon
      Lvm = Zm/(2*M_PI*10000);
      Ckm = Lvm/(Rm*Rm);
      sstr << "madalsageduse kompensatsioon - RC jadaahel rööbiti madalsagedus valjuhääldiga" << endl;
      sstr << endl;
      sstr << "R = " << Rm <<" Ω"<< endl;
      sstr << "C = " << Ckm*Cp <<" µF, põhiühikutes  " << Ckm <<" F"<< endl;
      cout << sstr.str();
      ofstream myfile ("2ribakõlar_3järk.txt");
      if (myfile.is_open())
      {
	myfile << sstr.str();
	myfile.close();
	cout << "Tulemus kirjutati faili 2ribakõlar_3järk.txt";                
      }
      else
	cerr <<"Ei saa falili kirjutada" << endl;
      return 0;
    }//kolmandat järku filter
  }//kaheribakõlar
  else if(Spk == 3)
  {
    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)
    {
      /*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
      sstr << "Kondensaatorid - Capasitors" <<endl;
      sstr << endl;
      sstr << " C1 = " << C1*Cp <<" µF" << endl;
      sstr << " C2 = " << C2*Cp <<" µF" << endl;
      sstr << endl;
      sstr << "Induktiivpoolid - Coils" << endl;
      sstr << endl;
      sstr << " L1 = " << L1*Lp <<" mH" << endl;
      sstr << " 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);
      sstr << "madalsageduse kompensatsioon - RC jadaahel rööbiti madalsagedus valjuhääldiga" << endl;
      sstr << endl;
      sstr << "R = " << Rm <<" Ω"<< endl;
      sstr << "C = " << Ckm*Cp <<" µf, põhiühikutes  " << Ckm <<" F"<< endl;
      sstr << "kesksageduse kompensatsioon - RC jadaahel rööbiti kesksagedus valjuhääldiga" << endl;
      sstr << endl;
      sstr << "R = " << Rkes <<" Ω"<< endl;
      sstr << "C = " << Ckkes*Cp <<" µF, põhiühikutes  " << Ckkes <<" F"<< endl;
      cout << sstr.str();
      ofstream myfile ("3ribakõlar_1järk.txt");
      if (myfile.is_open())
      {
	myfile << sstr.str();
	myfile.close();
	cout << "Tulemus kirjutati faili 3ribakõlar_1järk.txt" << endl;                
      }
      else
	cerr <<"Ei saa falili kirjutada" << endl;
    }//esimest järku filter
    else if(K == 2)
    {
      /*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
      sstr << "Kondensaatorid - Capasitors" <<endl;
      sstr << endl;
      sstr << " C1 = " << C1*Cp <<" µF" << endl;
      sstr << " C2 = " << C2*Cp <<" µF" << endl;
      sstr << " C3 = " << C3*Cp <<" µF" << endl;
      sstr << " C4 = " << C4*Cp <<" µF" << endl;
      sstr << endl;
      sstr << "Induktiivpoolid - Coils" << endl;
      sstr << endl;
      sstr << " L1 = " << L1*Lp <<" mH" << endl;
      sstr << " L2 = " << L2*Lp <<" mH" << endl;
      sstr << " L3 = " << L3*Lp <<" mH" << endl;
      sstr << " 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);
      sstr << "madalsageduse kompensatsioon - RC jadaahel rööbiti madalsagedus valjuhääldiga" << endl;
      sstr << endl;
      sstr << "R = " << Rm <<" Ω"<< endl;
      sstr << "C = " << Ckm*Cp <<" µF, põhiühikutes  " << Ckm <<" F"<< endl;
      sstr << "kesksageduse kompensatsioon - RC jadaahel rööbiti kesksagedus valjuhääldiga" << endl;
      sstr << endl;
      sstr << "R = " << Rkes <<" Ω"<< endl;
      sstr << "C = " << Ckkes*Cp <<" µF, põhiühikutes  " << Ckkes <<" F"<< endl;
      cout << sstr.str();
      ofstream myfile ("3ribakõlar_2järk.txt");
      if (myfile.is_open())
      {
	myfile << sstr.str();
	myfile.close();
	cout << "Tulemus kirjutati faili 3ribakõlar_2järk.txt" << endl;                
      }
      else
	cerr << "Ei saa falili kirjutada" << endl;
    }//teist järku filter
    else if(K == 3)
    {
      /*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
      sstr << "Kondensaatorid - Capasitors" <<endl;
      sstr << endl;
      sstr << " C1 = " << C1*Cp <<" µF" << endl;
      sstr << " C2 = " << C2*Cp <<" µF" << endl;
      sstr << " C3 = " << C3*Cp <<" µF" << endl;
      sstr << " C4 = " << C4*Cp <<" µF" << endl;
      sstr << " C5 = " << C5*Cp <<" µF" << endl;
      sstr << " C6 = " << C6*Cp <<" µF" << endl;
      sstr << endl;
      sstr << "Induktiivpoolid - Coils" << endl;
      sstr << endl;
      sstr << " L1 = " << L1*Lp <<" mH" << endl;
      sstr << " L2 = " << L2*Lp <<" mH" << endl;
      sstr << " L3 = " << L3*Lp <<" mH" << endl;
      sstr << " L4 = " << L4*Lp <<" mH" << endl;
      sstr << " L5 = " << L5*Lp <<" mH" << endl;
      sstr << " 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);
      sstr << "madalsageduse kompensatsioon - RC jadaahel rööbiti madalsagedus valjuhääldiga" << endl;
      sstr << endl;
      sstr << "R = " << Rm <<" Ω"<< endl;
      sstr << "C = " << Ckm*Cp <<" µf, põhiühikutes  " << Ckm << " F"<< endl;
      sstr << "kesksageduse kompensatsioon - RC jadaahel rööbiti kesksagedus valjuhääldiga" << endl;
      sstr << endl;
      sstr << "R = " << Rkes <<" Ω"<< endl;
      sstr << "C = " << Ckkes*Cp <<" µF, põhiühikutes  " << Ckkes << " F"<< endl;
      cout << sstr.str();
      ofstream myfile ("3ribakõlar_3järk.txt");
      if (myfile.is_open())
      {
	myfile << sstr.str();
	myfile.close();
	cout << "Tulemus kirjutati faili 3ribakõlar_3järk.txt" << endl;
      }
      else
	cerr <<"Ei saa falili kirjutada" << endl;
    }//kolmandat järku filter  
  }//kolmeribakõlar
  else if(Spk == 1)
  {
    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;
    sstr << "Kondensaatorid - Capasitors" <<endl;
    sstr << endl;
    sstr << " C1 = " << C1*Cp <<" µF" << endl;
    sstr << endl;
    sstr << "Induktiivpoolid - Coils" << endl;
    sstr << endl;
    sstr << " L1 = " << L1*Lp <<" mH" << endl;
    sstr << " L2 = " << L2*Lp <<" mH" << endl;
    sstr << endl;
    sstr << "Kompensatsioon - RC jadaahel rööbiti valjuhääldiga" << endl;
    sstr << endl;
    sstr << "R = " << Rm <<" Ω"<< endl;
    sstr << "C = " << Ck*Cp <<" µF, põhiühikutes  " << Ck <<" F"<< endl;
    cout << sstr.str();
    
    ofstream myfile ("woofer.txt");
    if (myfile.is_open())
    {
      myfile << sstr.str();
      myfile.close();
      cout << "Tulemused salvestati faili woofer.txt" << endl;
    }
    else
      cout << "Ei saa faili kirjutada"<< endl;
  }
  return 0;
}
Kui K on kaks, siis ei pea kontrollima, ega ta järsku viis ei ole. Täisarvude jaoks kasuta täisarvutüüpi, muutujatel võiksid olla pikemad nimed kui kaks-kolm tähte.
-ordi-
Vana Pingviin
Vana Pingviin
Postitusi: 821
Liitunud: 13.12.2008, 21:22

Postitus Postitas -ordi- »

Joondasin koodi, treppimise aste on nüüd 6.

http://pastebin.com/VJeFNe6k

Arvutused toimivad hetkega, kui tsükleid ega muid mittelineaarseid algoritme ei ole, siis pole mõtet muretseda kiiruse pärast (et seda optimeerida).
olavsu1
Vana Pingviin
Vana Pingviin
Postitusi: 923
Liitunud: 01.12.2006, 23:40

Postitus Postitas olavsu1 »

tore, aga ei toimi.

Kood: Vali kõik

/home/olavsu1/filter3/src/main.cc:25: error: aggregate ‘std::stringstream sstr’ has incomplete type and cannot be defined
mis puutub muutujate nimedesse siis need on pärilt elektriskeemidelt ja ei leia et need peaks pikemad olema.
olen Troll ja ootan pingviin.org konto sulgemist.
Kasutaja avatar
andreas
Pingviini aktivist
Pingviini aktivist
Postitusi: 112
Liitunud: 26.02.2008, 13:03

Postitus Postitas andreas »

kas kindlasti on selline rida olemas:

Kood: Vali kõik

#include <sstream> 
olavsu1
Vana Pingviin
Vana Pingviin
Postitusi: 923
Liitunud: 01.12.2006, 23:40

Postitus Postitas olavsu1 »

andreas kirjutas:kas kindlasti on selline rida olemas:

Kood: Vali kõik

#include <sstream> 
lisatud, ja toimib
Vasta