Hi, at my previous post i talked about the filters and input-output relationship.
As you remember i mentioned that i will design the discrete-time
filters with Butterworth and Chebyshev approximations.
Let’s see the properties of the filter again.
0.8 < |H(exp(jw))| < 1 for 0 < w < 0.22*pi
|H(exp(jw))| < 0.26 for 0.32*pi < w < pi
For able to desing filter we will use “sptool” command. When we write ‘sptool’ to command window, we get SPTOOL:startup.spt window.
Then click ‘FIRbp[design]’ and ‘New’.
So we have a new window like ‘Filter Design & Analysis Tool-(FIRbp)’, change the values of filter at the blue arrows and right click to ‘Magnitude (DB)’ at the red arrow and hange as given. Finally, click ‘Design Filter’. After that click to ‘Edit’ and use ‘convert to single section’.
Now we will get our numerator and denominator coefficients of filter. Use this way; ‘File -> export (change name of coefficients) -> export’.
Name numerator coefficients b1,denominator coefficients a1 for Butterworth filter and b2,a2 for
f=linspace(-1,1,length(data)) BW = filter(b1,a1,data) CS1 = filter(b2,a2,data) figure; subplot(3,1,1) stem(f,fftshift(abs(fft(data)))); title('Magnitude response of my input signal'); grid on; subplot(3,1,2) stem(f,fftshift(abs(fft(BW)))); title('Magnitude response of my output,filtered by Butterworth '); grid on; subplot(3,1,3) stem(f,fftshift(abs(fft(CS1)))); title('Magnitude response of my output,filtered by Chebyshev'); grid on;
Let’s examine the differences Butterworth and Chebyshev approximations.
As you see transition region at Chebyshev approximation is smaller than Butterworth approximation.
But at the passband region of Chebyshev approximation has ripples and filters the signal around zero.
I hope it would be helpful to you.
In my previous post i mentioned my system’s basics. Now i will show my project’s presentation video.
It is not in English but you can understand how it works.
Earlier i mentioned that it has two modes. One of rmanual another for automatic. You can choose this modes from screen.
If you want to quit just press the stop button.
You can see the distances and coordinates of the object at the manual mode.
Today, i will briefly introduce about my graduation project.
My project is making sonar with Arduino Mega R3.
The equipments that i used:
Arduino Mega R3
Futaba S3003 Servo Motor.
3.2″ TFT LCD Screen
Shield for TFT LCD Screen
12V-1A Dc Power Supply x2
As you know HC-SC04 distance sensors measured the distance with speed of sound.
Also we know that distance is equal to velocity times time (x=v.t).
At an certain degree my sensors measures whole time (going forward and coming back)
I divide that time by two and multiply bu speed of sound in terms of cm/us.
this is about 1/29. So my equation becomes; Distance = (time duration/2)/29.
At the beginning for automatic mode; press auto at the screen and for manual mode press at the screen.
You can exit from the modes by pressing stop.
Then let’s talk about rotationary system. I placed one of my sensor at 0 degrees and another at 180 degrees.
They stand opposite to each other. While my servo motor is on , it turns from 0 to 180 degree and comes back
to origin (zero degree). In mean time one my sensor measures distance from 0 to 180 degree interval and other one is measures
180 to 360 degrees interval.
If it gets and object it multiplies the distance with cosine of angle for x-axis, with sine for y-axis.
Than i mapped my corrdinates to my radar cirle. It runs as this at automatic mode.
At manual mode , our only difference is input for servo motor in degree. I gave the input from joystick.
Also you can observe the x,y coordinates and distances for both sensors at manual mode.
I am going to post a video of my system while it is working.