Skip to main content

constantQ: Constant Q Transform with minimal size and dependencies based on GWpy qtransform.

Project description

A Constant Q Transform based on GWpy qtransform

The creation of this program was inspired by the need to include a CQT package with minimal size and dependency for SHARCNET (ComputeCanada) Supercomputer Clusters.

# IMPORTANT DISCLAIMER: All credits for the original Q transform algorithm go to the authors of *GWpy* and *Omega* pipeline.
# See original algorithms at: [Omega Scan] https://gwdetchar.readthedocs.io/en/stable/omega/
#                             [GWpy] https://gwpy.github.io/docs/stable/
#          particularly       [GWpy qtransform]
#              - https://github.com/gwpy/gwpy/blob/26f63684db17104c5d552c30cdf01248b2ec76c9/gwpy/signal/qtransform.py
#
# The license information does NOT imply this package (constantQ) as the original q transform/q scan algorithm.
# NOTE: Referenced programs are under the GNU license 
# for more information on the license visit: https://www.gnu.org/licenses/gpl-faq.en.html

How to use it:

Step 1: Generating a chirp signal

import numpy as np

# Generate np.array chirp signal
dt = 0.001
t = np.arange(0,3,dt)
f0 = 50
f1 = 250
t1 = 2
x = np.cos(2*np.pi*t*(f0 + (f1 - f0)*np.power(t, 2)/(3*t1**2)))
fs = 1/dt

plt.plot(x)				# plot the chirp signal
plt.show()				# display

Step 2: Generating a TimeSeries object

from constantQ.timeseries import TimeSeries
series = TimeSeries(x, dt = 0.001, unit='m', name='test', t0=0)     #np.array --> constantQ.timeseries    

Step 3: Q Transform

hdata = series
sq = hdata.q_transform(search=None)				# q transform
print(len(sq[0]))       # freq array length
print(len(sq))          # time array length

plt.imshow(sq.T, origin='lower')				# plot the spectrogram
plt.colorbar()									# colorbar
plt.show()										# display

To compare the result with a Scipy Spectrogram

from scipy import signal as scisignal

freq, ts, Sxx = scisignal.spectrogram(x)		# scipy spectrogram

plt.pcolor(ts, freq, Sxx, shading='auto')		# plot the spectrogram
plt.colorbar()									# colorbar
plt.show()										# display

This test version 0.0.1 largely follows the GWpy architecture. Changes will be made in future updates if a different structure is better for this package.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

constantQ-0.0.1.tar.gz (27.8 kB view details)

Uploaded Source

Built Distribution

constantQ-0.0.1-py3-none-any.whl (56.5 kB view details)

Uploaded Python 3

File details

Details for the file constantQ-0.0.1.tar.gz.

File metadata

  • Download URL: constantQ-0.0.1.tar.gz
  • Upload date:
  • Size: 27.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.7.1 pkginfo/1.6.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.55.1 CPython/3.9.1

File hashes

Hashes for constantQ-0.0.1.tar.gz
Algorithm Hash digest
SHA256 89601f32ba9a967fa1580420fa6ac4c887b33ade1d212e87c0cfdcfa37c6fe15
MD5 775f025809a1f04f8a12537c6c292212
BLAKE2b-256 4f8033b0c72b92b867d032863aa142db49f4dc82b60349451b0edb7f479120f0

See more details on using hashes here.

File details

Details for the file constantQ-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: constantQ-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 56.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.7.1 pkginfo/1.6.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.55.1 CPython/3.9.1

File hashes

Hashes for constantQ-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 25f2d6e22d2bb4cc4c18524460bac00b7eebc1c4f78f69a9ca6fcc4ca1781182
MD5 1aa68a6226392d46940c8aaa4c68428d
BLAKE2b-256 d12161d557c8d1200d0a411f0da715e47f0182c80b0b102051f0f2257238e723

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page