How do I get back filtered data using 'filter' after after getting the digital filter from bandpass?
2 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
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)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/649610/image.png)
[~, d] = bandpass(data,[1.9 4.1],fs);
figure
plot(filter(d, data))
[~, d] = bandpass(x,[100 200],fs);
figure
plot(filter(d, data))
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/649615/image.png)
0 Commenti
Risposta accettata
Chunru
il 11 Giu 2021
Modificato: Chunru
il 11 Giu 2021
% 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 Commenti
Più risposte (0)
Vedere anche
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!