How do I get back filtered data using 'filter' after after getting the digital filter from bandpass?

조회 수: 2 (최근 30일)
Hello everyone, I'm trying to figure out the bandpass and filter function, which I am using to filter out signals in the range of 1.9 to 4.1 from my data. My code below is based on the documentation. Basically, after getting the digital filter, d, from bandpass(), I tried using filter to get back the filtered signals, but I cannot seem to get the same output as from when using bandpass. Thank you in advance!
load data
fs = 24;
figure
bandpass(data,[1.9 4.1],fs)
[~, d] = bandpass(data,[1.9 4.1],fs);
figure
plot(filter(d, data))
[~, d] = bandpass(x,[100 200],fs);
figure
plot(filter(d, data))

채택된 답변

Chunru
Chunru 2021년 6월 11일
편집: Chunru 2021년 6월 11일
% load data
data = randn(512, 1);
fs = 24;
figure
% design filter, filter the data, plot the results
bandpass(data,[1.9 4.1],fs)
% desing the filter only
[~, d] = bandpass(data,[1.9 4.1],fs);
% filter the data using the filter object. (bandpass use filtfilt
% internally by default)
xf = filtfilt(d, data);
% compare the origninal and the filtered signal
t =(0:length(data)-1)/fs;
figure
plot(t, data, 'b', t, xf, 'r');
legend('Original', 'Filtered');
  댓글 수: 2
Ikmal Rosli
Ikmal Rosli 2021년 6월 11일
thank you. by the way, this may be a dumb question, but how do I check, the default function used in bandpass?
Chunru
Chunru 2021년 6월 11일
편집: Chunru 2021년 6월 11일
Hi. The question is not dumb. :-).
You can search document, eg. doc bandpass
Many matlab function has source code. You can edit bandpass. Then you can debug the program by stepping through.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Smoothing and Denoising에 대해 자세히 알아보기

제품


릴리스

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by