Analysis number from dtmf sound
10 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
rafi
am 17 Sep. 2014
Kommentiert: Star Strider
am 6 Okt. 2014
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 Kommentare
Akzeptierte Antwort
Star Strider
am 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 Kommentare
Star Strider
am 6 Okt. 2014
To the best of my knowledge, there are no filters at all involved in spectrogram. It uses a fft with windowing.
Weitere Antworten (1)
Siehe auch
Kategorien
Mehr zu DTMF finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!