Harmonic to noise ratio calculation

Answers (3)

Chinmay Anand
Chinmay Anand on 28 Jun 2019
You can look into this link for this.

2 Comments

Actually this calculates SNR, is there any function to calculate HNR?
This is SNR, HNR is different.

Sign in to comment.

KALYAN ACHARJYA
KALYAN ACHARJYA on 28 Jun 2019
Edited: KALYAN ACHARJYA on 16 Nov 2019
You can use this custom function to calculate harmonic to noise ratio (HNR)
To understand in detail theory, read here

5 Comments

what is noOfFrames?
Hmm I am not sure whether you are still active on this feed but I have read the resources and am still a bit confused as to what should be entered in to the noOfFrames variable...
does noofframes correspond to the number of frames ??
noofframes equals signalblocks. in matlab you can use buffer to chop the signal into blocks with or without a certain overlap. Each signal block is then used in the HNR code to calculate the autocorrelation. After that the first zero crossing of the normalized autocorrelation is searched for. The maximum peak value is searched for with the max function and the sample position is then used (in the best case this gives you also the underlying fundamental frequency = fs/samplepos).
the energy at this position compared to the overall energy (value of the autocorrelation at index = 1) gives you the harmonic to noise ratio.
or for the normalized autocorrelation:
drawbacks as far as I understand it are:
  • pitch dependency
  • accuracy decreases if the signal gets more complex (in speech for example formants)
  • SNR has an influence on the values in terms of comparison of several measurement situations

Sign in to comment.

Li feng
Li feng on 16 Nov 2019
what is noOfFrames?

1 Comment

Please write the comment in comment section only (Just below the answer).

Sign in to comment.

Asked:

on 28 Jun 2019

Edited:

on 19 Dec 2020

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!