문제
다음과 같이 표현되는 정현파에 대해 주어진 조건에 따라 각각의 파형을 그려라.
$x(t) = A \cos(2\pi f_0 t + \phi )$
(a) 위상이 다른 정현파
1. 초기화 및 환경 설정
close all;
clear;
clc;
- close all; : 모든 열린 그래프 창을 닫는다.
- clear : workspace의 모든 변수를 삭제한다.
- clc : 명령 창을 지운다.
2. 시간 벡터 설정
ti = -1;
tf = 3;
dt = 0.01;
t = ti:dt:tf;
t는 ti에서 tf까지 dt간격으로 생성된 시간 벡터
3. 신호 파라미터 설정
A = 1;
f0 = 1;
phase = [0 -(pi/2) pi/2];
4. 코사인 신호 생성
x1 = A * cos(2 * pi * f0 * t + phase(1));
x2 = A * cos(2 * pi * f0 * t + phase(2));
x3 = A * cos(2 * pi * f0 * t + phase(3));
5. 그래프 그리기
plot(t, x1, 'k');
axis([ti tf -1.2 * A 1.2 * A]);
hold on
plot(t, x2, '-.b');
plot(t, x3, '--r');
legend('x1', 'x2', 'x3', 'Location', 'northeast')
- plot(t, x1, 'k') : 시간 t에 따른 x1 신호를 검은색('k')으로 플로팅한다.
- axis([ti tf -1.2 * A 1.2 * a]) : 그래프의 축 범위를 설정한다. x축은 ti~tf, y축은 -1.2 * A ~ 1.2 * A이다.
- hold on : 다음 플롯이 현재 그래프에 추가되도록 한다.
- '-.b' : 파란색 점선
- '--r' : 빨간색 점선
legend 함수는 여러 개의 문자열 인수와 선택적인 이름-값 쌍 인수를 받을 수 있다.
- 여기서 'x1', 'x2', 'x3'은 각각 그래프에 플롯된 순서로 매칭된다.
- 'Location'은 범례의 위치를 설정하기 위한 속성 이름이다.
- 'northeast'는 범례가 그래프의 오른쪽 상단에 위치하도록 지정한다.
- 속성에 사용할 수 있는 값들은 다음과 같다. north, south, east, west, northeast, northwest, southeast, southwest, best(MATLAB이 가장 적합한 위치를 자동으로 선택)
(b) 주파수가 다른 정현파
ti = -1; tf = 3; dt = 0.01;
t = ti:dt:tf;
A = 1;
freq = [1 2 3];
phase = 0;
x1 = A * cos(2 * pi * freq(1) * t + phase);
x2 = A * cos(2 * pi * freq(2) * t + phase);
x3 = A * cos(2 * pi * freq(3) * t + phase);
subplot(3, 1, 1)
plot(t, x1);
axis([ti tf -1.2*A 1.2*A]);
subplot(3, 1, 2)
plot(t, x2);
axis([ti tf -1.2*A 1.2*A]);
subplot(3, 1, 3)
plot(t, x3);
axis([ti tf -1.2*A 1.2*A]);
subplot 함수는 Figure 창을 격자로 나누어 각 격자에 개별 플롯을 배치한다.
subplot(m, n, p)는 Figure를 m행 n열의 격자로 나누고 p번 째 위치에 서브플롯을 생성한다.
'etc > MATLAB' 카테고리의 다른 글
[MATLAB] 1-2 신호의 에너지와 전력 계산하기 (0) | 2024.05.19 |
---|