Source code for directdemod.demod_am

'''
Object for AM demodulation
'''
import numpy as np
import scipy.signal as signal
from directdemod import filters, constants

'''
AM demodulation by hilbert's transform
'''

[docs]class demod_am(): ''' AM demodulation by hilbert's transform '''
[docs] def demod(self, sig): '''AM demodulation by hilbert's transform Args: sig (:obj:`numpy array`): Signal array to be demodulated Returns: :obj:`numpy array`: Demodulated signal ''' return np.abs(signal.hilbert(sig))
''' AM demodulation by low pass filter '''
[docs]class demod_amFLT(): ''' AM demodulation by low pass filter '''
[docs] def __init__(self, Fs, cutoff): '''Initialize the object Args: cutoff (:obj:`int`): lowpass cutoff frequency in Hz ''' self.__filter = filters.butter(Fs, cutoff)
[docs] def demod(self, sig): '''AM demodulation by low pass filter Args: sig (:obj:`numpy array`): Signal array to be demodulated Returns: :obj:`numpy array`: Demodulated signal ''' return self.__filter.applyOn(np.abs(sig))