Portaal Portaal Pingviini veeb foorumi pealeht
  Viki  |  IRC  |  Otsing  |  Küsimused ja vastused  |  Profiil  |  Privaatsõnumite vaatamiseks logi sisse  | Logi sisse või Registreeru
<empty>
Vaata järgmist teemat
Vaata eelmist teemat

Postita uus teemaVasta teemale
Autor Sõnum
olavsu1


Vana Pingviin
Vana Pingviin


Vanus: 48
Liitunud: 02.12.2006
Postitused: 923

Distributsioon: ubuntu, mandriva
estonia.gif
postituspostitatud: 05.06.2009, 22:05  postituse pealkiri:  kõlari sagedusfiltri arvutus  

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.

Image

Teine koht, kust saab kui esimeses enam pole.

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

arvamused on oodatud.




Viimati muutis olavsu1 06.06.2009, 18:32; muudetud 1 kord
mil
Pingviini aktivist
Pingviini aktivist


Vanus: 36
Liitunud: 01.01.2008
Postitused: 111
Asukoht: Kose
Distributsioon: Hoolealustena kari buntusid
estonia.gif
postituspostitatud: 06.06.2009, 12:32  postituse pealkiri:  (teema puudub)  

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


Vanus: 48
Liitunud: 02.12.2006
Postitused: 923

Distributsioon: ubuntu, mandriva
estonia.gif
postituspostitatud: 06.06.2009, 18:00  postituse pealkiri:  (teema puudub)  

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:

Image

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


Vanus: 43
Liitunud: 24.10.2006
Postitused: 2036


norway.gif
postituspostitatud: 07.06.2009, 14:03  postituse pealkiri:  (teema puudub)  

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


Vanus: 48
Liitunud: 02.12.2006
Postitused: 923

Distributsioon: ubuntu, mandriva
estonia.gif
postituspostitatud: 07.06.2009, 16:39  postituse pealkiri:  (teema puudub)  

Tsitaat:
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


Vanus: 43
Liitunud: 24.10.2006
Postitused: 2036


norway.gif
postituspostitatud: 07.06.2009, 21:02  postituse pealkiri:  (teema puudub)  

valjuhääldi kui üksiku elemendi mängimisulatust mõtlesin jah


olavsu1


Vana Pingviin
Vana Pingviin


Vanus: 48
Liitunud: 02.12.2006
Postitused: 923

Distributsioon: ubuntu, mandriva
estonia.gif
postituspostitatud: 10.06.2009, 18:13  postituse pealkiri:  (teema puudub)  

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


Vanus: 32
Liitunud: 13.12.2008
Postitused: 821

Distributsioon: GNU/Linux
estonia.gif
postituspostitatud: 10.12.2009, 23:26  postituse pealkiri:  (teema puudub)  

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


Vanus: 48
Liitunud: 02.12.2006
Postitused: 923

Distributsioon: ubuntu, mandriva
estonia.gif
postituspostitatud: 17.04.2010, 15:49  postituse pealkiri:  (teema puudub)  

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

Hetkel viimane versioon sellest. Nüüd kirjutatakse arvutustulemused faili.

Tsitaat:
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...

Tsitaat:
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.

andreas
Pingviini aktivist
Pingviini aktivist


Vanus: 30
Liitunud: 26.02.2008
Postitused: 112
Asukoht: Raasiku
Distributsioon: Mageia Cauldron
estonia.gif
postituspostitatud: 17.04.2010, 18:52  postituse pealkiri:  (teema puudub)  

Surkisin seda koodi sutsu kiiremaks.
Kood:
//============================================================================
// 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


Vanus: 32
Liitunud: 13.12.2008
Postitused: 821

Distributsioon: GNU/Linux
estonia.gif
postituspostitatud: 17.04.2010, 19:19  postituse pealkiri:  (teema puudub)  

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


Vanus: 48
Liitunud: 02.12.2006
Postitused: 923

Distributsioon: ubuntu, mandriva
estonia.gif
postituspostitatud: 17.04.2010, 19:51  postituse pealkiri:  (teema puudub)  

tore, aga ei toimi.

Kood:
/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.

andreas
Pingviini aktivist
Pingviini aktivist


Vanus: 30
Liitunud: 26.02.2008
Postitused: 112
Asukoht: Raasiku
Distributsioon: Mageia Cauldron
estonia.gif
postituspostitatud: 17.04.2010, 20:18  postituse pealkiri:  (teema puudub)  

kas kindlasti on selline rida olemas:
Kood:
#include <sstream>


olavsu1


Vana Pingviin
Vana Pingviin


Vanus: 48
Liitunud: 02.12.2006
Postitused: 923

Distributsioon: ubuntu, mandriva
estonia.gif
postituspostitatud: 17.04.2010, 21:28  postituse pealkiri:  (teema puudub)  

andreas kirjutas:
kas kindlasti on selline rida olemas:
Kood:
#include <sstream>


lisatud, ja toimib


Näita (aja järgi):      
Postita uus teemaVasta teemale


Vaata järgmist teemat
Vaata eelmist teemat
Powered by phpBB2 Plus based on phpBB © 2001/7 phpBB Group