MATLAB 으로 PDF 를 그려보자.
PDF(Probability Density Function)라는게 어케 보면 Histogram이랑 개형은 같지만
엄밀하게 얘기하면 좀 다르다고 할 수 있다.
그 차이는 바로 Normalization에 있다.
PDF 의 특징은 그 적분값이 1 이어야 하므로 당연히 Histogram 을 그린후 그 넓이를 Normalization 을 해야한다.
간단하게 [0 100] 구간의 Uniform pdf 를 그려 보자.
MATLAB editor 에 다음과 같이 타이핑 하고 실행해 보자
<MATLAB CODE>
N = 3000;
Uniform_sample=rand(N,N)*100; % 0~ 100 사이의 Uniform sample 을 발생시킨다.
[pdf,X]= hist(Uniform_sample(:), 500); % hist 함수를 이용하여 구간별로 쌓아준다
resol=X(2)-X(1); % resolution을 계산한다.
pdf= pdf/(N^2.*resol); % Normalization 해 준다.
figure(1), bar(X,pdf), grid on, title('Uniform PDF') % 그래프를 그린다.
그래프를 보면 딱 봐도 넓이가 100 * 0.01 =1 이라는 것을 알 수 있다. 이게 제대로 된 PDF 이다.
그럼 좀더 나아가서 rand() 함수를 이용하여 Gaussian sample 을 만들고 PDF 를 그려 보자.
<MATLAB CODE>
N = 3000;
std = 2; % 표준편차
std_normal=sqrt(-2*log(rand(N))).*cos(2*pi*rand(N)); % 평균이 0 이고 분산이 1인 Gaussian Sample
NormalSample=std*std_normal; % 표준편차가 2인 Gaussian Sample
[pdf,X]= hist(NormalSample(:), 500); % hist 함수를 이용하여 구간별로 쌓아준다
resol=X(2)-X(1); % resolution을 계산한다.
pdf= pdf/(N^2.*resol); % Normalization 해 준다.
figure(2), bar(X,pdf), grid on, title('Gaussian PDF') % 그래프를 그린다.
'programming language > MATLAB' 카테고리의 다른 글
MATLAB filter, filtic 함수를 이용한 이산 시스템 응답 (609) | 2010.01.13 |
---|---|
MATLAB Upsample 과 FFT (4) | 2010.01.10 |
MATLAB 음성 파일 읽기, 재생 (0) | 2010.01.08 |
변수의 크기를 알아보자 (0) | 2010.01.08 |
MATLAB Zero padding 에 따른 FFT 결과 (0) | 2010.01.03 |
MATLAB - vectorize() (0) | 2010.01.01 |
MATLAB notebook (0) | 2010.01.01 |
MATLAB Iteration (1) | 2009.12.31 |
댓글