band pass filtering

Hi, I have a data sampled at 20MHz. I need to apply a bandpass filter centered at 5MHz and a bandwidth of 5MHz. I can do it by doing FFT, then eliminating unwanted components and then doing IFFT. Is there any simpler way?
-obli

Answers (1)

Doing it by FFT and eliminating the unwanted components is actually not desired because it normally results in some distortion of the signal. You can design a filter using your specifications. For example, with all your information, let's say you want to design a 10th order filter, you can do the following:
hd = design(fdesign.bandpass('N,Fc1,Fc2',10,2.5e6,7.5e6,20e6));
To see the filter response, you can do
fvtool(hd)
If you want to pass signal through the filter, you can do
y = filter(hd,x)

Categories

Find more on Fourier Analysis and Filtering in Help Center and File Exchange

Products

Asked:

on 17 May 2012

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!