A discrete Fourier transform will produce frequency samples sufficient to recreate the original time sampled signal from sinusoidal waveforms.

That works great as long as the original signal is actually composed of sinusoidal waveforms. Let's assume that we know a signal is composed of non-sinusoidal waveforms, under which assumption its decomposition may be simpler, such as triangular waveforms. Does a discrete Fourier style transform exist which will decompose the sampled signal into triangular, rectangular or other waveforms? Does such a transform exist for any arbitrary waveform?

For example, here is the FFT response of a 150 Hz pure sin wave sampled at 1024 Hz (courtesy numpy and matplotlib): FFT of 150 Hz pure sin wave, 1024 Hz sample rate

Here is the FFT of a 150 Hz pure sawtooth, again sampled at 1024 Hz: FFT of 150 Hz pure sawtooth wave, 1024 Hz sample rate

It's desirable here to have a similarly "clean" transform using the assumption that the signal is composed of sawtooth waveforms. So my question, does a transform exist that would decompose the signal into some non-sinusoidal waveforms?

  • $\begingroup$ If by "works great" you mean the transform is lossless and permits reconstruction, there is no assumption on the input besides being finite; see here. If you seek a more sparse or meaningful in context representation, then yes, DFT isn't universal, but it's among the few with a very fast implementation (FFT). Sure we can do triangles and sawtooths, just unsure if quickly. $\endgroup$ – OverLordGoldDragon Oct 26 '20 at 5:13

Any complete orthogonal set of functions can be used to represent any discrete function—just like trigonometric functions can be used to represent any continuous function in Fourier analysis. You can use "triangular, rectangular or other waveforms", only mind those represent an orthogonal set. There is also a "wavelet transform", see Wikipedia. For transforms using Walsh functions, the fast implementations exist: Fast Walsh-Hadamard transform.

For visualization of the concept, see images in Wolfram MathWorld pages: Walsh' orthogonal set

downloaded from https://mathworld.wolfram.com/WalshFunction.html


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.