728x90
반응형
안녕하세요. 지난 포스팅의 디지털 영상 처리 - 단일 변수 함수의 이산 푸리에 변환(Discrete Fourier Transform)에서는 DFT를 유도하고 유도한 결과를 샘플링과 주파수 간격 간의 관계에 대해서 설명하였습니다. 오늘은 지난 포스팅에서 설명했던 예제를 함수를 구현해보도록 하겠습니다. 전체 코드는 아래의 제 깃허브 링크를 참고해주시길 바랍니다.
함수 자체가 아주 간단하기 때문에 함수 파일만 올리도록 하겠습니다.
1. 이산 푸리에 변환
function [F] = dft1(sample_value)
%dft1 1차원 데이터에 이산 푸리에 변환을 수행하는 함수
% sample_value : 샘플링된 함수
M = size(sample_value, 2);
F = zeros(size(sample_value));
% exp(-j2\pi\mu x/M) = cos(2\pi\mu x/M) - jsin(2\pi\mu x/M)
for i=1:size(F, 2)
for j=1:size(sample_value, 2)
F(i) = F(i) + sample_value(j) * (cos(2*pi*(i - 1)*(j - 1)/M) - 1i*sin(2*pi*(i - 1)*(j - 1)/M));
end
end
end
2. 이산 역푸리에 변환
function [f] = idft1(fourier_value)
%idft1 1차원 데이터에 이산 역 푸리에 변환을 수행하는 함수
% fourier_value : 샘플링된 푸리에 함수
M = size(fourier_value, 2);
f = zeros(size(fourier_value));
% exp(j2\pi\mu x/M) = cos(2\pi\mu x/M) + jsin(2\pi\mu x/M)
for i=1:size(f, 2)
for j=1:size(fourier_value, 2)
f(i) = f(i) + fourier_value(j) * (cos(2*pi*(i - 1)*(j - 1)/M) + 1i*sin(2*pi*(i - 1)*(j - 1)/M));
end
end
f = f / M;
end
728x90
반응형
'image processing' 카테고리의 다른 글
디지털 영상 처리 - 2D DFT 특성 1 (0) | 2021.04.10 |
---|---|
디지털 영상 처리 - 2변수 함수로의 확장 (1) | 2021.04.07 |
디지털 영상 처리 - 단일 변수 함수의 이산 푸리에 변환(Discrete Fourier Transform) (0) | 2021.04.05 |
디지털 영상 처리 - 샘플링 정리와 샘플링된 함수 복원 (0) | 2021.04.04 |
디지털 영상 처리 - 샘플링과 샘플링된 함수의 푸리에 변환 (6) | 2021.03.31 |