공학왕이될거야

'matlab'에 해당되는 글 2건

  1. inverse kinematics 원 그리기 5
  2. rectangular window & hamming window

inverse kinematics 원 그리기

전공/MATLAB

%% spec

clear

clc

L1 = 1; L2 = 1; r=0.5; % 링크 1 , 2 의 길이 및 경로 원의 반지름

phi= 0:1:360; % 0~ 360 까지 1 씩 값을 올림

xx = 1 + r*cosd(phi); % (1.1)r = 0.5 인 원을 그리기 위한 x

X = [xx xx xx xx xx]; %matrix를 만듬 phi0~360까지

yy = 1 + r*sind(phi); % (1.1)r = 0.5 인 원을 그리기 위한 y

Y = [yy yy yy yy yy]; %matrix를 만듬 phi0~360까지

%% plot

for i = 1:length(X) % X 행렬까지 반복 1부터 360까지의 X좌표 Y좌표를 하나하나 inverse kinematics 를 하기위함

x = X(i);

y = Y(i);

theta2 = acosd((x^2 + y^2 - L1^2 - L2^2)/(2*L1*L2)); % 세타2 값 정의

theta1 = asind((L2*sind(theta2))/(sqrt(x^2 + y^2))) + atand(y/x); % 세타1 값 정의

x1 = L1*cosd(theta1); % link 1 의 경로 x좌표

y1 = L1*sind(theta1); % 경로 y좌표

figure(1)

plot(X,Y,'k') % 원을 그림 'k'는 검은색을 나타냄

grid on %

hold on % 고정

H=plot([0 x1],[0 y1],'r','Linewidth',5) % 링크 1을 그린다?

hold on

H1=plot([x1 x],[y1 y],'b','Linewidth',5) % 링크 2을 그린다?

axis([-2 2 -2 2])

pause(0.01) % 빨리 돌게 하고싶으면 이거 시간 작게하면됩니당

delete(H) % deleteplotiter마다 지워줌 근데 원은지우면안되니까 링크만지웁니다.

delete(H1)

end

 

'전공 > MATLAB' 카테고리의 다른 글

rectangular window & hamming window  (0) 2017.05.31
inverse kinematics robot arm  (2) 2017.05.27
2-DOF inverse kinematics를 이용한 MATLAB 도형그리기  (2) 2017.05.27

rectangular window & hamming window

전공/MATLAB

① w_rect.m 코드

Zero-paddingfft, nomalization을 마친 Wk를 일반주파수 f에 대해 plot하기 위하여 plot x축을 linspace(0,1,N)이라 하였습니다. 이때 만일 각주파수 w에 관하여 나타내려면 linspace(-pi,pi,N)으로 나타내면 됩니다.

 

Log scale로 나타낼 때에는 이미 M값으로 normalize 되어 있기 때문에 20*log10(abs(Wk))라 표기하였습니다.

M 61일 때에도 동일하게 코드를 작성하였습니다.

M이 늘어났을 때 Main lobe의 폭이 좁아지고, Main lobe에 대한 Side lobe의 상대적인 크기가 작아졌으며 높이는 높아진 것을 확인할 수 있었다.

② win.m 코드

hdn은 식 10.2.2710.2.29를 참고하여 작성하였습니다. n0부터 N-1까지의 벡터이기 때문에 .* 연산을 해주었습니다. 또한 M이 홀수여서 31번째 값을 지정해주었습니다. w_rect_n hn에서 w_rect_n hdn을 곱할 때 행렬의 차원이 맞지 않다고 계속 오류가 나서 이를 맞춰 주기 위하여 zero-padding을 해주었습니다.

Plot w_rect.m과 동일하게 작성하였습니다.


Hamming window 식은 강의자료에 주어진 식을 참고하였으며, 위와 마찬가지로 행렬의 차원을 맞춰 주기 위하여 zero-padding 해주었습니다.

Rectangular windowhamming window를 비교해 보았을 때 세 가지 그래프 모두 변화가 있었다. 두번째 그래프로 비교해 보았을 때 Rectangular windowHamming window에 비해 Main lobe의 폭이 좁은 것을 확인할 수 있었다. , Transition band가 더 sharp했다. 세번째 LPF를 비교해 보았을 땐, Hamming windowRectangular window에 비해 StopbandPassband ripple이 눈에 띄게 더 작은 것을 확인할 수 있었다.

 

'전공 > MATLAB' 카테고리의 다른 글

inverse kinematics 원 그리기  (5) 2017.07.04
inverse kinematics robot arm  (2) 2017.05.27
2-DOF inverse kinematics를 이용한 MATLAB 도형그리기  (2) 2017.05.27