removal of frequency from 0-200HZ
1 次查看(过去 30 天)
显示 更早的评论
I am removing frequecy from( 0-200)HZ from FFT spectrum and then i have taken IFFT of signal to see complete spectrum in time domain.To watch complete spectrum in time domain of signal i have removed frequency from (-200 to 200)HZ.I am not sure i did right or wrong.If anyone knows then please help me.Thanks in advance.
clc,close all,clear all
codn=70;
% fc=6e+3;
fs=36000;
bode=1000;
code=round(rand(1,codn));
code_len=round(1/bode/(1/fs))
for ii=1:codn
x((ii-1)*code_len+1:code_len*ii)=code(ii);
end
x2 = x-(1/2) % get rid of most of the dc peak
% set up time and frequency arrays
fs = 36000;
N = length(x);
delt = 1/fs;
delf = fs/N;
tvec = (1:N)*delt
fvec = (-N/2:N/2-1)*delf % shifted frequency array
figure(1)
plot(tvec,x2(1,:)+0.5)
title('orignal baseband signal')
xlabel('time');
ylabel('amplitude')
ylim([-1 1.5])
y = fftshift(fft(x2)/N);
figure(2)
plot(fvec,abs(y))
xlabel('frequency');
ylabel('amplitude')
figure(3)
z=y;
z(fvec>=-200 & fvec<=200)=0
plot(fvec,abs(z))
xlabel('frequency removed from -200 to 200 HZ due to symmetry of signal');
ylabel('amplitude')
figure(4)
zf=fftshift(z)*N
zifft=ifft(zf)+.5
plot(tvec,abs(zifft))
xlabel('time');
ylabel('amplitude')
0 个评论
回答(1 个)
Matthias Witkowski
2019-9-25
It is not recommendable to zero fft bins as this corresponds to a convolution with a sinc function in time domain, this will introduce unwanted behavior in your time domain signal. You should rather use a high pass filter in your case.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Spectral Measurements 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!