I have done an acquisition of an acoustic signal in a noisy environment and I want to calculate the signal to noise ratio SNR. Is there any way to do this?
This depends on what you consider to be `signal' and what you consider to be `noise'. You will have to somehow separate the signal and noise components using some a-priori information about their characteristics. This will depend entirely on what you consider the signal to be. There are a number of ways of approaching this. To name just a few you could do some of the following, just to give you an idea of what might be involved:
1) if you know that the noise characteristics of the channel/environment are stationary, and independent of the signal presence.absence, you could measure the noise power alone, then determine the SNR by the difference and ratio of the measurement in the presence of the signal. I.E. SNR = ( P_sig+noise - P_noise ) / P_noise
2) If you know that the signals are pure tones/sinusoids, you could look at the power spectral density of the audio record. If you identify clear impulses in the PSD, these are the signals, and, likely, the remainder of the PSD is the so-called noise-floor. This can provide you with enough information to calculate the noise power and signal power, again, find their ratio. This method may (depending on the exact spectral characteristics) be suitable for slightly wider band audio signals.
3) If you know a lot about the audio, for example if it is some sort of ultra-sound signalling, consider implementing a matched filter. Given a set of complex DMF outputs, there are many methods of determining the equivalent input signal-to-noise ratio. Once you have this sort of DMF value, you are no longer restricted to audio-specific SNR approaches.
I hope this helps. FYI, if you want to get more useful answers, consider providing more info, share the experimental set-up, or provide info on the application, this will help others to understand what you are trying to achieve.
This depends on what you consider to be `signal' and what you consider to be `noise'. You will have to somehow separate the signal and noise components using some a-priori information about their characteristics. This will depend entirely on what you consider the signal to be. There are a number of ways of approaching this. To name just a few you could do some of the following, just to give you an idea of what might be involved:
1) if you know that the noise characteristics of the channel/environment are stationary, and independent of the signal presence.absence, you could measure the noise power alone, then determine the SNR by the difference and ratio of the measurement in the presence of the signal. I.E. SNR = ( P_sig+noise - P_noise ) / P_noise
2) If you know that the signals are pure tones/sinusoids, you could look at the power spectral density of the audio record. If you identify clear impulses in the PSD, these are the signals, and, likely, the remainder of the PSD is the so-called noise-floor. This can provide you with enough information to calculate the noise power and signal power, again, find their ratio. This method may (depending on the exact spectral characteristics) be suitable for slightly wider band audio signals.
3) If you know a lot about the audio, for example if it is some sort of ultra-sound signalling, consider implementing a matched filter. Given a set of complex DMF outputs, there are many methods of determining the equivalent input signal-to-noise ratio. Once you have this sort of DMF value, you are no longer restricted to audio-specific SNR approaches.
I hope this helps. FYI, if you want to get more useful answers, consider providing more info, share the experimental set-up, or provide info on the application, this will help others to understand what you are trying to achieve.
thank you for all, Mr.James Curran has englobed all the essential points for the estimation of SNR. I test with a signal and I'll share with you the results.