mirror of
https://gitlab.science.ru.nl/mthesis-edeboone/m-thesis-introduction.git
synced 2025-05-17 05:19:24 +02:00
Passband calculates power not amplitude
This commit is contained in:
parent
007bd7f963
commit
ee0f223423
2 changed files with 46 additions and 36 deletions
|
@ -16,9 +16,9 @@ class passband(namedtuple("passband", ['low', 'high'], defaults=[0, np.inf])):
|
|||
def freq_mask(frequencies):
|
||||
return bandpass_mask(frequencies, self)
|
||||
|
||||
def signal_level(samples, samplerate, normalise_bandsize=True, **ft_kwargs):
|
||||
def signal_power(samples, samplerate, normalise_bandsize=True, **ft_kwargs):
|
||||
|
||||
return bandlevel(samples, samplerate, self, normalise_bandsize, **ft_kwargs)
|
||||
return bandpower(samples, samplerate, self, normalise_bandsize, **ft_kwargs)
|
||||
|
||||
def filter_samples(samples, samplerate, **ft_kwargs):
|
||||
"""
|
||||
|
@ -52,7 +52,7 @@ def bandpass_mask(freqs, band=passband()):
|
|||
def bandsize(band = passband()):
|
||||
return band[1] - band[0]
|
||||
|
||||
def bandlevel(samples, samplerate=1, band=passband(), normalise_bandsize=True, **ft_kwargs):
|
||||
def bandpower(samples, samplerate=1, band=passband(), normalise_bandsize=True, **ft_kwargs):
|
||||
fft, freqs = ft_spectrum(samples, samplerate, **ft_kwargs)
|
||||
|
||||
bandmask = bandpass_mask(freqs, band=band)
|
||||
|
@ -62,9 +62,9 @@ def bandlevel(samples, samplerate=1, band=passband(), normalise_bandsize=True, *
|
|||
else:
|
||||
bins = 1
|
||||
|
||||
level = np.sum(np.abs(fft[bandmask])**2)
|
||||
power = np.sum(np.abs(fft[bandmask])**2)
|
||||
|
||||
return level/bins
|
||||
return power/bins
|
||||
|
||||
def signal_to_noise( samplerate, samples, noise, signal_band, noise_band=None):
|
||||
if noise_band is None:
|
||||
|
@ -73,9 +73,9 @@ def signal_to_noise( samplerate, samples, noise, signal_band, noise_band=None):
|
|||
if noise is None:
|
||||
noise = samples
|
||||
|
||||
noise_level = bandlevel(noise, samplerate, noise_band)
|
||||
noise_power = bandpower(noise, samplerate, noise_band)
|
||||
|
||||
signal_level = bandlevel(samples, samplerate, signal_band)
|
||||
signal_power = bandpower(samples, samplerate, signal_band)
|
||||
|
||||
return (signal_level/noise_level)**0.5
|
||||
return (signal_power/noise_power)**0.5
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue