Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2001
    Messaggi
    107

    [c++] unita' immaginaria

    ciao

    come si definisce la "i" dei numeri complessi

    i=sqrt(-1);

    mi da un numero indefinito..

    ciao e grazie

  2. #2
    codice:
    #include <iostream>
    #include <complex>
    
    using namespace std;
    
    int main()
    {
    	complex<double> a = -1;
    	cout << sqrt(a) << endl;
    	return 0;
    }

  3. #3
    Scusasse, non avevo letto bene la domanda


    codice:
    const complex<double> i (0,1);

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2001
    Messaggi
    107
    ciao
    grazie per la tua risposta!!!
    ma non so come usarla, io devo fare una cosa del genere:

    exp(-i*2*pi)

    ...???

  5. #5
    codice:
    #include <complex>
    #include <iostream>
    
    using namespace std;
    
    typedef complex<double> comp;
    
    int main()
    {
    	const comp i(0,1);
    	const comp pi(3.1415926535897932384626433832795);	
    	cout << exp (-i*comp(2.0)*pi) << endl;
    	return 0;
    }

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2001
    Messaggi
    107
    scusa se continuo ad approfittare di te, devo fare questa assegnazione:

    summ_inizio = summ_inizio + ((comp)frame_vett_new[ind_summ_1+748])*exp(-j*comp(2,0)*pig*(k_summ_1-comp(1,0))*((comp)ind_summ_1)*((comp)dim_array_fft _1));

    dove

    const comp summ_inizio(0);
    float frame_vett[16384];
    const comp pig(3.1415926535897932384626433832795);
    const comp k_summ_1(1);
    float dim_array_fft_1 = (float) 1/16384;
    e ind_summ_1 e' l'indice del ciclo for in cui mi trovo

    cosa sbaglio???
    grazie mille!

  7. #7
    Scusami, ma non riesco bene a capire il tuo problema dal punto di vista semantico.

    Dal punto di vista sintattico

    codice:
    #include <complex>
    #include <iostream>
    
    using namespace std;
    typedef complex<double> comp;
    
    
    int main()
    {
    
    	comp summ_inizio(0); 
    	double frame_vett[16384], frame_vett_new[16384]; 
    	const comp pig(3.1415926535897932384626433832795); 
    	const comp k_summ_1(1); 
    	const comp j(0,1);
    	double dim_array_fft_1 = 1.0/16384.0; 
    
    	int ind_summ_1 = 1;
    
    	summ_inizio = summ_inizio + (
    		comp(frame_vett_new[ind_summ_1+748]) * 
    		exp(
    			-j * comp(2.0,0.0) *
    			pig *
    			(k_summ_1 - comp(1,0)) *
    			comp(static_cast<double>(ind_summ_1)) *
    			comp(dim_array_fft_1)
    		)
    	); 
    
    
    	return 0;
    
    }
    se dichiari const summ_inizio, non puoi più assegnargli dei valori, e inoltre occhio ai cast...

    Ciò che ho postato ora, è sintatticamente corretto, vedi se riesci ad adattarlo a tuo uso.

  8. #8
    Utente di HTML.it
    Registrato dal
    Nov 2001
    Messaggi
    107

    perfetto

    grazie mille!!!
    cosi' funziona come mi serviva
    ciao

    PS: il tutto perche' stavo cercando di farmi una fft tutta mia.. e perche' sto imparando (da poco) il c++

  9. #9
    Ingegnere elettronico?

  10. #10
    Utente di HTML.it
    Registrato dal
    Nov 2001
    Messaggi
    107
    esattamente

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.