콘텐츠
MATLAB은 신호를 자세히 분석하고 처리하는 데 사용할 수있는 프로그래밍 도구입니다. 하나 또는 여러 차원의 신호 처리에서 일반적인 작동은 고주파 노이즈를 제거하는 것입니다. 정의에 따라 로우 패스 필터는 신호에서 특정 값 이상의 주파수를 제거하도록 설계되었습니다. MATLAB에서 filter2 () 함수를 사용하면 이러한 필터를 구현할 수 있습니다.
지침
MATLAB의 filter2 () 함수를 사용하면 로우 패스 필터를 구현할 수 있습니다. (Hemera Technologies / AbleStock.com / 게티 이미지)-
데이터를 MATLAB으로 가져옵니다. 필터링해야 할 신호는 fread ()와 같은 하위 수준의 I / O 함수를 가져와야하므로 이진 형식으로 저장되는 경우가 많습니다. 그러나 MATLAB에는 가장 일반적인 형식의 이미지 가져 오기 기능이 포함되어 있습니다.
my_data = fread (file_handle, n_samples, data_type); my_image = imread ( 'my_image_file.tif', 'TIFF');
-
filter2 () 함수로 처리하기 전에 데이터를 2 차원 배열로 변환하십시오. reshape () 함수를 통해 1 차원 바이너리 배열을 배열로 변환하거나 시리즈에서 이미지를 선택하여이 작업을 수행 할 수 있습니다. squeeze () 함수를 사용하여 두 개 이상의 차원이있는 배열의 일부를 선택하여 단일 차원을 제거합니다.
my_image = reshape (my_data, width, height); my_other_image = squeeze (my_image_series (:, image_number));
-
필터를 그리고 그 결과를 2 차원 배열 H에 저장하십시오. 일반적으로 저역 통과 필터는 fspecial () 함수로 생성 할 수있는 "가우스 창"을 사용합니다. 필터는 특수 sptool 신호 처리 함수 ()를 사용하여 디자인 할 수도 있습니다. wvtool () 함수를 사용하여 필터 윈도우의 주파수 응답을 볼 수 있습니다. 예제 코드에서 H는 표준 편차 가우시안 창 10을 포함하는 24x24 배열입니다.
H = fspecial ( '가우스', [24 24], 10); wvtool (H);
-
filter2 ()를 통해 구현 된 2 차원 컨볼 루션 알고리즘을 사용하여 필터링을 수행합니다. 기본적으로 filter2 ()의 결과는 입력 데이터 세트와 동일한 차원을 갖습니다.
my_filtered_data = filter2 (my_data, H);