All Projects → sergiventosa → FastPCC

sergiventosa / FastPCC

Licence: LGPL-3.0 license
Compute interstation correlations of seismic ambient noise, including fast implementations of the standard, 1-bit and phase cross-correlations.

Programming Languages

c
50402 projects - #5 most used programming language
Cuda
1817 projects
Makefile
30231 projects

Projects that are alternatives of or similar to FastPCC

QuakeMigrate
A Python package for automatic earthquake detection and location using waveform migration and stacking.
Stars: ✭ 101 (+320.83%)
Mutual labels:  signal-processing, seismology, seismic
SeisNoise.jl
Ambient Noise Cross-Correlation in Julia
Stars: ✭ 43 (+79.17%)
Mutual labels:  seismology, seismic
Msnoise
A Python Package for Monitoring Seismic Velocity Changes using Ambient Seismic Noise | http://www.msnoise.org
Stars: ✭ 94 (+291.67%)
Mutual labels:  signal-processing, noise
PH5
Library of PH5 clients, apis, and utilities
Stars: ✭ 14 (-41.67%)
Mutual labels:  seismology
Unity-Noises
Collection of noises functions for Unity.
Stars: ✭ 26 (+8.33%)
Mutual labels:  noise
keras gradient noise
Add gradient noise to any Keras optimizer
Stars: ✭ 36 (+50%)
Mutual labels:  noise
SpleeterRT
Real time monaural source separation base on fully convolutional neural network operates on Time-frequency domain.
Stars: ✭ 111 (+362.5%)
Mutual labels:  signal-processing
wv
⏰ This R package provides the tools to perform standard and robust wavelet variance analysis for time series (signal processing). Among others, aside from computing the wavelet variance and cross-covariance (classic and robust), the package provides inference tools (e.g. confidence intervals) and plotting tools allowing to perform some visual an…
Stars: ✭ 14 (-41.67%)
Mutual labels:  signal-processing
microblx
microblx: real-time, embedded, reflective function blocks.
Stars: ✭ 37 (+54.17%)
Mutual labels:  signal-processing
Channel-Estimation
Simulates an FBMC and OFDM transmission over a doubly-selective channel. Allows to reproduce all figures from "Doubly-Selective Channel Estimation in FBMC-OQAM and OFDM Systems", IEEE VTC Fall, 2018
Stars: ✭ 64 (+166.67%)
Mutual labels:  signal-processing
eidos-audition
Collection of auditory models.
Stars: ✭ 25 (+4.17%)
Mutual labels:  signal-processing
torchsubband
Pytorch implementation of subband decomposition
Stars: ✭ 63 (+162.5%)
Mutual labels:  signal-processing
PyCBC-Tutorials
Learn how to use PyCBC to analyze gravitational-wave data and do parameter inference.
Stars: ✭ 91 (+279.17%)
Mutual labels:  signal-processing
susa
High Performance Computing (HPC) and Signal Processing Framework
Stars: ✭ 55 (+129.17%)
Mutual labels:  signal-processing
DDCToolbox
Create and edit DDC headset correction files
Stars: ✭ 70 (+191.67%)
Mutual labels:  signal-processing
pyRiemann
Python machine learning package based on sklearn API for multivariate data processing and statistical analysis of symmetric positive definite matrices via Riemannian geometry
Stars: ✭ 470 (+1858.33%)
Mutual labels:  signal-processing
FluX
A convenient way of processing digital signals in F#
Stars: ✭ 17 (-29.17%)
Mutual labels:  signal-processing
gr-eventstream
gr-eventstream is a set of GNU Radio blocks for creating precisely timed events and either inserting them into, or extracting them from normal data-streams precisely. It allows for the definition of high speed time-synchronous c++ burst event handlers, as well as bridging to standard GNU Radio Async PDU messages with precise timing easily.
Stars: ✭ 38 (+58.33%)
Mutual labels:  signal-processing
icassp2019-latex-template
ICASSP 2019 official Latex template
Stars: ✭ 21 (-12.5%)
Mutual labels:  signal-processing
Gisola
Gisola: A High Performance Computing application for real-time Moment Tensor inversion
Stars: ✭ 35 (+45.83%)
Mutual labels:  seismology

Fast phase cross-correlation

License: LGPL v3

Software to compute interstation correlations, including fast implementations of geometrically-normalized (CCGN), 1-bit correlation (1-bit CCGN), and phase cross-correlations (PCC) with and without using the GPU (Ventosa et al., SRL 2019).

The software packages of fast phase cross-correlation and ts-PWS stacking are basic building blocks in the design of efficient signal extraction methods from interstation correlations.

Main features

Computes 3 types of correlations:

  • The standard (geometrically) normalized cross-correlations (GNCC).
  • The 1-bit amplitude normalization followed by the GNCC (1-bit GNCC).
  • The phase cross-correlation (PCC).

The computations of PCC are accerated in several ways:

  • PCC is parallelized in the CPU using OpenMP 3.1 and in the GPU using CUDA (two independent codes).
  • The computational cost of PCC with power of 2 is reduced to about twice the one of 1-bit GNCC.

Compilation

To compile execute "make" in the src directory. Use "make clean" to remove any previouly compiled code.

  • The Seismic Analysis Code (SAC) is used to read and write sac files.
  • The FFTW double and single precision libraries are used. If you have to compile them for your system, follow the fftw.org instructions.
  • The SACHOME enviorment variable should provide the path to the directory where sac is installed. For example, this can be defined in bash as:
    export SACHOME=/opt/sac
    Change "/opt/sac" to your current sac directory if necessary.
  • OpenMP 3.1 is used to speed up computations. When OpenMP is not available, use: make -f makefile_NoOpenMP".

Compile SAC

The precompiled sac libraries may not work in some systems/compilers. If you use the gcc compiler on Ubuntu 16.04 or 18.04 you may have errors similar to:

/usr/bin/ld: /opt/sac/lib/sacio.a(getfhv.o): relocation R_X86_64_32 against undefined symbol 'kmlhf' can not be used when making a PIE object; recompile with -fPIC

This can be solved by compiling the source version of SAC. From the source directory of sac do:

./configure --enable-optim=2 --prefix=/opt/sac CFLAGS='-march=native -fPIC'
make
make install

The key detail here is the -fPIC flag, you can adapt the other options to your needs. The flag --prefix=/opt/sac sets the directory where sac will be installed when doing "make install". You can change this directory, e.g., to keep using your current version of SAC for other purposes.

Warming up

  1. Read ./examples/example.sh
  2. Execute it, e.g., bash example.sh
  3. Do PCC_fullpair_1b for the parameters usage.

Origin of Phase Cross-Correlation

Schimmel, M., 1999. Phase cross-correlations: Design, comparisons, and applications, Bulletin of the Seismological Society of America, 89(5), 1366-1378.

Schimmel, M. and Stutzmann, E. & J. Gallart, 2011. Using instantaneous phase coherence for signal extraction from ambient noise data at a local to a global scale, Geophysical Journal International, 184(1), 494-506, doi:10.1111/j.1365-246X.2010.04861.x

Paper to be cited

Ventosa S., Schimmel M. & E. Stutzmann, 2019. Towards the processing of large data volumes with phase cross-correlation, Seismological Research Letters, 90(4), 1663-1669, doi:10.1785/0220190022

2020/10/01 Sergi Ventosa Rahuet (sergiventosa(at)hotmail.com)

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].