In this App, you can visulise three signal waveforms such as Sinusoidal, Square, and saw-toothed. Also, these signals has some params which you can setting them. The application was developed with dearpygui providing UI components for desktop apps. If you want to write a detailed blog about dearpygui, please comment :).
A: Ampitute
You can setting the ampitute of the waves.
DC
A constant value which offsets veritcally
FI0: Initial Phase
Phase shift
Fs: Sampling Frequency
This is a sampling frequency showing how many samples is collected per a second.
Fsig: Frequency Signal
We can use this to take the cycle count of signals. A cycle takes 1/Fsig seconds.
If Fsig is 0.2hz then the cycle count will be 5 seconds.
you can visulise sinusoidal sampled signal, squared sampled signal, and saw-toothed sampled signal by using above the params. The time range of signals is splitted (max_time-min_time)*Fs because Fs is sampling frequence per a second.
The program, which you change the params has a basic interface.
Sinusoidal Wave
As a default, selected waveform is sinusoidal.
Signal time range is between 0 and 10 and uses A*sin(2*π*Fsig*t+fi0)+dc as a formula to be drawn.
In case A = 4,
We can use that positive side is about max 5 and negative side is min -3, because DC is 1 so signal shifts verticaly to up 1 step.
Square Wave
You will see a squared sampled signal.
signal_wave = sin(2*πFsig*t)
if signal_wave >=0, 1
otherwise, -1
**Saw-toothed Wave*
I use scipy library to draw saw-toothed wave form.
All of these signal waveforms use the same params.
Lets change the time range as -100 to 100. We will see this graph sinusoidal waveforms.
I changed Fsig to 0.5. This means T = 1/0.5 = 2s cycle time.
Python Version: 3.11.5
Scipy: 1.11.3
Numpy: 1.26.0
Dearpygui: 1.9.0
Github Link: https://github.com/gokhanergen-tech/dearpygui-signal-waveforms
Top comments (0)