Analysis number from dtmf sound
8 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
hello, i have a wav file, which use dtmf i do spectrogram on the file and i receive 10 amplitude peak how can i return the 2 frequency of each peak (high and low frequency)
2 Commenti
Risposta accettata
Star Strider
il 17 Set 2014
You did not post your data so I cannot be specific. You can get the frequency and time output as vectors from spectrogram:
- [S,F,T] = spectrogram(...) returns a vector of frequencies, F , and a vector of times, T , at which the spectrogram is computed. F has length equal to the number of rows of S . T has length k (defined above) and the values in T correspond to the center of each segment.
There is probably no neat and efficient way to do what you want. I would loop through S at each time, sort and threshold the amplitudes to find the indices of the values >-35dB or so, then use the indices returned by sort to determine the frequencies. (Using the find function is also a possibility, but I am not certain it would make this more efficient.)
9 Commenti
Star Strider
il 6 Ott 2014
To the best of my knowledge, there are no filters at all involved in spectrogram. It uses a fft with windowing.
Più risposte (1)
Vedere anche
Categorie
Scopri di più su DTMF in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!