#### 49 lines 2.2 KiB Python Raw Permalink Blame History

 ```#!/usr/bin/python3 ``` ``` ``` ```print('*** Preprost zvočni spektralni analizator - S53MV 28.09.2020 ***') ``` ```print('*** popravek odziva za EliteBook 8540w - Andrej 11.2.2012 ***') ``` ``` ``` ```fs=192000 #Frekvenca vzročenja zvočnega signala (max 192000Hz) ``` ```pts=2048 #Število točk spektra 0...fs/2 (potenca 2 za učinkovit FFT) ``` ```avg=128 #Število povprečenj spektra ``` ``` ``` ```import sounddevice as sd #Poiskati na spletu in naložiti s pip3! ``` ```import numpy as np #Uporaba učinkovitih funkcij numpy ``` ```import matplotlib.pyplot as plt #Risanje rezultata z matplotlib ``` ``` ``` ```sd.default.device = 0 ``` ```fskala=np.linspace(0,fs/2,2*pts+1)[:-1] #Izračunaj frekvenčno skalo [Hz] ``` ``` ``` ```### popravek odziva ``` ```odziv = np.loadtxt("5mhz-polinom-2048tock.csv", delimiter=',') ``` ```a = odziv[:,1] ``` ```popravek = np.max(a[4:-1])-a[4:-1] ``` ``` ``` ```def spekter(fs,pts,avg,fskala): #Zajem signala z zvočno kartico in povprečenje spektra [dB] ``` ``` s=sd.rec(pts*(1+avg),samplerate=fs,channels=1) #Vzorčenje ADC zvočne kartice, 2D polje! ``` ``` sd.wait() #Počakaj do konca vzorčenja ``` ``` nz=1.e-12 #Dodatek za neničelni argument logaritma ``` ``` s2=np.square(s) #Izpis jakosti/max [dB] ``` ``` print('Jakost:',"%.1f"%(10*np.log10(nz+np.mean(s2))),'dB Vrh:',"%.1f"%(10*np.log10(nz+np.amax(s2))),'dB',end=' ') ``` ``` o=1+np.cos(np.linspace(-np.pi,np.pi,2*pts)) #Okno dvignjeni kosinus ``` ``` k=0 ``` ``` s2=np.zeros(2*pts) ``` ``` while k