У меня есть сигнал, и я хочу удалить из него частоту 20 Гц.Я просто применил 0 к частотным бинам.В бинах FFT я вижу все эти частотные бины, относящиеся к -20 Гц до 20 Гц, обнуляются.Но когда я делаю real(ifft)
, сигнал не меняется.Также, когда я делаю анализ спектра, я не вижу никаких изменений амплитуды.
Есть ли другой способ удаления частот?
Пожалуйста, см. Код ниже
[r c]=size(testshot3.traces(:,1));
slen=r;
fs=500;% sampling freq
nfft = 2^nextpow2(2*slen); % To use max. computational efficiency of FFT
fax = fs*(-nfft/2:nfft/2-1)'/nfft; %freq bins
len_fax=length(fax);
xx=find( (fax >= -20) & (fax <= 20));%frequency range that i like to remove
x=fft(testshot3.traces(:,ii),nfft); %fft of orignal signal
for i= 1:1:len_fax %scan through all frequency bins
if (i>=xx(1))&&(i<=xx(end)) %finding indices of fax btw -20 to 20 freq
x(i,:)=0;
end
end
xx=ifft(x);
xfil=real(xx(1:slen,:));
Оригиналсигнал: