How to apply a bandstop filter after performing FFT
10 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
How to apply a bandstop filter after performing FFT on the this data, to remove the spikes ? SC is the data matrix.
rows1 =length(SC(:,2));
incr1=1/(rows1+1)*12;
fmax1=12*(1-1/(rows1+1));
X1=[0:incr1:fmax1/2]';
Y1 = abs(fft(SC(1:rows1,2),rows1));
5 commentaires
Walter Roberson
le 17 Juin 2021
Example:
data = randn(1, 50);
plot(data)
title('original data');
Y1 = fft(data);
bins_of_interest = 5:22;
damping = exp(-(1:length(bins_of_interest)));
Y1(bins_of_interest) = Y1(bins_of_interest) .* damping;
Y1(end+2-bins_of_interest) = conj(Y1(bins_of_interest));
back_data = ifft(Y1);
whos back_data
plot(back_data)
title('reconstructed')
Your bins_of_interest should be chosen according to the sampling frequency and the number of points, and which frequencies you want to filter out; one of the links I posted shows how "wide" each bin is. Your "damping" could be constant or could be any curve that is appropriate for your circumstances, in recognition that you might not be wanting to filter each frequency equally.
Réponses (0)
Voir également
Catégories
En savoir plus sur Frequency Transformations dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!