Analysis number from dtmf sound
8 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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 commentaires
Réponse acceptée
Star Strider
le 17 Sep 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 commentaires
Star Strider
le 6 Oct 2014
To the best of my knowledge, there are no filters at all involved in spectrogram. It uses a fft with windowing.
Plus de réponses (1)
Voir également
Catégories
En savoir plus sur DTMF dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!