Borrar filtros
Borrar filtros

How to apply bandpass filter

4 visualizaciones (últimos 30 días)
Elysi Cochin
Elysi Cochin el 22 de Jul. de 2017
Comentada: muhammad faiz el 4 de Dic. de 2017
The attached signal file is of 20Hz sampling rate. Each row is a signal, i needed to to apply bandpass filter to each row and convert it in the frequency range 0.34 - 1 Hz.

Respuesta aceptada

Star Strider
Star Strider el 22 de Jul. de 2017
This filter will do what you want:
D = load('ehgSignal.mat');
s = D.val';
Fs = 20; % Sampling Frequency (Hz)
Fn = Fs/2; % Nyquist Frequency (Hz)
Wp = [0.34 1.00]/Fn; % Passband Frequencies (Normalised)
Ws = [0.30 1.05]/Fn; % Stopband Frequencies (Normalised)
Rp = 10; % Passband Ripple (dB)
Rs = 50; % Stopband Ripple (dB)
[n,Ws] = cheb2ord(Wp,Ws,Rp,Rs); % Filter Order
[z,p,k] = cheby2(n,Rs,Ws); % Filter Design
[sosbp,gbp] = zp2sos(z,p,k); % Convert To Second-Order-Section For Stability
figure(1)
freqz(sosbp, 2^16, Fs) % Filter Bode Plot
tv = linspace(0, 1, length(s))/Fs; % Time Vector (s)
s_filt = filtfilt(sosbp,gbp, s); % Filter Signal
figure(2)
plot(tv, s_filt)
grid
NOTE The filtfilt function will operate on the first non-singleton dimension of ‘s’, so since ‘s’ is (12 x 35220), it is necessary to transpose it to filter along the rows ( columns in the transposed matrix).
  3 comentarios
Star Strider
Star Strider el 24 de Jul. de 2017
Yes. The ‘s_filt’ variable are the filtered signals.
You can name the vectors whatever you want, of course.
muhammad faiz
muhammad faiz el 4 de Dic. de 2017
sorry sir, i already try this code and it has some error on it, after i run this coding it say that "Reference to non-existent field 'val'." what does this mean ?

Iniciar sesión para comentar.

Más respuestas (1)

muhammad faiz
muhammad faiz el 4 de Dic. de 2017
excuse me sir, sorry for asking, i'm still new in using the matlab software. But i need to do a bandpass filter, which is i need to apply the band pass filter to the sound signal. right now i only knew how to play the audio file from the matlab and the file was in .wav format, how to get the .mat format from the file ? and how to apply the band pass filter coding sir ? i don't really understand about it. and what does the ehgsignal.mat mean ? i hope you can help me figure out this, thank you sir

Categorías

Más información sobre Measurements and Spatial Audio en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by