A GUI App Which You Can Visulise Signal Waveforms With Python

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

Feb 16, 2025 - 22:40
 0
A GUI App Which You Can Visulise Signal Waveforms With Python

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.

Image description

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,

Image description

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

Image description

You will see a squared sampled signal.
signal_wave = sin(2*πFsig*t)
if signal_wave >=0, 1
otherwise, -1
**Saw-toothed Wave
*

Image description

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.

Image description

I changed Fsig to 0.5. This means T = 1/0.5 = 2s cycle time.

Image description

Image description

Image description

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