MATLAB: Plotting different filtering functions WITH DATA


Hi everyone,
I'm trying to filter an ECG signal but I am unsure how to filter the data and then plot the filter with my own data using the parameters set. I know that fvtool and freqz can plot the magnitude and phase but I can't figure out how to plot the filter on my data (yes I've tried using plot! πŸ™‚ ) I've used a ton of different filtering techniques and my latest can be seen below (taken from a previous post). Can I use "plot" to plot my data with this filter and if so how? Please let me know as I am desperate!!! Thank you in advance.
Fs = 2000; % Sampling Frequency
Fn = Fs/2; % Nyquist Frequency
Wp = [2 100]/Fn; % Filter Passband (Normalised)
Ws = Wp .* [0.5 1.2]; % Filter Stopband (Normalised)
Rp= 1;
Rs= 50;
[n,Ws] = cheb2ord(Wp,Ws,Rp,Rs);
[b,a] = cheby2(n, Rs, Ws);
[sos,g] = tf2sos(b,a);
%freqz(sos, 1024, Fs)

Best Answer

  • β€˜Can I use "plot" to plot my data with this filter and if so how?’
    Yes. It depends on what you want to plot.
    To plot your filtered data as a function of time, and if β€˜t’ is your time vector, and β€˜data’ is your data vector:
    filtered_data = filtfilt(sos, g, data);
    plot(t, filtered_data)