In Simulink, I have connected a sine wave to zero-order hold and zero-order hold to analytic signal block, as in the figure below. My purpose is to transform the real signal to the corresponding analytic signal by adding complex part, in order to be able to do some phase shifting operations. Zero-order hold block is to discretize the signal, as the analytic signal accepts only discrete signals.

enter image description here Now, the problem is this: when I discretize the signal "more finely" by setting the sample time of zero-order hold to a smaller number (eg. 0.00003), imaginary part of the analytic signal output is reduced significantly, while the real part staying normally, as seemn in the figure below. On the contrary, when the sample time is set to a greater number (eg. 0.0003) amplitudes of the real and the imaginary parts of the analytic signal output are the same, as expected.

enter image description here

According to the Matlab’s documentation, analytic signal block’s output is like this: y=u+jH{u}, H{} denoting the Hilbert transform. So, in the setup mentioned above it seems like when the continouos signal is sampled wΔ±th a higher frequency, Hilbert transform reduces the amplitude.

Why would Hilbert transform reduce the amplitude, or is there a problem with my setup in Simulink?