clc clear close all fprintf('-------------------------------------------------------------------\n'); fprintf(' Reads the Fluke scope .csv file of one channel \n'); fprintf('-------------------------------------------------------------------\n'); prefix_in = input('Enter the file prefix (.csv) => ', 's'); file_in_name = [prefix_in, '.csv']; file_in = fopen(file_in_name, 'r'); for k=1:21 i = 0; ch = '0'; while(ch ~= 10) ch = fscanf(file_in, '%c', 1); if (ch ~= 10) i = i+1; str(i) = ch; end; end; str = strrep(str,'"',''); str = strrep(str,',',' '); %fprintf('%s',str) clear str end; for i=1:512 t_in(i) = fscanf(file_in, '%f', 1); dum = fscanf(file_in, '%c', 1); v_in(i) = fscanf(file_in, '%f', 1); end; fclose(file_in); Ts = t_in(2) - t_in(1); Fs = 1/Ts; N = 500; fn = Fs/N; k = [0:1:N-1]; n = [0:1:N-1]; t = k*Ts; for i=1:N vt(i) = v_in(i); end; if (mod(N,2) == 0) f = -Fs/2 + n*fn; else f = -Fs/2 + n*fn + fn/2; end; Vf = (1/N)*fftshift(fft(vt)); fprintf('sampling frequency = %6.2f Hz \n', Fs); fprintf('frequency resolution = %6.2f Hz \n', fn); fprintf('sampling time = %6.2f us \n', Ts*1e6); fprintf('time interval = %6.2f ms \n', t(N)*1000); fprintf('number of points = %6.0f \n', N); figure(1) plot(1000*t, vt, 'r') axis([0 1000*t(N) -12 12]) xlabel('time in milli seconds') ylabel('volts') figure(2) plot(f, abs(Vf), 'r') grid on axis([-Fs/8 Fs/8 0 4]) xlabel('frequency in Hz') ylabel('|cn|')