How to remove a particular frequency in the fft code?

15 vues (au cours des 30 derniers jours)
Deepika Behmani
Deepika Behmani le 19 Juin 2019
Commenté : Deepika Behmani le 19 Juin 2019
I am doing FFT of 1000000 data points. I have attached my FFT code. In this code, i got frequency 10.1 kHz but i want to remove that frequency. what kind of filter i can use and is chebyshev type 1 is suitable for this purpose.
data = csvread('5fr_chdis.csv');
time = data(1:1000000,3);
S = data(1:1000000,4);
Fs = 10^(8); % sampling frequency
T = 1/Fs; % sampling timeperiod
L = 1000000; % length of signal
t = (0:L-1)*T;
f = Fs*(0:(L/2))/L;
f1 = f/1000;
Y = fft(S);
P2 = abs(Y/L);
P1 = P2(1:L/2+1);
P1(2:end-1) = 2*P1(2:end-1);
plot(f1,P1)
title('Frequency spectrum')
xlabel('frequency (kHz)')
ylabel('Amplitude')
%axis([0 50 ylim])
axis([100 200 0 0.2])

Réponse acceptée

Walter Roberson
Walter Roberson le 19 Juin 2019
[~, idx] = min(abs(f - 10.1)); %which bin is closest to 10.1 ?
Y(idx) = 0; %zero that bin
Y(end-idx+2) = 0; %zero its complex conjugate
  1 commentaire
Deepika Behmani
Deepika Behmani le 19 Juin 2019
if i understand clearly bin means closest frequency to 10.1, that is 10 . correct me if i am wrong. and if i put that closest bin in place to f then where should i implement your code in my code?

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Fourier Analysis and Filtering 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!

Translated by