sufficiently high. """ import numpy as np import matplotlib.pyplot as plt from tftb.generators import amgauss, fmlin from tftb.processing import loctime, locfreq, inst_freq, group_delay time_instants = np.arange(2, 256) sig1 = amgauss(256, 128, 90) * fmlin(256)[0] tm, T1 = loctime(sig1) fm, B1 = locfreq(sig1) ifr1 = inst_freq(sig1, time_instants)[0] f1 = np.linspace(0, 0.5 - 1.0 / 256, 256) gd1 = group_delay(sig1, f1) plt.subplot(211) plt.plot(time_instants, ifr1, '*', label='inst_freq') plt.plot(gd1, f1, '-', label='group delay') plt.xlim(0, 256) plt.grid(True) plt.legend() plt.title("Time-Bandwidth product: {0}".format(T1 * B1)) plt.xlabel('Time') plt.ylabel('Normalized Frequency') sig2 = amgauss(256, 128, 30) * fmlin(256, 0.2, 0.4)[0] tm, T2 = loctime(sig2) fm, B2 = locfreq(sig2)
#! /usr/bin/env python # -*- coding: utf-8 -*- # vim:fenc=utf-8 # # Copyright © 2015 jaidev <jaidev@newton> # # Distributed under terms of the MIT license. """ Example in section 2.4 of the tutorial. """ from tftb.generators import fmlin from tftb.processing import group_delay import numpy as np import matplotlib.pyplot as plt signal, _ = fmlin(256) fnorm = np.linspace(0, .5, 10) gd = group_delay(signal, fnorm) plt.plot(gd, fnorm) plt.grid(True) plt.xlim(0, 256) plt.xlabel('Time') plt.ylabel('Normalized Frequency') plt.title('Group Delay Estimation') plt.show()
""" Example in section 2.4 of the tutorial. """ import numpy as np import matplotlib.pyplot as plt from tftb.generators import amgauss, fmlin from tftb.processing import loctime, locfreq, inst_freq, group_delay time_instants = np.arange(2, 256) sig1 = amgauss(256, 128, 90) * fmlin(256)[0] tm, T1 = loctime(sig1) fm, B1 = locfreq(sig1) ifr1 = inst_freq(sig1, time_instants)[0] f1 = np.linspace(0, 0.5 - 1.0 / 256, 256) gd1 = group_delay(sig1, f1) plt.subplot(211) plt.plot(time_instants, ifr1, '*', label='inst_freq') plt.plot(gd1, f1, '-', label='group delay') plt.xlim(0, 256) plt.grid(True) plt.legend() plt.title("Time-Bandwidth product: {0}".format(T1 * B1)) plt.xlabel('Time') plt.ylabel('Normalized Frequency') sig2 = amgauss(256, 128, 30) * fmlin(256, 0.2, 0.4)[0] tm, T2 = loctime(sig2) fm, B2 = locfreq(sig2) ifr2 = inst_freq(sig2, time_instants)[0]
# # Copyright © 2015 jaidev <jaidev@newton> # # Distributed under terms of the MIT license. """ ================================= Group Delay Estimation of a Chirp ================================= Constuct a chirp and estimates its `group delay <https://en.wikipedia.org/wiki/Group_delay_and_phase_delay>`_. """ from tftb.generators import fmlin from tftb.processing import group_delay import numpy as np import matplotlib.pyplot as plt signal, _ = fmlin(256) fnorm = np.linspace(0, .5, 10) gd = group_delay(signal, fnorm) plt.plot(gd, fnorm) plt.grid(True) plt.xlim(0, 256) plt.xlabel('Time') plt.ylabel('Normalized Frequency') plt.title('Group Delay Estimation') plt.show()
#! /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 amgauss, fmlin from tftb.processing import group_delay x = amgauss(128, 64.0, 30) * fmlin(128, 0.1, 0.4)[0] fnorm = np.arange(0.1, 0.38, step=0.04) gd = group_delay(x, fnorm) plt.plot(gd, fnorm) plt.xlim(0, 128) plt.grid() plt.title('Group delay estimation of linear chirp') plt.xlabel('Group delay') plt.ylabel('Normalized frequency') plt.show()
# x=x1+x2; # ifr=instfreq(x); subplot(211); plot(ifr); # fn=0:0.01:0.5; gd=sgrpdlay(x,fn); # subplot(212); plot(gd,fn); from tftb.generators import fmlin from tftb.processing import inst_freq, group_delay import matplotlib.pyplot as plt import numpy as np N = 128 x1, _ = fmlin(N, 0, 0.2) x2, _ = fmlin(N, 0.3, 0.5) x = x1 + x2 ifr = inst_freq(x)[0] fn = np.arange(0.51, step=0.01) gd = group_delay(x, fn) plt.subplot(211) plt.plot(ifr) plt.xlim(1, N) plt.grid(True) plt.title('Instantaneous Frequency') plt.xlabel('Time') plt.ylabel('Normalized Frequency') plt.subplot(212) plt.plot(gd, fn) plt.xlim(1, N) plt.grid(True) plt.title('Group Delay') plt.xlabel('Time')