% C. Talarico % examplecs.m % post process LTspice simulation with Matlab clear all; clc; close all; filename = 'commonsource.txt'; [nvars blocks points pData] = ltsExp2Matlab(filename); mR = blocks*nvars; % number of data sets (rows of pData) nR = points; % number of points in each data set (columns of pData) pData freq = pData(1,:); vout = pData(2,:); magdb = 20*log10(abs(vout)); phase = 180*unwrap(angle(vout))/pi; Av0 = abs(vout(1)) % DC gain in V/V Av0db = magdb(1) % DC gain in dB f3db = interp1(magdb, freq, magdb(1)-3, 'spline') % plots figure(1); subplot(2,1,1); semilogx(freq,magdb,'linewidth',2); grid on; ax = gca; set(ax, 'fontName', 'Arial Narrow', 'fontsize', 16); xlabel('freq [Hz]','fontsize',16, 'fontName', 'Arial Narrow'); ylabel(' Gain [dB]','fontsize',16, 'fontName', 'Arial Narrow'); % Annotate title str1 = sprintf('Voltage Gain vs. Frequency\n'); str2 = sprintf('|DC Gain| = %0.2g dB (%0.2g V/V) - f_{3dB} = %3.2f MHz', Av0db, Av0, f3db*1e-6); str = {str1,str2}; title(str,'fontsize',18,'fontName', 'Arial Narrow','fontWeight','bold'); subplot(2,1,2); semilogx(freq,phase,'linewidth',2,'color','m'); grid on; ax = gca; set(ax, 'fontName', 'Arial Narrow', 'fontsize', 16); xlabel('freq [Hz]','fontsize',16,'fontName', 'Arial Narrow'); ylabel('Phase [degrees]','fontsize',16,'fontName', 'Arial Narrow'); title('Phase vs. Frequency','fontsize',18,'fontName', 'Arial Narrow','fontWeight','bold');