Python - Calculate Signal to Noise Ratio (Watts/Volts)

by matt392 in Circuits > Software

24 Views, 0 Favorites, 0 Comments

Python - Calculate Signal to Noise Ratio (Watts/Volts)

SignalToNoiseRatioFormulas.png
# Formula to calculate Signal to Noise Ratio
# Unit: watts: 20 * log10 (signal/noise)
# Unit: voltage: 10 * log10 (signal/noise)
# Use functions for each one
# >>>>>>> use math.log10()

import math

print ("Formula to compute Signal to Noise Ratio for watts and voltage")
print ("The formula for watts is: 20 * log10 (signal/noise)")
print ("The formula for voltage is: 10 * log10 (signal/noise)")

# Define functions
def wattssignaltonoiseratio(signal, noise):
    SignalToNoiseRatio = (20 * (math.log10(signal/noise)) )
    print("The Signal to Noise ratio in dB is: ", SignalToNoiseRatio)
    
def voltagesignaltonoiseratio(signal,noise):
    SignalToNoiseRatio = (10 * (math.log10(signal/noise)) )
    print("The Signal to Noise ratio in dB is: ", SignalToNoiseRatio)

# Input the data
# While loop to ask user if they want to enter watts or voltage
WattsOrVoltage = 0

while (WattsOrVoltage==0):
    EnteredWattsOrVoltage = input ("To calculate signal to noise ratio using watts, enter 1 or voltage, enter 2: ")
    # Convert to integer
    WattsOrVoltage = int(EnteredWattsOrVoltage)
    print ("Number entered: ", WattsOrVoltage)
    # Test to see if the number is 1, 2 or another number
    if WattsOrVoltage==1:
       print ("You chose 1.")
       # Get data from user
       EnteredSignal = input("Enter the signal: ")
       EnteredNoise = input("Enter the noise: ")
       signal = float(EnteredSignal)
       noise = float(EnteredNoise)
       # Call the watt function
       wattssignaltonoiseratio(signal, noise)
    elif WattsOrVoltage==2:
       print ("You chose 2.")
       # Get data from user
       EnteredSignal = input("Enter the signal: ")
       EnteredNoise = input("Enter the noise: ")
       signal = float(EnteredSignal)
       noise = float(EnteredNoise)
       # Call the voltage function
       voltagesignaltonoiseratio(signal, noise)
    else:
        print ("Be sure to enter number between 1 and 2.")
        WattsOrVoltage = 0