def test_instfreq(self): """Test instantaneous frequency calculation.""" signal, _ = fm.fmlin(128, 0.05, 0.3, 50) ifreq = fproc.inst_freq(signal)[0] self.assertAlmostEqual(ifreq.min(), 0.05, places=2) self.assertAlmostEqual(ifreq.max(), 0.3, places=2) self.assert_is_linear(ifreq)
def test_instfreq(self): signal, _ = fm.fmlin(128, 0.05, 0.3, 50) ifreq = fproc.inst_freq(signal)[0] self.assertAlmostEqual(ifreq.min(), 0.05, places=2) self.assertAlmostEqual(ifreq.max(), 0.3, places=2) self.assert_is_linear(ifreq)
# -*- coding: utf-8 -*- # vim:fenc=utf-8 # # Copyright © 2015 jaidev <jaidev@newton> # # Distributed under terms of the MIT license. """ """ import numpy as np import matplotlib.pyplot as plt from tftb.generators import dopnoise from tftb.processing.freq_domain import inst_freq z, iflaw = dopnoise(500, 200.0, 60.0, 10.0, 70.0, 128.0) plt.subplot(211), plt.plot(np.real(z)) plt.grid() plt.title('Complex noisy Doppler signal') plt.xlim(0, 500) ifl, t = inst_freq(z, np.arange(11, 479), 10) plt.subplot(212) plt.plot(iflaw, 'r', label='actual') plt.plot(t, ifl, 'g', label='estimated') plt.xlim(0, 500) plt.legend() plt.grid() plt.title('Instantaneous frequency') plt.show()
fig = plt.figure() if signal is not None: axsig = fig.add_subplot(211) axsig.set_position([0.10, 0.69, 0.80, 0.25]) plt.sca(axsig) plt.plot(time_instants, np.real(signal)) plt.title('Signal') plt.grid(True) plt.xlim(time_instants.min(), time_instants.max()) axtfr = fig.add_subplot(212) axtfr.set_position([0.10, 0.21, 0.80, 0.45]) plt.sca(axtfr) plt.plot(time_instants, iflaws) plt.xlim(time_instants.min(), time_instants.max()) plt.grid(kwargs.get('grid', True)) if minif >= 0: plt.ylim(0, 0.5) else: plt.ylim(-0.5, 0.5) plt.xlabel('Time') plt.ylabel('Normalized frequency') plt.title('Instantaneous frequency law(s)') plt.show() if __name__ == '__main__': signal, _ = fmlin(256) time_samples = np.arange(3, 257) ifr = inst_freq(signal) plotifl(time_samples, ifr)
#! /usr/bin/env python # -*- coding: utf-8 -*- # vim:fenc=utf-8 # # Copyright © 2015 jaidev <jaidev@newton> # # Distributed under terms of the MIT license. """ """ import numpy as np import matplotlib.pyplot as plt from tftb.generators import dopnoise from tftb.processing.freq_domain import inst_freq z, iflaw = dopnoise(500, 200.0, 60.0, 10.0, 70.0, 128.0) plt.subplot(211), plt.plot(np.real(z)) plt.grid() plt.title('Complex noisy Doppler signal') plt.xlim(0, 500) ifl, t = inst_freq(z, np.arange(11, 479), 10) plt.subplot(212) plt.plot(iflaw, 'r', label='actual') plt.plot(t, ifl, 'g', label='estimated') plt.xlim(0, 500) plt.legend() plt.grid() plt.title('Instantaneous frequency') plt.show()
minif = np.amin(iflaws[indices]) fig = plt.figure() if signal is not None: axsig = fig.add_subplot(211) axsig.set_position([0.10, 0.69, 0.80, 0.25]) plt.sca(axsig) plt.plot(time_instants, np.real(signal)) plt.title('Signal') plt.grid(True) plt.xlim(time_instants.min(), time_instants.max()) axtfr = fig.add_subplot(212) axtfr.set_position([0.10, 0.21, 0.80, 0.45]) plt.sca(axtfr) plt.plot(time_instants, iflaws) plt.xlim(time_instants.min(), time_instants.max()) plt.grid(kwargs.get('grid', True)) if minif >= 0: plt.ylim(0, 0.5) else: plt.ylim(-0.5, 0.5) plt.xlabel('Time') plt.ylabel('Normalized frequency') plt.title('Instantaneous frequency law(s)') plt.show() if __name__ == '__main__': signal, _ = fmlin(256) time_samples = np.arange(3, 257) ifr = inst_freq(signal) plotifl(time_samples, ifr)