I am rather new to Matlab and I just cant make sense of what I see in the bode plot of the continuous and discrete version of the same function. The bode plot of the continuous function looks as expected. However the bode plot of the discrete version has a phase offset of +90 degrees and the gain stays the same at lower frequencies. It's basically a lag compensator with an integrator. This is not the final result I am going for, but the easiest example I could think of to make the problem as clear as possible. Please note that I am using a rather high sampling rate of ~12 MHz, which is what I need in the final hardware design. The high sampling rate seems to be part of the problem. With lower sampling rates the frequency at which the bode plots differ gets shifted to the left.
Can anyone explain this behaviour and maybe how I can achieve a result that is closer to the continuous bode plot using the high sampling rate?
Code of the example:
FS = 48000*256; T_sample = 1/FS; accu = tf([0 1], [1 0]); lag = tf([10 1], [100 1]); lag_d = c2d(lag, T_sample, "zoh"); accu_d = c2d(accu, T_sample, "zoh"); bode(lag*accu, lag_d*accu_d);