You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Once you have calculated the Es, the sampled_vector must be divided by the square root of the energy, not only by the energy itself. In code, it should be something like this:
energy = np.sum(np.abs(sampled_vector) ** 2) sampled_vector = sampled_vector / math.sqrt(energy)
I've plotted both versions and these are the results.
Before:
After:
Therefore the signals are being unnecessarily compressed, which can make it harder for (some) models to extract meaningful information, or even prevent it altogether.
Do my findings make sense to you or is there anything that I may have not understood properly? Please, check it and update us with your conclusions if you are so kind.
I look forward to hearing from you.
Regards,
Ramiro Utrilla
The text was updated successfully, but these errors were encountered:
Actually, in addition to the previous energy normalization, what is really working for me is to scale the IQ samples between -1 and 1. So that's how this part of my code looks like:
And that's the appearance of the signals after both normalization processes:
As far as I know this kind of normalization is pretty common as some models are more sensitive to the scale of the input data than others. Was there any reason not to originally do this in the dataset? Am I missing something?
It'd be great if someone could give further details on the best practices for normalizing this kind of data.
Hi there!
I've realized that in the dataset generation, the energy of the 128-sample data vectors is being normalized to unity as follows (lines 65 and 66):
However, to the best of my knowledge, the energy Es of a discrete-time signal x(n) is defined mathematically as:
Once you have calculated the Es, the sampled_vector must be divided by the square root of the energy, not only by the energy itself. In code, it should be something like this:
energy = np.sum(np.abs(sampled_vector) ** 2)
sampled_vector = sampled_vector / math.sqrt(energy)
I've plotted both versions and these are the results.
Before:
After:
Therefore the signals are being unnecessarily compressed, which can make it harder for (some) models to extract meaningful information, or even prevent it altogether.
Do my findings make sense to you or is there anything that I may have not understood properly? Please, check it and update us with your conclusions if you are so kind.
I look forward to hearing from you.
Regards,
Ramiro Utrilla
The text was updated successfully, but these errors were encountered: