728x90
0. [matlab] - Plotting and Even and Odd Signals |
1. 풀이 |
함수의 even과 odd를 판별하는 문제였다.
이 판별은 매우 간단한데, 주기를 판별하기 위해 [f(x) + f(-x)]/2가 0인지, f(x)인지 확인하는 것을 통해 0인 경우 odd, f(x)인 경우 even이다.
2. 소스코드 |
1.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | % 1. Use "plot" in MATLAB to plot the following continuous-time signals (You have to plot the signals in one figure) % (1) % t = linspace(0,30, 1000); % [0,30]의 구간을 1000개 선형 간격 값으로 정의하는 함수 t = 0:0.001:30; x = make_x(t, 1, 0, 1, 0); % 시간: t, time_scale : 1, time_shift : 0, Amplitude_scale : 1, Amplitude_shift : 0 figure(1) % 창을 만들어준다. plot(t,x) % 현재 만들어진 창에 x(t) 그래프를 출력 % (2) x = make_x(t, 0.1, 0, 2, 0); % 시간: t, time_scale : 0.1, time_shift : 0, Amplitude_scale : 2, Amplitude_shift : 0 figure(2) plot(t,x) % 3 x = make_x(t, 0.1, 2, -0.1, 0); % 시간: t, time_scale : 0.1, time_shift : 2, Amplitude_scale : -0.1, Amplitude_shift : 0 figure(3) plot(t,x) % 이번에 활용되는 함수를 미리 정의한다. function a = make_x(t, t_scale, t_shift, a_scale, a_shift) a = a_scale*sin(3*pi*t_scale*(t - t_shift)/4).*exp(-t_scale*(t - t_shift)/2) + a_shift; end |
2.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | % 2. Use "stem" in MATLAB to plot the following discrete-time signals (You have to plot the signals in one figure) % (1) n = 0:1:30; % 구간 간격 크기가 1인 discrete한 시간 입력 x = make_x(n, 1, 0, 1, 0); % 변수 : n, time_scale : 1, time_shift : 0, Amplitude_scale : 1, Amplitude_shift : 0 figure(1) % 창을 만들어준다. stem(n,x) % 현재 만들어진 창에 x(t) 그래프를 출력 % (2) x = make_x(n, 0.1, 0, 2, 0); % 변수 : n, time_scale : 0.1, time_shift : 0, Amplitude_scale : 2, Amplitude_shift : 0 figure(2) stem(n,x) % (3) x = make_x(n, 0.1, 2, -0.1, 0); % 변수 : n, time_scale : 0.1, time_shift : 2, Amplitude_scale : -0.1, Amplitude_shift : 0 figure(3) stem(n,x) % 이번에 활용되는 함수를 미리 정의한다. function a = make_x(t, t_scale, t_shift, a_scale, a_shift) a = a_scale*sin(3*pi*t_scale*(t - t_shift)/4).*exp(-t_scale*(t - t_shift)/2) + a_shift; end | cs |
3.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 | % 3. Given the signal x(t) (and x[n]), design the algorithm that decompose x into even and odd signals. % Also, use your algorithm to find and plot even and odd signals of the following signals. % You MUST implement the algorithm of finding even and odd functions. % (1) % 함수의 변수는 t, time_scale : 1, time_shift : 0, Amplitude_scale : 1, Amplitude_shift : 0 % 이를 활용해서 Even signal을 만들어주었다. t = 0:0.01:30; % [0,30] 구간 설정 x = (make_x(t, 1, 0, 1, 0) + make_x(-t, 1, 0, 1, 0))/2; % even signal 분석 figure(11) % figure '11'을 만들어준다. plot(t,x) % 현재 만들어진 창에 x(t) 그래프를 출력 %odd signal x = (make_x(t, 1, 0, 1, 0) - make_x(-t, 1, 0, 1, 0))/2; % odd signal 분석 figure(12) % 창을 만들어준다. plot(t,x) % 현재 만들어진 창에 x(t) 그래프를 출력 % 함수의 변수는 t, time_scale : 0.1, time_shift : 0, Amplitude_scale : 2, Amplitude_shift : 0 % (2) x = (make_x(t, 0.1, 0, 2, 0) + make_x(-t, 0.1, 0, 2, 0))/2; % even signal 분석 figure(21) plot(t,x) x = (make_x(t, 0.1, 0, 2, 0) - make_x(-t, 0.1, 0, 2, 0))/2; % odd signal 분석 figure(22) plot(t,x) % 함수의 변수는 t, time_scale : 0.1, time_shift : 2, Amplitude_scale : -0.1, Amplitude_shift : 0 % (3) x = (make_x(t, 0.1, 2, -0.1, 0) + make_x(-t, 0.1, 2, -0.1, 0))/2; % even signal 분석 figure(31) plot(t,x) x = (make_x(t, 0.1, 2, -0.1, 0) - make_x(-t, 0.1, 2, -0.1, 0))/2; % odd signal 분석 figure(32) plot(t,x) % (4) 이 문제부터는 discrete-time signal을 분석한다. 변수로 n을 활용한다. % 함수의 변수는 n, time_scale : 1, time_shift : 0, Amplitude_scale : 1, Amplitude_shift : 0 n = 0:1:30; % n은 [0, 30]의 discrete한 값을 가진다. x = (make_x(n, 1, 0, 1, 0) + make_x(-n, 1, 0, 1, 0))/2; % even signal 분석 figure(41) stem(n,x) x = (make_x(n, 1, 0, 1, 0) - make_x(-n, 1, 0, 1, 0))/2; % odd signal 분석 figure(42) stem(n,x) % (5) % 함수의 변수는 n, time_scale : 0.1, time_shift : 0, Amplitude_scale : 2, Amplitude_shift : 0 x = (make_x(n, 0.1, 0, 2, 0) + make_x(-n, 0.1, 0, 2, 0))/2; % even signal 분석 figure(51) stem(n,x) x = (make_x(n, 0.1, 0, 2, 0) - make_x(-n, 0.1, 0, 2, 0))/2; % odd signal 분석 figure(52) stem(n,x) % (6) % 함수의 변수는 n, time_scale : 0.1, time_shift : 2, Amplitude_scale : -0.1, Amplitude_shift : 0 x = (make_x(n, 0.1, 2, -0.1, 0) + make_x(-n, 0.1, 2, -0.1, 0))/2; % even signal 분석 figure(61) stem(n,x) x = (make_x(n, 0.1, 2, -0.1, 0) - make_x(-n, 0.1, 2, -0.1, 0))/2; % odd signal 분석 figure(62) stem(n,x) % 이번에 활용되는 함수를 미리 정의한다. function a = make_x(t, t_scale, t_shift, a_scale, a_shift) a = a_scale*sin(3*pi*t_scale*(t - t_shift)/4).*exp(-t_scale*(t - t_shift)/2) + a_shift; end | cs |
3. 참고 |
https://ko.wikipedia.org/wiki/%ED%99%80%ED%95%A8%EC%88%98%EC%99%80_%EC%A7%9D%ED%95%A8%EC%88%98
질문이나 지적 있으시면 댓글로 남겨주세요~
도움 되셨으면 하트 꾹!