MidtermEnd
This commit is contained in:
commit
817c15f33a
|
|
@ -0,0 +1,99 @@
|
|||
pkg load signal;
|
||||
|
||||
signal = csvread('unknownsignal.csv');
|
||||
#Create a window for the domain we want to study
|
||||
domainStart = 100;
|
||||
domainEnd = 400;
|
||||
|
||||
lengthDomain = domainEnd - domainStart +1;
|
||||
#window the signal
|
||||
signal_window = zeros(size(signal));
|
||||
signal_window(domainStart:domainEnd) = signal(domainStart:domainEnd) .* blackman(lengthDomain)';
|
||||
|
||||
#Plot the two raw signals
|
||||
figure;
|
||||
subplot(1,2,1);
|
||||
plot(signal);
|
||||
title("Signal");
|
||||
xlabel("samples");
|
||||
ylabel("Amplitude");
|
||||
|
||||
subplot(1,2,2);
|
||||
plot(signal_window);
|
||||
title("Blackman signal windowing");
|
||||
xlabel("samples");
|
||||
ylabel("Gain");
|
||||
|
||||
#Apply FFT to both signals.
|
||||
signalFFT = fft(signal);
|
||||
signalFFTwindow = fft(signal_window);
|
||||
fs=600;
|
||||
F = (0:length(signal)-1)*(fs/length(signal));
|
||||
|
||||
figure;
|
||||
subplot(1,2,1);
|
||||
plot(F,signalFFT);
|
||||
title("Signal FFT");
|
||||
xlabel("Frequency");
|
||||
ylabel("Gain");
|
||||
|
||||
subplot(1,2,2);
|
||||
plot(F,signalFFTwindow);
|
||||
title("Blackman signal FFT");
|
||||
xlabel("Frequency");
|
||||
ylabel("Gain");
|
||||
|
||||
|
||||
order = 50;
|
||||
fc = 100; % cutoff frequency
|
||||
h_fir1 = fir1(order, fc/(fs/2));
|
||||
|
||||
n = 4;
|
||||
Wn = fc/(fs/2);
|
||||
[b, a] = butter(n, Wn);
|
||||
|
||||
|
||||
% filter the signals
|
||||
filtered_signal = filter(h_fir1, 1, signal);
|
||||
filtered_windowed_signal = filter(h_fir1, 1, signal_window);
|
||||
filtered_signal_butter = filter(b, a, signal);
|
||||
filtered_windowed_signal_butter = filter(b, a, signal_window);
|
||||
|
||||
% plot the signals using subplots
|
||||
t = linspace(0, length(signal)/fs, length(signal));
|
||||
t_window = linspace(0, length(signal)/fs, length(signal));
|
||||
|
||||
subplot(2,2,1);
|
||||
plot(t, signal);
|
||||
title('Original Signal');
|
||||
|
||||
subplot(2,2,2);
|
||||
plot(t_window, signal_window);
|
||||
title('Windowed Signal');
|
||||
|
||||
subplot(2,2,3);
|
||||
plot(t, filtered_signal);
|
||||
title('FIR1 Filtered Signal');
|
||||
|
||||
subplot(2,2,4);
|
||||
plot(t_window, filtered_windowed_signal);
|
||||
title('FIR1 Filtered Windowed Signal');
|
||||
|
||||
figure;
|
||||
|
||||
subplot(2,2,1);
|
||||
plot(t, signal);
|
||||
title('Original Signal');
|
||||
|
||||
subplot(2,2,2);
|
||||
plot(t_window, signal_window);
|
||||
title('Windowed Signal');
|
||||
|
||||
subplot(2,2,3);
|
||||
plot(t, filtered_signal_butter);
|
||||
title('Butterworth Filtered Signal');
|
||||
|
||||
subplot(2,2,4);
|
||||
plot(t_window, filtered_windowed_signal_butter);
|
||||
title('Butterworth Filtered Windowed Signal');
|
||||
|
||||
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue