Multiple-Pitch (fundamental frequencies) detection in Polyphonic music
5 次查看(过去 30 天)
显示 更早的评论
Hi everybody!
I'm trying to complete my project which is the MATLAB program which detects pitches (F0s) in polyphonic music signal. When I say signal, I mean one of the simplest kind of it - it is 2 to 5 monophonic samples of piano tones, 500ms each, added together to make POLYPHONIC signal.
What I have done so far is to produce random polyphonic 500ms signal and main loop which analyze polyphonic signal frame by frame. Frame = 4096 points of signal (93ms) windowed by Hamming window. Frame's overlap = 50%. There is FFT (power spectrum) of each frame calculated and then analysis begins.
The main problem that I encountered is following. Not in every maximum peak in the frame is always F0, sometimes it is subharmonic of it. How to distinguish subharmonic (ex: F0/2, F0/5 ...) from F0 peaks?
I found some article of Chunghsin, Roebel and Rodet: LINK. They introduced Mean-Bandwidth to score so called Spectral Smoothness. Smaller MBW -> smaller variations - it was introduced as a tool to distinguish subharmonic from real F0. I tried to implement it, but it does not work. I don't know if it is due to the implementation or it's something else.
Can you help me? Does anyone know any tool/function/method which help me to distinguish subharmonic from real F0? Maybe someone has already completed such project and can help me?
Waiting for your answers, Filip
0 个评论
回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!