# Filter Practice Problem for P.E. Exam, HELP!

Hey everyone, I'm trying to get prepped from my EE Professional Engineering exam and there is a question that I cannot solve in the prep-guide. I'm hoping that someone might be able to help because it can be solved in MatLab (as noted in the book). Here is the problem description:

You are an engineer working at a major automotive manufacturer that offers a back-up/obstacle-detection system using sensors installed in the rear bumper. The sensors emit an ultrasonic signal ranging from 40-50 KHz. When an object is present, some of the ultrasonic signal is reflected back and the system will alert to driver to the obstacle. In minimal signal required for this detection is -70dBuV. The amplitude of the returned signal is indicative of the object's size.

Alongside the system, there is an electronic module radiating noise at 75 KHz. The level of this noise can be as high as -60dBuV. In order for this back-up system to function properly, the noise must be 15 dB below the desired signal. Note that the impedance and load impedance is 50 Ohms.

Problem:

Part A. Design an analog filter that will eliminate the impact of the noise on the system in a cost effective manner. Note any impacts that the filter may have on the back-up system.

Part B. Implement an Infinite Impulse Response (IIR) digital filter based on the analog filter in Part A. [Utilize MatLab]

Part C. Implement a Finite Impulse Response (FIR) digital filter that will eliminate the impact of the noise on the system. [Utilize MatLab]

Here is what I know thus far:

For Part A, I've located in the P.E. Reference manual the following instructions:

Create an Analog Filter
1. Transform to a low pass filter so that Filter Tables can be used
2. Normalize the Filter
3. Select the Filter Type
4. Determine the Filter Order
5. Establish T(s)
6. Verify T(s) by plotting the magnitude of T(j*omega)
7. Unnormalize Transform
8. Verify Unnormalized Transform by plotting magnitude of T(j*omega)

For Part B and C, I've narrowed it down to using the filter design tools to design a bandpass filters with pass band 40-50 kHz with no more than -25dB response at 75 kHz. I'm not sure if this is correct though.

I've located the following resources online but do not understand how to apply them towards my example.

http://www.mikroe.com/eng/chapters/view/73/chapter-3-iir-filters/
http://www.mathworks.com/help/toolbox/signal/ref/lp2bs.html

I really appreciate any help that you all would have to offer! This is the one problem that I haven't been able to solve in the manual!

Thank you!

Last edited by a moderator:

Hey Everyone, I put together the following code but I'm stuck! Please see below!

f_p=40000; %Pass Frequency in Hz

f_s=50000; %Stop Frequency in Hz

r_s=25; %Stopband Attenuation in dB

r_p=3; %Passband Ripple

d = fdesign.bandpass('Fst1,Fp1,Fp2,Fst2,Ast1,Ap,Ast2', 38e3,f_p,f_s,53e3,r_s,r_p,140e3);

%Fst1 — frequency at the edge of the end of the first stop band. Specified in normalized frequency units by default.

%Fp1 — frequency at the edge of the start of the pass band. Specified in normalized frequency units by default.

%Fp2 — frequency at the edge of the end of the pass band. Specified in normalized frequency units by default.

%Fst2 — frequency at the edge of the start of the second stop band. Specified in normalized frequency units by default.

%Ap — passband ripple in dB (the default units).

%Ast1 — attenuation in the first stopband in dB (the default units).

%Ast2 — attenuation in the second stopband in dB (the default units).

% Create the FIR filter

Hd2 = design(d,'equiripple'); fvtool(Hd2)

%Create the IIR filter

Hd1 = design(d,'butter'); fvtool(Hd1);

------------------------------------------------------------------

First off, does my methodology seem correct for creating an FIR and IIR filter that will accomplish this goal? Secondly, when I run the code, this is the error message I get:

??? Error using ==> fdesign.abstracttype.equiripple at 13 Frequency specifications must be between 0 and 1.

Error in ==> fdesign.abstracttype.superdesign at 106 Hd = feval(method, this, varargin{:});

Error in ==> fdesign.abstracttype.design at 11 varargout{1} = superdesign(this, varargin{:});

Error in ==> PEPractice at 13 Hd2 = design(d,'equiripple');

-----------------------------------------------------------------

I found the error, the correct d should be:
d = fdesign.bandpass('Fst1,Fp1,Fp2,Fst2,Ast1,Ap,Ast2',38e3,f_p,f_s,53e3,r_s,r_p,r_s,140e3);

Okay, so now that it compiled, I've ran into some concerns. For one thing, how can I tell if this is right and if it meets the problem description? I know it has something to do with checking the levels (magnitudes) in the amplitude response.