Filter Sound from Data

I have frequency-based data sets (with column 1 for time and column 2 for amplitude), and I use the following code to filter out the sound. I'm not convinced that this is the most effective system as I believe this process changes the time at which other signals occur. Is there a better system for filtering data?
BP = [0.8725 0.8925]; %Frequency filter band
Fs = 1/(data(2,1)-data(1,1)); %Sampling Freq.
Y00 = bandpass(data(:,2),BP,Fs); %Filtered data

Answers (2)

Jan
Jan on 22 Feb 2022

0 votes

filtfilt works without shifting the data.

1 Comment

How is filtfilt different to Bandpass?

Sign in to comment.

Star Strider
Star Strider on 22 Feb 2022

0 votes

That appears to me to be correct.
If you are using the same filter for all the data sets, return the digital filter object after the first set:
[Y00,df] = bandpass(data(:,2),BP,Fs, 'ImpulseResponse','iir'); %Filtered data
to design an elliptic filter (see ellip for details) and return it as well.
Then in subsequent data sets, use it with filtfilt to do the filtering:
Y01 = filtfilt(df, data2(:,2));
That elimiinates the computational expense of designing the same filter for each signal.
.

2 Comments

Apologies as I am not well versed in Matlab, but what dyou mean by "return the digital filter", and how does this work with filtfilt?
The bandpass and related functions optionally return the digital filter object they created as the second output. See for example the Bandpass Filter Steepness section of the documentation.
data = randn(500,2); % Create Matrix
data(:,1) = linspace(0, 499, 500)'/100;
data2 = randn(500,2); % Create Matrix
t = data(:,1);
BP = [0.8725 0.8925]; %Frequency filter band
Fs = 1/(data(2,1)-data(1,1)); %Sampling Freq.
[Y00, df] = bandpass(data(:,2),BP,Fs,'ImpulseResponse','iir'); %Filtered data
Y01 = filtfilt(df, data2(:,2));
figure
plot(t, Y00)
grid
figure
plot(t, Y01)
grid
The data are synthetic, however the code demonstrates the correct procedure.
.

Sign in to comment.

Categories

Find more on Audio Processing Algorithm Design in Help Center and File Exchange

Products

Release

R2021b

Tags

Asked:

on 22 Feb 2022

Commented:

on 22 Feb 2022

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!