Control Engineering/Linear System and Signal
Approximation of Impulse Delta Signal
Taesan Kim
2024. 8. 16. 04:18
Approximation of Impulse Delta Signal
Impulsive Signal, Kronecker Delta, Dirac Delta, Unit Doublet
Impulsive Signal, Kronecker Delta, Dirac Delta, Unit Doublet System identificationImpulsive Signal임펄스 신호는 시스템의 특성을 파악하기 위해 사용한다. 임펄스 신호는 0인 위치에서 함숫값이 무한대이며, 0이
taesan5435.tistory.com
위 포스팅을 읽어보면 알 수 있듯이 임펄스 신호는 매우 이상적이다. 따라서 숫자계산에 실용적이지 않다. 따라서 이상적인 함수 대신 다른 함수(Rectangular pulse)를 사용하여 근사한다. 오늘은 Matlab을 이용하여 Impulse Function을 근사해볼 것이다.
다음은 Matlab코드이다.
%================================================
%Handong Global University
%------------------------------------------------
%Name: Taesan Kim
%ID: 22300203
%Create: 2024.08.16
%Modifire: 2024.08.16
%------------------------------------------------
%Approximation of Impulsive delta signal
%================================================
clc;clear all;close all;
% 근사 함수를 생성한다.
function y = impulse_approximation(tau, time)
y = 1/ tau * (abs(time) < tau/2);
%시간의 절댓값이 (타우/2)보다 작을 때 계산하도록 한다.
end
% 타우값 리스트 생성
tau_values = [0.3, 0.2, 0.1];
% 시간 벡터 생성하기
% 1과 -1 사이에 생성하는 점의 개수 1000개
time = linspace(-1, 1, 1000);
% 컨테이너(figure) 생성
figure; axis equal;
% 각각의 타우로부터 함수값 구하기
for i = 1:length(tau_values)
tau = tau_values(i);
amplitude = impulse_approximation(tau, time);
plot(time, amplitude, 'DisplayName', sprintf('tau = %.1f', tau));
hold on;
% displayName : 줄이 나오게 하는 속성.
% 줄이 나오지 않게 하고 싶다면 HandleVisibility, off를 설정하면 된다.
% %.1f는 소숫점 1자리수까지 포멧
%hold on: 이전 그래프가 다음 그래프와 겹치도록 표현
end
% 범례와 제목 선정
xlabel('Time');
ylabel('Amplitude');
title('Approximation of Impulse Function');
legend('show');
% legend는 범례이다. 범례를 켜준다.
grid on;
% 격자를 보여주도록 한다.