MATLAB: Low pass filter VS high pass filter

cutofffcfshigh pass filterlow-pass filterMATLABsamplingsignal processing

I have this filter and I want to analyze it. How can I know from the plot that its a highpass filter or a lowpass filter?

Best Answer

Calculate the Fourier transform of the filter from the signals.
t = ...; % Time Vector
s = ...; % Original Signal Vector
s_filtered = ...; % Filtered Signal Vector
Ts = mean(diff(t)); % Sampling Interval (Assumes Constant Intervals)
Fs = 1/Ts; % Sampling Frequency
Fn = Fs/2; % Nyquist Frequency
L = numel(t); % Signal Length
FTs = fft(s)/L % Fourier Transform of Original Signal
FTs_filt = fft(s_filtered)/L; % Fourier Transform of Filtered Signal
Fv = linspace(0, 1, fix(L/2)+1)*Fn; % Frequency Vector (One-Sided Fourier Transform)
Iv = 1:numel(Fv); % Index Vector (One-Sided Fourier Transform)
H = FTs_filt ./ FTs; % Complex Transfer Function
figure
subplot(2,1,1)
plot(Fv, abs(H(Iv)))
ylabel('Amplitude')
grid
subplot(2,1,2)
plot(Fv, angle(H(Iv)))
xlabel('Frequency')
ylabel('Phase')
grid
sgtitle('Bode Plot of Filter')
That should reveal the filter characteristics, as well as reasonably accurate aspects of its design (e.g. passband and stopband frequencies).