% SIMULATION OF ENVELOPE DETECTOR % --- gdiode = @(v) 40*double(v > 0).*v; v = linspace(-3,3,999); plot(v, gdiode(v), 'LineWidth', 2, 'Color','k'); axis([-3.5, 3.5, -0.5, 10.5]); R = 5; C = 0.1; L = 1001; dt = 1/(L - 1); t = -dt:dt:1; mu = 0.25; vi = (1 + mu*cos(2*pi*t)).*cos(2*pi*10*t); vo = zeros(1, L + 1); for k = 1:L vo(k + 1) = vo(k) - vo(k)*dt/R/C + gdiode(vi(k)-vo(k))*dt/C; end vi = vi(2:end); vo = vo(2:end); t = t(2:end); plot(t, vi, 'k', t, vo, 'm', 'LineWidth', 2)