42 lines
1.0 KiB
Matlab
42 lines
1.0 KiB
Matlab
clc
|
|
clear all
|
|
close all
|
|
pkg load signal
|
|
|
|
signal = csvread('unknownsignal.csv');
|
|
Fs=300;
|
|
N = length(signal);
|
|
t = 0:1/Fs:(N-1)/Fs;
|
|
rectwin = rectwin(N);
|
|
figure;
|
|
plot(t,signal.*rectwin);
|
|
xlabel('Time (s)');
|
|
ylabel('Amplitude');
|
|
title('Unknown Signal in Time Domain');
|
|
|
|
hammingwin = @hamming(N);
|
|
signal_hamming = signal.*hammingwin;
|
|
signal_fft = abs(fft(signal_hamming)/N).^2;
|
|
f = Fs*(0:N-1)/N;
|
|
figure;
|
|
plot(f,signal_fft);
|
|
xlabel('Frequency (Hz)');
|
|
ylabel('Power Spectral Density (dB/Hz)');
|
|
title('Power Spectral Density of Unknown Signal');
|
|
|
|
Wn = [30 40]/(Fs/2);
|
|
[b,a] = butter(4,Wn,'bandpass');
|
|
signal_filtered = filter(b,a,signal);
|
|
figure;
|
|
plot(t,signal_filtered.*rectwin);
|
|
xlabel('Time (s)');
|
|
ylabel('Amplitude');
|
|
title('Filtered Signal in Time Domain');
|
|
|
|
signal_filtered_hamming = signal_filtered.*hammingwin;
|
|
signal_filtered_fft = abs(fft(signal_filtered_hamming)/N).^2;
|
|
figure;
|
|
plot(f,signal_filtered_fft);
|
|
xlabel('Frequency (Hz)');
|
|
ylabel('Power Spectral Density (dB/Hz)');
|
|
title('Power Spectral Density of Filtered Signal'); |