You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
63 lines
1.9 KiB
63 lines
1.9 KiB
#!/usr/bin/python
|
|
|
|
# Copyright (C) 2012 The Android Open Source Project
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
from consts import *
|
|
import numpy as np
|
|
import scipy as sp
|
|
from calc_thd import *
|
|
import calc_delay
|
|
|
|
# calculate THD for dut_playback_thd case
|
|
# Input: host recording (mono),
|
|
# frequency of sine in Hz (i64)
|
|
# THD pass level in percentile (double)
|
|
# Output: THD device (double) in percentile
|
|
|
|
def playback_thd(inputData, inputTypes):
|
|
output = []
|
|
outputData = []
|
|
outputTypes = []
|
|
# basic validate
|
|
inputError = False
|
|
if (inputTypes[0] != TYPE_MONO):
|
|
inputError = True
|
|
if (inputTypes[1] != TYPE_I64):
|
|
inputError = True
|
|
if (inputTypes[2] != TYPE_DOUBLE):
|
|
inputError = True
|
|
if inputError:
|
|
output.append(RESULT_ERROR)
|
|
output.append(outputData)
|
|
output.append(outputTypes)
|
|
return output
|
|
|
|
hostRecording = inputData[0]
|
|
signalFrequency = inputData[1]
|
|
thdPassPercentile = inputData[2]
|
|
samplingRate = 44100
|
|
|
|
thd = calc_thd(hostRecording, signalFrequency, samplingRate, 0.02) * 100
|
|
print "THD %", thd, "Margain % ", thdPassPercentile
|
|
if (thd < thdPassPercentile):
|
|
output.append(RESULT_PASS)
|
|
else:
|
|
output.append(RESULT_OK)
|
|
outputData.append(thd)
|
|
outputTypes.append(TYPE_DOUBLE)
|
|
output.append(outputData)
|
|
output.append(outputTypes)
|
|
return output
|