Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    come funziona lo spettrogramma di un suono?

    perche' se ho una onda sonora poi nello spettrogramma mi appaiono diverse frequenze per un determinato istante t? Facendo la trasformazione di Fourier dovrei averne una sola o sbaglio?
    Walk fast, chew slowly.
    "We used students as subjects because rats are expensive and you get too attached to them"

  2. #2
    Utente bannato
    Registrato dal
    Feb 2004
    Messaggi
    33
    cosi sui due piedi non saprei risponderti, ma hai considerato le spurie che si sommano alla frequenza?

  3. #3

    Re: come funziona lo spettrogramma di un suono?

    Originariamente inviato da weatherman
    perche' se ho una onda sonora poi nello spettrogramma mi appaiono diverse frequenze per un determinato istante t? Facendo la trasformazione di Fourier dovrei averne una sola o sbaglio?
    No, se tu avessi un suono "puro", ovvero un'onda acustica perfettamente sinusoidale allora sì. Tieni presente che i suoni puri sono fastidiosissimi (per farti capire, un suono puro può essere il rumore di un cicalino o di una radiosveglia).

    Ora, se in quest'onda sonora tu hai registrato, per fare un esempio, un flauto che suona un La della 3° ottava (frequenza base: 440 Hz), troverai tutte armoniche con frequenze multiple di 440 Hz (880 Hz, 1.32 kHz, 1.76 kHz, 2.2 kHz, eccetera).

    Se poi registri il suono di un organo che esegue degli accordi, avrai tante note, i cui contributi si sommeranno.

    Poi, chiaramente, registrerai anche il rumore di fondo, ed allora troverai un certo numero di "frequenze predominanti", mentre alle altre frequenze troverai valori di ampiezza (o densità di ampiezza, a seconda della scala che usi) decisamente inferiori.

    Spero di essere stato utile.

  4. #4

    Re: Re: come funziona lo spettrogramma di un suono?

    Originariamente inviato da panta1978
    No, se tu avessi un suono "puro", ovvero un'onda acustica perfettamente sinusoidale allora sì. Tieni presente che i suoni puri sono fastidiosissimi (per farti capire, un suono puro può essere il rumore di un cicalino o di una radiosveglia).

    Ora, se in quest'onda sonora tu hai registrato, per fare un esempio, un flauto che suona un La della 3° ottava (frequenza base: 440 Hz), troverai tutte armoniche con frequenze multiple di 440 Hz (880 Hz, 1.32 kHz, 1.76 kHz, 2.2 kHz, eccetera).

    Se poi registri il suono di un organo che esegue degli accordi, avrai tante note, i cui contributi si sommeranno.

    Poi, chiaramente, registrerai anche il rumore di fondo, ed allora troverai un certo numero di "frequenze predominanti", mentre alle altre frequenze troverai valori di ampiezza (o densità di ampiezza, a seconda della scala che usi) decisamente inferiori.

    Spero di essere stato utile.
    grazie ora la storia e' un po' piu' chiara. Sai per caso anche come, dato un segnale, si trovano le varie frequenze che lo compongono (per andare quindi a formare lo spettrogramma)?
    Walk fast, chew slowly.
    "We used students as subjects because rats are expensive and you get too attached to them"

  5. #5

    Re: Re: Re: come funziona lo spettrogramma di un suono?

    Originariamente inviato da weatherman
    grazie ora la storia e' un po' piu' chiara. Sai per caso anche come, dato un segnale, si trovano le varie frequenze che lo compongono (per andare quindi a formare lo spettrogramma)?
    Esistono tanti programmi scientifici ad hoc. Anche excel lo fa installando le opportune librerie, ma è scomodissimo, sconsiglio vivamente!
    Io (è il mio pane quotidiano, 'sta roba) utilizzo un software commerciale chiamto Matlab. Molto potente, in grado di fare un pacco di cose, dall'analisi dei segnali, alla simulazione di sistemi elettrici, meccanici, termici... Ovviamente ha un costo esorbitante che un privato non può permettersi!

    Tra gli emuli open-source segnalo Octave, che ha molte meno toolboxes e funzionalità, ma è gratuito! Per fare le fft va benissimo. Esiste sia per Win che per Mac che per Linux.

    Una volta che lo installi, devi crearti un programmino che salvi in un file .m (che puoi editare col blocco note o altro software simile, es: Notepad+), poi lo lanci da linea di comando.

    Se hai bisogno di altre info, più che volentieri.

  6. #6

    Re: Re: Re: Re: come funziona lo spettrogramma di un suono?

    Originariamente inviato da panta1978
    Esistono tanti programmi scientifici ad hoc. Anche excel lo fa installando le opportune librerie, ma è scomodissimo, sconsiglio vivamente!
    Io (è il mio pane quotidiano, 'sta roba) utilizzo un software commerciale chiamto Matlab. Molto potente, in grado di fare un pacco di cose, dall'analisi dei segnali, alla simulazione di sistemi elettrici, meccanici, termici... Ovviamente ha un costo esorbitante che un privato non può permettersi!

    Tra gli emuli open-source segnalo Octave, che ha molte meno toolboxes e funzionalità, ma è gratuito! Per fare le fft va benissimo. Esiste sia per Win che per Mac che per Linux.

    Una volta che lo installi, devi crearti un programmino che salvi in un file .m (che puoi editare col blocco note o altro software simile, es: Notepad+), poi lo lanci da linea di comando.

    Se hai bisogno di altre info, più che volentieri.
    ok, matlab lo conosco. Ma non ho ancora capito bene: facendo una ft,fft,stft o quant'altro ho comunque solo la frequenza fondamentale o sbaglio? Quali sono le operazioni matematiche che mi permettono di trovare le altre frequenze?
    Walk fast, chew slowly.
    "We used students as subjects because rats are expensive and you get too attached to them"

  7. #7
    Utente di HTML.it L'avatar di clax
    Registrato dal
    Sep 2000
    Messaggi
    75
    se ben ricordo, la fft di matlab trova solo le ampiezze e forse gli sfasamenti di ciascuna armonica (e le mette in un vettore), mentre le frequenze sono da inserire in un altro vettore col quale poi verrà "plottato" assieme per avere il diagramma ampiezze-frequenze. per quanto riguarda la frequenza principale, mi ricordo che nel caso di un segnale campionato aveva un legame con il tempo totale di campionamento e con la frequenza di campionamento, però non mi ricordo in che termini era.
    La justicia dónde está, crucificada en los altares del capital

  8. #8

    Re: Re: Re: Re: Re: come funziona lo spettrogramma di un suono?

    Originariamente inviato da weatherman
    ok, matlab lo conosco. Ma non ho ancora capito bene: facendo una ft,fft,stft o quant'altro ho comunque solo la frequenza fondamentale o sbaglio? Quali sono le operazioni matematiche che mi permettono di trovare le altre frequenze?
    No. Usualmente, una fft ha una sintassi del genere:
    codice:
    Y = fft(X,N)
    In sostanza, eseguo una fft su N nodi alla funzione X. Molto spesso, per velocizzare l'algoritmo, N è una potenza del due o comunque un numero ben divisibile. Per intenderci, N=1024 è ottimale, N=1000 buono, N=1100 così così, N=1097 è male.

    Ciò significa che, se usi N nodi, dividi il tuo spettro di frequenze in N/2 parti.
    Così, se mettiamo per semplicità, tu hai fatto un campionamento a 50.000 Hz, e poni N=1000, otterrai i valori della fft per i seguenti valori di frequenza:
    0 Hz - 50 Hz - 100 Hz - 150 Hz - 200 Hz - 250 Hz - ....... - 25.000 Hz (per il criterio di Shannon se campioni ad una frequenza fs, la banda massima osservabile è fs/2).

    Per ogni valore della frequenza ottieni un numero complesso, il cui valore assoluto rappresenta la densità di ampiezza del segnale, e la fase... la fase del segnale.

    Per quanto riguarda l'algoritmo utilizzato, la trasformata di Fourier classica moltiplica la funzione f(t) per delle funzioni sin(wt) e cos(wt) con frequenze pari alle frequenze che si vogliono osservare e, calcolandone l'integrale, trova i valori rispettivamente della parte reale e della parte immaginaria della trasformata di Fourier.

    L'algoritmo fft (Fast Fourier Transform) è più complesso, e sfrutta delle simmetrie della funzione per arrivare allo stesso risultato della funzione fft con meno calcoli (N*logN contro N^2). In pratica, divide la funzione originaria in tanti "pezzettini", e li calcola separatamente, poi unisce i risultati.

    PS: ricordati che la fft ti fornisce la densità di ampiezza A del segnale. Se vuoi passare all'ampiezza a, devi fare il seguente calcolino:

    a = sqrt(A)/(N/2)

  9. #9
    Utente di HTML.it L'avatar di Angioletto
    Registrato dal
    Jan 2004
    Messaggi
    1,246
    lo 0,5 % del rumore che ascoltate nel passaggio da una stazione radio all'altra rappresenta il residuo del suono generato dal big-bang
    Per liquidare un popolo si comincia con il privarli della memoria.Si distruggono i loro libri, la loro cultura, la loro storia. E qualcun’ altro scrive loro altri libri, li fornisce di un’altra cultura, inventa per loro un’altra storia. (Milan Kundera)

  10. #10

    Re: Re: Re: Re: Re: Re: come funziona lo spettrogramma di un suono?

    Originariamente inviato da panta1978
    No. Usualmente, una fft ha una sintassi del genere:
    codice:
    Y = fft(X,N)
    In sostanza, eseguo una fft su N nodi alla funzione X. Molto spesso, per velocizzare l'algoritmo, N è una potenza del due o comunque un numero ben divisibile. Per intenderci, N=1024 è ottimale, N=1000 buono, N=1100 così così, N=1097 è male.

    Ciò significa che, se usi N nodi, dividi il tuo spettro di frequenze in N/2 parti.
    Così, se mettiamo per semplicità, tu hai fatto un campionamento a 50.000 Hz, e poni N=1000, otterrai i valori della fft per i seguenti valori di frequenza:
    0 Hz - 50 Hz - 100 Hz - 150 Hz - 200 Hz - 250 Hz - ....... - 25.000 Hz (per il criterio di Shannon se campioni ad una frequenza fs, la banda massima osservabile è fs/2).

    Per ogni valore della frequenza ottieni un numero complesso, il cui valore assoluto rappresenta la densità di ampiezza del segnale, e la fase... la fase del segnale.

    Per quanto riguarda l'algoritmo utilizzato, la trasformata di Fourier classica moltiplica la funzione f(t) per delle funzioni sin(wt) e cos(wt) con frequenze pari alle frequenze che si vogliono osservare e, calcolandone l'integrale, trova i valori rispettivamente della parte reale e della parte immaginaria della trasformata di Fourier.

    L'algoritmo fft (Fast Fourier Transform) è più complesso, e sfrutta delle simmetrie della funzione per arrivare allo stesso risultato della funzione fft con meno calcoli (N*logN contro N^2). In pratica, divide la funzione originaria in tanti "pezzettini", e li calcola separatamente, poi unisce i risultati.

    PS: ricordati che la fft ti fornisce la densità di ampiezza A del segnale. Se vuoi passare all'ampiezza a, devi fare il seguente calcolino:

    a = sqrt(A)/(N/2)
    va bene, penso di aver capito piu' o meno, ora vedo un po' se riesco a combinare qualcosa con matlab
    Walk fast, chew slowly.
    "We used students as subjects because rats are expensive and you get too attached to them"

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 © 2024 vBulletin Solutions, Inc. All rights reserved.