% % copyright 2021 by Thomas P. Weldon % all rights reserved % clear all close all hidden clc sympref('HeavisideAtOrigin',1); %set equal to 1 as in unitstep disp('Digital non-Foster impedances ==================') disp('see theory at http://thomasweldon.com/tpw/papers/tpwIscas15digNonFos_22sep2014m_fix_ppt.pdf') clear z C Ts s Zc Hc syms z C Ts s Zc Hc disp('====Parameters Digital non-Foster design ==========:') disp('Sample period, sample rate, and capacitance:') fs=200*10^(6) %sample rate Ts=1/fs C=-25*10^(-12) %-80 pF % see Equation 3 and Fig. 4 at http://thomasweldon.com/tpw/papers/tpwIscas15digNonFos_22sep2014m_fix_ppt.pdf disp('Find Hc(z) for the digital capacitor:') Hc(z)=C*(1-1/z)/Ts; disp('Hc(z)=') olddigits=digits(); digits(5);vpa(eval(Hc(z))) digits(olddigits); disp('Find Zc(s):') Zc(s)=subs( (s*Ts/((1-1/z)*Hc(z))), z, exp(s*Ts)); olddigits=digits(); digits(5);vpa(eval(Zc(s))) digits(olddigits); fmax=10^8;fmin=fmax/10^5; fn=fmin:(fmax-fmin)/100:fmax; %linear freq scale hh=figure(3); %sp=subplot(3,1,1); plot(fn,real(vpa(Zc(i*2*pi*fn))),'r',fn,imag(vpa(Zc(i*2*pi*fn))),'b--',fn,imag(vpa(1./((-C)*(i*2*pi*fn)))),'b:', 'LineWidth',3); title({['Digital negative capacitor, C=' num2str(C) ' fs=' num2str(fs) ' samples/s' ], 'Digital Re\{Zc(s)\} in solid red, Im\{Zc(s)\} dashed blue, ', 'Im\{positive capacitance\} in dotted red' });xlabel('Time (s)'); grid on;xlim([0 fmax]);ylim([-250 750]); set(gca,'LineWidth',2,'ytick',[-250:125:750]); xlabel('Frequency(Hz)'); ylabel('ohms'); set(findall(hh,'Type','text'),'FontSize',14);
Copyright 2021 T. Weldon