# pyExSi **Repository Path**: schou0419/pyExSi ## Basic Information - **Project Name**: pyExSi - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-07 - **Last Updated**: 2025-12-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README |DOI| |pytest| |Docs Status| pyExSi - Excitation signals as used in structural dynamics and vibration fatigue -------------------------------------------------------------------------------- Supported excitation signals are: - pulse (e.g. half-sine) - random: - uniform random distribution - normal random distribution - pseudorandom distribution - random, defined by power spectral density (PSD): - stationary Gaussian - stationary non-Gaussian - non-stationary non-Gaussian random process - burst random - sine sweep Simple example --------------- A simple example on how to generate random signals on PSD basis: .. code-block:: python import pyExSi as es import numpy as np N = 2**16 # number of data points of time signal fs = 1024 # sampling frequency [Hz] t = np.arange(0,N)/fs # time vector # define frequency vector and one-sided flat-shaped PSD M = N//2 + 1 # number of data points of frequency vector freq = np.arange(0, M, 1) * fs / N # frequency vector freq_lower = 50 # PSD lower frequency limit [Hz] freq_upper = 100 # PSD upper frequency limit [Hz] PSD = es.get_psd(freq, freq_lower, freq_upper) # one-sided flat-shaped PSD #get gaussian stationary signal gausian_signal = es.random_gaussian(N, PSD, fs) #get non-gaussian non-stationary signal, with kurtosis k_u=10 #amplitude modulation, modulating signal defined by PSD PSD_modulating = es.get_psd(freq, freq_lower=1, freq_upper=10) #define array of parameters delta_m and p delta_m_list = np.arange(.1,2.1,.5) p_list = np.arange(.1,2.1,.5) #get signal nongaussian_nonstationary_signal = es.nonstationary_signal(N,PSD,fs,k_u=5,modulating_signal=('PSD', PSD_modulating),param1_list=p_list,param2_list=delta_m_list) .. |Docs Status| image:: https://readthedocs.org/projects/pyexsi/badge/ :target: https://pyexsi.readthedocs.io .. |pytest| image:: https://github.com/ladisk/pyExSi/actions/workflows/python-package.yml/badge.svg :target: https://github.com/ladisk/pyExSi/actions .. |DOI| image:: https://zenodo.org/badge/DOI/10.5281/zenodo.4431844.svg :target: https://doi.org/10.5281/zenodo.4431844