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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 89601f32ba9a967fa1580420fa6ac4c887b33ade1d212e87c0cfdcfa37c6fe15 |
|
MD5 | 775f025809a1f04f8a12537c6c292212 |
|
BLAKE2b-256 | 4f8033b0c72b92b867d032863aa142db49f4dc82b60349451b0edb7f479120f0 |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 25f2d6e22d2bb4cc4c18524460bac00b7eebc1c4f78f69a9ca6fcc4ca1781182 |
|
MD5 | 1aa68a6226392d46940c8aaa4c68428d |
|
BLAKE2b-256 | d12161d557c8d1200d0a411f0da715e47f0182c80b0b102051f0f2257238e723 |