I think the problem is in the second elseif statement:
elseif (k>=f_range(m+1) && k<=f_range(m))
These two sub-conditions are mutually exclusive, so this condition is always false. As a result, the line after this condition, which creates the right half of the triangle, is never executed.
Please try:
elseif (k>f_range(m) && k<=f_range(m+1))
That being said, there are much easier and more efficient ways to create the filter bank in MATLAB, for example:
- logical indexing
- the tripuls function
댓글 수: 1
이 댓글에 대한 바로 가기 링크
https://kr.mathworks.com/matlabcentral/answers/274169-why-my-mel-filters-do-not-overlap-on-each-other#comment_351345
이 댓글에 대한 바로 가기 링크
https://kr.mathworks.com/matlabcentral/answers/274169-why-my-mel-filters-do-not-overlap-on-each-other#comment_351345
댓글을 달려면 로그인하십시오.