In this application, we analyze and visualize the discrete-time signal represented by the following function:
y(k)=5cos(2πf1kTs)−2sin(2πf2kTs)
where:
- f1 and f2 are the signal frequencies,
- k represents the discrete-time index,
- Ts is the sampling period.
The signal values were computed and visualized using both stem and line plots to illustrate its discrete and continuous representations. These graphs help in understanding the periodic behavior and frequency components of the signal in the time domain.
A dropdown menu labeled "Examples" has been added, allowing users to switch between different examples seamlessly. This feature enhances usability by providing quick access to various signal processing demonstrations.
We can change the function parameters.
We will encounter an interface where you can configure settings and view the signal graphs.
Calculation Used In The App
Ts = 1/Fs
x = [0, 1, 2, … N]
y = [(5*np.cos(2*pi*f1s*k*Ts)-2*sin(2*pi*f2s*k*Ts)) foreach k in x]
power = np.power(y,2)
energy = np.sum(power)
rmse = np.sqrt(energy/self.N)
average = np.mean(y)
variance = (1/self.N)np.sum(np.power((y-average),2))
std = np.sqrt(variance)
median = np.median(y)
own_mean = mean_own(y)
own_rmse = rmse_own(y)
own_variance = variance_own(y, own_mean)
own_std = math.sqrt(own_variance)
own_median = median_own(y)
own_average_power = own_rmse*2
own_energy = own_average_power*len(y)
To show as time
x = [i/fs foreach i in x]
Increasing N
If N increases, the signal sample time will also increase, resulting in a wider range of signals observed in the graph.
If fs increases, Ts will reduce. In this case, the signals we will be able to see in the graph will be limited.
When fs = 500 and N = 250 are the same, the graph appears identical to the case where fs = 200 and N = 100.
We can observe signal analyses in the table.
Github Link: https://github.com/gokhanergen-tech/dearpygui-signal-waveforms
Top comments (0)