1 страниц (11 вхождений)
DSP Library - Opensource digital signal processing algorithm library - Сообщения
#1 Опубликовано: 21.11.2021 19:47:14
DSP Library

Functions list:
DSPL-2.0 — opensource cross-platform digital signal processing algorithm library, written in C language.
Distributed under LGPL v3 license. This allows to use this library in all applications with dynamic linking.
Source codes are available on GitHub.
DSPL-2.0 includes follow algorithms sets:
Examples:

dspl_filter_iir.pdf (155 КиБ) скачан 192 раз(а).
dspl_fir_linphase.pdf (246 КиБ) скачан 168 раз(а).
dspl_iir.pdf (233 КиБ) скачан 143 раз(а).
dspl_window.pdf (856 КиБ) скачан 158 раз(а).
[albumimg]1657[/albumimg] [albumimg]1658[/albumimg]
Links:
1. DSPL-2.0 — free DSP algorithm library .







Functions list:
dspl_bessel_i0(-1) - (x) modified bessel function of the first kind I0(x).
dspl_butter_ap(2) - (rp,ord) calculates the transfer function H(s) coefficients of analog normalized lowpass Butterworth filter.
dspl_butter_ap_zp(2) - (ord,rp) calculates arrays of zeros and poles for analog normlized lowpass Batterworth filter transfer function H(s).
dspl_cfft(1) - (x) calculated n-points FFT for the complex vector x.
dspl_cgoertzel(2) - (x,ind) calculates samples of n-point DFT, according to ind indexes vector (Goertzel algorithm).
dspl_cheby1_ap(2) - (rp,ord) calculates the transfer function H(s) coefficients of analog normalized lowpass Chebyshev type 1 filter.
dspl_cheby1_ap_zp(2) - (ord,rp) calculates arrays of zeros and poles for analog normlized lowpass Chebyshev type 1 filter transfer function H(s).
dspl_cheby2_ap(2) - (rs,ord) calculates the transfer function H(s) coefficients of analog normalized lowpass Chebyshev type 2 filter.
dspl_cheby2_ap_zp(2) - (ord,rs) calculates arrays of zeros and poles for analog normlized lowpass Chebyshev type 2 filter transfer function H(s).
dspl_cidft(1) - (x) calculates the n-point inverse discrete transform Fourier complex spectrum x.
dspl_cifft(1) - (x) calculates n-point IFFT of complex data x.
dspl_concat(2) - ( a,b ) concatenate arrays a and b.
dspl_conv(2) - ( a,b ) convolves two complex vectors.
dspl_decimate(2) - (x,d) decimates the real vector x by d times.
dspl_cdft(1) - (x) calculates the n-point discrete Fourier transform complex signal x.
dspl_dft(1) - (x) calculates the n-point discrete Fourier transform real signal x.
dspl_ellip_ap(3) - (rp,rs,ord) calculates the transfer function H(s) coefficients of analog normalized lowpass elliptic filter.
dspl_ellip_ap_zp(3) - (ord,rp,rs) calculates arrays of zeros and poles for analog normlized lowpass elliptic filter transfer function H(s).
dspl_fcoeff(4) - (t,x,T,nw) calculates Fourier series coefficient for real vector x.
dspl_fft(1) - (x) calculated n-points FFT for the real vector x.
dspl_fft_mag(2) - (x,fs) calculates the frequency response for a real vector x.
dspl_fft_mag(3) - (x,fs,flag) calculates the frequency response for a real vector x.
dspl_fft_shift(1) - (x) perform a shift of the vector x, for use with the fft and ifft functions, in order to move the frequency 0 to the center.
dspl_filter_freq_resp(5) - (b,a,ord,w,flag) calculates magnitude, phase response and group delay vectors for digital or analog filter.
dspl_filter_iir(4) - (b,a,ord,s) calculates real IIR filter output for real signal s.
dspl_fir_linphase(6) - (ord,w0,w1,ftype,wtype,wprm) calculates linear-phase FIR filter coefficients by window method.
dspl_flipip(1) - (x) flips complex vector x in the memory.
dspl_freqs(4) - (b,a,ord,w) calculates the values of the complex gain H(jw) of the analog filter.
dspl_freqz(4) - (b,a,ord,w) calculates the values of the complex gain H(e^jw) of the digital filter.
dspl_fseries(2) - (ws,t) reconstructs the time function from Fourier series coefficients.
dspl_fseries(3) - (w,s,t) reconstructs the time function from Fourier series coefficients.
dspl_goertzel(2) - (x,ind) calculates samples of n-point DFT, according to ind indexes vector (Goertzel algorithm).
dspl_group_delay(5) - (b,a,ord,flag,w) calculates group delay for digital or analog filter.
dspl_iir(6) - (rp,rs,ord,w0,w1,ftype) calculates the coefficients of the digital IIR filter transfer fucntion H(z).
dspl_linspace(4) - (x0,x1,n,type) fills a vector with n linearly spaced elements between x0 and x1.
dspl_logspace(4) - (x0,x1,n,type) fills a vector with n logarithmically spaced elements between 10^x0 and 10^x1.
dspl_ones(1) - (n) returns vector filled by ones values.
dspl_phase_delay(5) - (b,a,ord,flag,w) calculates phase delay for digital or analog filter.
dspl_randb(1) - (n) generates a binary unipolar [0, 1] pseudo-random vector.
dspl_randb2(1) - (n) generates a binary unipolar [-1, 1] pseudo-random vector.
dspl_randi(3) - (n,start,stop) generates a pseudo-random vector of integers ranging from start to stop inclusive.
dspl_randinit(2) - (type,seed) pseudorandom numbers generators initialization.
dspl_randn(3) - (n,mu,sigma) generates a vector of normally distributed pseudo-random numbers.
dspl_randu(1) - (n) generates a vector of uniformly distributed pseudo-random numbers in the range from 0 to 1.
dspl_scale_lin(5) - (x,xmin,xmax,dx,h) vector x linear transformation.
dspl_sum(1) - (x) returns the sum of the elements of a real vector x.
dspl_sum_sqr(1) - (x) returns the sum of squares of the elements of a real vector x.
dspl_window(2) - (n,wtype) calculates a periodic or symmetric window function.
dspl_window(3) - (n,wtype,wprm) calculates a periodic or symmetric window function.
dspl_butter_ap(2) - (rp,ord) calculates the transfer function H(s) coefficients of analog normalized lowpass Butterworth filter.
dspl_butter_ap_zp(2) - (ord,rp) calculates arrays of zeros and poles for analog normlized lowpass Batterworth filter transfer function H(s).
dspl_cfft(1) - (x) calculated n-points FFT for the complex vector x.
dspl_cgoertzel(2) - (x,ind) calculates samples of n-point DFT, according to ind indexes vector (Goertzel algorithm).
dspl_cheby1_ap(2) - (rp,ord) calculates the transfer function H(s) coefficients of analog normalized lowpass Chebyshev type 1 filter.
dspl_cheby1_ap_zp(2) - (ord,rp) calculates arrays of zeros and poles for analog normlized lowpass Chebyshev type 1 filter transfer function H(s).
dspl_cheby2_ap(2) - (rs,ord) calculates the transfer function H(s) coefficients of analog normalized lowpass Chebyshev type 2 filter.
dspl_cheby2_ap_zp(2) - (ord,rs) calculates arrays of zeros and poles for analog normlized lowpass Chebyshev type 2 filter transfer function H(s).
dspl_cidft(1) - (x) calculates the n-point inverse discrete transform Fourier complex spectrum x.
dspl_cifft(1) - (x) calculates n-point IFFT of complex data x.
dspl_concat(2) - ( a,b ) concatenate arrays a and b.
dspl_conv(2) - ( a,b ) convolves two complex vectors.
dspl_decimate(2) - (x,d) decimates the real vector x by d times.
dspl_cdft(1) - (x) calculates the n-point discrete Fourier transform complex signal x.
dspl_dft(1) - (x) calculates the n-point discrete Fourier transform real signal x.
dspl_ellip_ap(3) - (rp,rs,ord) calculates the transfer function H(s) coefficients of analog normalized lowpass elliptic filter.
dspl_ellip_ap_zp(3) - (ord,rp,rs) calculates arrays of zeros and poles for analog normlized lowpass elliptic filter transfer function H(s).
dspl_fcoeff(4) - (t,x,T,nw) calculates Fourier series coefficient for real vector x.
dspl_fft(1) - (x) calculated n-points FFT for the real vector x.
dspl_fft_mag(2) - (x,fs) calculates the frequency response for a real vector x.
dspl_fft_mag(3) - (x,fs,flag) calculates the frequency response for a real vector x.
dspl_fft_shift(1) - (x) perform a shift of the vector x, for use with the fft and ifft functions, in order to move the frequency 0 to the center.
dspl_filter_freq_resp(5) - (b,a,ord,w,flag) calculates magnitude, phase response and group delay vectors for digital or analog filter.
dspl_filter_iir(4) - (b,a,ord,s) calculates real IIR filter output for real signal s.

dspl_fir_linphase(6) - (ord,w0,w1,ftype,wtype,wprm) calculates linear-phase FIR filter coefficients by window method.
dspl_flipip(1) - (x) flips complex vector x in the memory.
dspl_freqs(4) - (b,a,ord,w) calculates the values of the complex gain H(jw) of the analog filter.
dspl_freqz(4) - (b,a,ord,w) calculates the values of the complex gain H(e^jw) of the digital filter.
dspl_fseries(2) - (ws,t) reconstructs the time function from Fourier series coefficients.
dspl_fseries(3) - (w,s,t) reconstructs the time function from Fourier series coefficients.
dspl_goertzel(2) - (x,ind) calculates samples of n-point DFT, according to ind indexes vector (Goertzel algorithm).
dspl_group_delay(5) - (b,a,ord,flag,w) calculates group delay for digital or analog filter.
dspl_iir(6) - (rp,rs,ord,w0,w1,ftype) calculates the coefficients of the digital IIR filter transfer fucntion H(z).
dspl_linspace(4) - (x0,x1,n,type) fills a vector with n linearly spaced elements between x0 and x1.
dspl_logspace(4) - (x0,x1,n,type) fills a vector with n logarithmically spaced elements between 10^x0 and 10^x1.
dspl_ones(1) - (n) returns vector filled by ones values.
dspl_phase_delay(5) - (b,a,ord,flag,w) calculates phase delay for digital or analog filter.
dspl_randb(1) - (n) generates a binary unipolar [0, 1] pseudo-random vector.
dspl_randb2(1) - (n) generates a binary unipolar [-1, 1] pseudo-random vector.
dspl_randi(3) - (n,start,stop) generates a pseudo-random vector of integers ranging from start to stop inclusive.
dspl_randinit(2) - (type,seed) pseudorandom numbers generators initialization.
dspl_randn(3) - (n,mu,sigma) generates a vector of normally distributed pseudo-random numbers.
dspl_randu(1) - (n) generates a vector of uniformly distributed pseudo-random numbers in the range from 0 to 1.
dspl_scale_lin(5) - (x,xmin,xmax,dx,h) vector x linear transformation.
dspl_sum(1) - (x) returns the sum of the elements of a real vector x.
dspl_sum_sqr(1) - (x) returns the sum of squares of the elements of a real vector x.
dspl_window(2) - (n,wtype) calculates a periodic or symmetric window function.
dspl_window(3) - (n,wtype,wprm) calculates a periodic or symmetric window function.
DSPL-2.0 — opensource cross-platform digital signal processing algorithm library, written in C language.
Distributed under LGPL v3 license. This allows to use this library in all applications with dynamic linking.
Source codes are available on GitHub.
DSPL-2.0 includes follow algorithms sets:
- Digital spectral analysis, discrete and fast Fourier transform algorithms.
- Analog and digital IIR filters design and analysis.
- Digital FIR filters design and analysis.
- Windows function collection includes 15 different parametric and nonparametric window functions.
- Digital Hilbert transform algorithms.
- Mathematical sections includes trigonometric, hyperbolic, elliptic functions of real and complex variables.
- Pseudorandom numbers generation algorithms.
- Statistic functions.
- Linar algebra algorithms (BLAS and LAPACK packages are used under the hood of the DSPL-2.0 library).
- Digital resampling algorithms.
Examples:




dspl_filter_iir.pdf (155 КиБ) скачан 192 раз(а).
dspl_fir_linphase.pdf (246 КиБ) скачан 168 раз(а).
dspl_iir.pdf (233 КиБ) скачан 143 раз(а).
dspl_window.pdf (856 КиБ) скачан 158 раз(а).
[albumimg]1657[/albumimg] [albumimg]1658[/albumimg]
Links:
1. DSPL-2.0 — free DSP algorithm library .
Russia ☭ forever, Viacheslav N. Mezentsev
1 пользователям понравился этот пост
Oscar Campo 01.12.2021 23:45:00
#2 Опубликовано: 27.11.2021 06:48:56
#3 Опубликовано: 28.11.2021 17:35:07
#4 Опубликовано: 30.11.2021 08:08:33
WroteSpline2 is as named by the Originators.
It is a statistical spline based on Durbin-Watson test
to determine optimal number of knots and their spacing.
For this particular example, linfitCheby smooths/fits as well.
Robert LSQ works as well, knots from trial/error.
Cheers ... Jean.
Splines have their place Jean, but I also have future need for hamming window filters and DFT filters, etc. I have worked with $20,000+ protection relays that have very high quality DFT filters to find faults in HV networks ASAP, to reduce damage to people first and equipment second. That is where the c code comes into its own. If i get into power quality values, this work by uni will be indispensable. I think Mathcad used to have an expensive add on for this feature. Uni has kindly provided it for free. That is why I love this Smath forum so much.
Warming up in Adelaide ready for summer starting tomorrow
#5 Опубликовано: 30.11.2021 19:46:21
WroteI have worked with $20,000 protection relays that have very high quality DFT filters to find faults in HV networks ASAP
Once you have the push down sized samples from the grid,
filtered for whatever filter means wrt the grid ...
Smath plugins have fft at hyper accuracy [sanity checked Mathematica, MCD]
From there, compare the spectrum-in vs model spectrum.
Cheers ... Jean.
Fourier fft, ifft Sanity DEMO.sm (15 КиБ) скачан 124 раз(а).
#6 Опубликовано: 30.11.2021 21:29:17
WroteSmath plugins have fft at hyper accuracy [sanity checked Mathematica, MCD]
Jean, this thread is intended to discuss only functions from DSP Library and no others. All other discussions should be contained in separate threads. If you want to attach a comparison document, then it must contain functions from DSP Library.
This topic should only contain technical (reference) information on how to use the extension. Other extensions have their own sections.
Russia ☭ forever, Viacheslav N. Mezentsev
#7 Опубликовано: 03.12.2021 04:11:34
Adding some functions. The server is still not available for building.

dspl_window.pdf (1 МиБ) скачан 121 раз(а).
dspl_window.pdf (1 МиБ) скачан 121 раз(а).
Russia ☭ forever, Viacheslav N. Mezentsev
#8 Опубликовано: 06.12.2021 09:26:12
#9 Опубликовано: 08.12.2021 04:13:33
Examples:

dspl_filter_iir.pdf (155 КиБ) скачан 192 раз(а).
dspl_fir_linphase.pdf (246 КиБ) скачан 168 раз(а).
dspl_iir.pdf (233 КиБ) скачан 143 раз(а).
dspl_window.pdf (856 КиБ) скачан 158 раз(а).




dspl_filter_iir.pdf (155 КиБ) скачан 192 раз(а).
dspl_fir_linphase.pdf (246 КиБ) скачан 168 раз(а).
dspl_iir.pdf (233 КиБ) скачан 143 раз(а).
dspl_window.pdf (856 КиБ) скачан 158 раз(а).
Russia ☭ forever, Viacheslav N. Mezentsev
#10 Опубликовано: 16.12.2021 14:25:48
#11 Опубликовано: 11.04.2023 05:06:24

Plugin updated (resampling algorithms added).
Changes:
- dspl_farrow_lagrange(3|4) and dspl_farrow_spline(3|4) functions added.
dspl_farrow_lagrange.sm (9 КиБ) скачан 111 раз(а).
dspl_farrow_spline.sm (9 КиБ) скачан 112 раз(а).
Russia ☭ forever, Viacheslav N. Mezentsev
3 пользователям понравился этот пост
1 страниц (11 вхождений)
-
Новые сообщения
-
Нет новых сообщений