SignalToNoiseRatio

Introduction

The SignalToNoiseRatio (SNR) is a measure used to quantify the level of a signal relative to the background noise. It is a widely used metric in fields such as telecommunications, audio processing, and image analysis, to assess the quality of a signal or a system.

Sense of the Distance

The Signal-to-Noise Ratio indicates how much stronger the signal is compared to the noise. A higher SNR means that the signal is clearer and less affected by noise, making it a crucial metric in evaluating the fidelity of a transmission or recording.

Formal Representation

The Signal-to-Noise Ratio (SNR) is defined as: [ SNR = 10 log_{10} left( frac{P_{signal}}{P_{noise}} right) ] where ( P_{signal} ) is the power of the signal, and ( P_{noise} ) is the power of the noise. This formula expresses the ratio in decibels (dB).

from distancia import SignalToNoiseRatio

# Example usage:

signal1: List[float] = [0.1 * math.sin(2 * math.pi * 440 * t / 16000) for t in range(16000)]
signal2: List[float] = [0.1 * math.sin(2 * math.pi * 445 * t / 16000) for t in range(16000)]  # Slightly different frequency

max_signal_value: float = 1.0  # Maximum possible value for a normalized signal

psnr_calculator = PeakSignalToNoiseRatio()

psnr_value: float = psnr_calculator.compute_psnr(signal1, signal2, max_signal_value)

print("Peak Signal-to-Noise Ratio (PSNR):", psnr_value)
>>>Peak Signal-to-Noise Ratio (PSNR): 19.999999999999936

Academic Reference

Gold et al.[1]

Conclusion

The SignalToNoiseRatio class is essential for measuring the clarity and quality of signals in various domains, offering a direct evaluation of how much noise affects the desired signal.