본문 바로가기

etc/MATLAB

[MATLAB] 1-1 정현파 그리기

문제

다음과 같이 표현되는 정현파에 대해 주어진 조건에 따라 각각의 파형을 그려라.

 

$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