Filter Selection for Noisy Signal
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
C. Robinson
el 26 de Mzo. de 2018
Comentada: Star Strider
el 27 de Mzo. de 2018
Hello,
I am filtering a noisy signal that has a carrier frequency of 800 Hz, but was sampled at a very high frequency, ~250 kHz. I generated the following code, and it filters the signal, but produces a start-up transient (which doesn't filter the beginning of the data). It may just be a feature of the first order filter that I am using (which has a tau). Are there any other filters available that could accomplish my goal (filtering all of the data w/o a transient)? I attached 3 pictures: the first is the entire signal (zoomed out); the second is of the start up transient, and the third is of a portion of the signal that shows I am filtering it (at least in the time domain).
Fc = 800; % filter corner (Hz)
Wc = 2*pi*Fc; % filter corner (rad/sec)
tau = 1/Wc; % filter time constant (sec)
% First order lag
% 1
% G(s) = _____________
% tau*s + 1
num = [1];
den = [tau 1];
printsys(num,den); % analog filter
% Data sampled at 249,600 Hz
Ts = 4.0064e-06
% Convert analog filter to digital
[b,a] = c2dm(num,den,Ts);
printsys(b,a,'z');
den = [a(1) a(2)];
num = [b(1) b(2)];
test = filter(num,den,data);
figure; plot(data); hold on; plot(test, 'r')
0 comentarios
Respuesta aceptada
Más respuestas (0)
Ver también
Categorías
Más información sobre Digital Filtering 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!