diff options
Diffstat (limited to 'MATLAB/HW10/hw10.asv')
| -rw-r--r-- | MATLAB/HW10/hw10.asv | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/MATLAB/HW10/hw10.asv b/MATLAB/HW10/hw10.asv new file mode 100644 index 0000000..0868862 --- /dev/null +++ b/MATLAB/HW10/hw10.asv @@ -0,0 +1,77 @@ +data = importdata("C:\Users\Jacob McDonnell\Documents\CMPEN-472-HW\cmpen472hw10_McDonnell\data.csv"); + +sawtooth = data.data(:,1); +triangle = data.data(:,2); +square = data.data(:,3); +sawtooth125 = data.data(:,4); +square125 = data.data(:,5); +sawtooth250 = data.data(:,7) +time = data.data(:,6); +time = time / 1000000; % adjust to microseconds + +psw = CreatePlot(sawtooth,"Sawtooth Wave Two Cycles",time,1,512); +saveas(psw,"sawtooth2cycles.png"); +psw = CreatePlot(sawtooth,"Sawtooth Wave",time,1,2048); +saveas(psw,"sawtooth.png"); + +pt = CreatePlot(triangle,"Triangle Wave Two Cycles",time,1,1024); +saveas(pt,"triangle2cycles.png"); +pt = CreatePlot(triangle,"Triangle Wave",time,1,2048); +saveas(pt,"triangle.png"); + +psq = CreatePlot(square,"Square Wave Two Cycles",time,1,1024); +saveas(psq,"square2cycles.png"); +psq = CreatePlot(square,"Square Wave",time,1,2048); +saveas(psq,"square.png"); + +psw125 = CreatePlot(sawtooth125,"Sawtooth Wave 125Hz Two Cycles",time,1,128); +saveas(psw125,"sawtooth-125Hz2cycles.png"); +psw125 = CreatePlot(sawtooth125,"Sawtooth Wave 125Hz",time,1,2048); +saveas(psw125,"sawtooth-125Hz.png"); + +psq125 = CreatePlot(square125,"Square Wave 125Hz Two Cycles",time,1,128); +saveas(psq125,"square-125Hz2cycles.png"); +psq125 = CreatePlot(square125,"Square Wave 125Hz",time,1,2048); +saveas(psq125,"square-125Hz.png"); + +psw250 = CreatePlot(sa) + +Fs = 1/8000; % 8000Hz sampling frequency + +function p = CreatePlot(d, label, time, spos, epos) + p = figure; + plot(time(spos:epos), d(spos:epos)); + xlabel('Time in Seconds'); + ylabel('Signal Values'); + title(label); + grid on; +end + +function freqPlot = GeneratePlot(d,t,label) + Fs = 1/mean(diff(t)); + x = d - mean(d); + + n = length(x); % Number of samples + X = fft(x); % Compute the FFT + + % Only take the first half of the spectrum (positive frequencies) + X_mag = abs(X(1:floor(n/2))); % Magnitude of FFT + f = Fs * (0:floor(n/2)-1) / n; % Frequency vector + + freqPlot = figure; + plot(f, X_mag); + xlabel('Frequency (Hz)'); + ylabel('Amplitude'); + title(label); + grid on; +end + +swfft = GeneratePlot(sawtooth,time,'Sawtooth'); + +tfft = GeneratePlot(triangle,time,'Triangle'); + +sqfft = GeneratePlot(square,time,'Square'); + +sw125fft = GeneratePlot(sawtooth125,time,'Sawtooth 125Hz'); + +sq125fft = GeneratePlot(square125,time,'Square 125Hz'); |
