MATLAB의 저역 통과 필터

Ammar Ali 2022년1월20일
MATLAB의 저역 통과 필터

이 튜토리얼에서는 lowpass() 함수를 사용하여 Matlab에서 신호를 설계하고 필터링하는 방법에 대해 설명합니다.

lowpass() 함수를 사용하여 MATLAB에서 신호 설계 및 필터링

저역 통과 필터는 여러 주파수를 포함하는 신호에서 저주파 신호를 필터링하는 데 사용됩니다.

예를 들어, 두 개의 서로 다른 주파수 신호를 포함하는 신호가 있고 저주파 신호를 필터링하려는 경우입니다. 입력 신호의 저주파 성분만 허용하고 고주파 신호는 차단하는 저역 통과 필터를 사용하여 이를 수행할 수 있습니다.

MATLAB에서 내장 함수 lowpass()를 사용하여 신호를 필터링할 수 있습니다.

lowpass() 함수에서 입력 신호, 통과 대역 주파수 및 입력 신호의 샘플링 주파수를 전달해야 합니다. 입력 신호는 단일 또는 이중 유형의 벡터 또는 행렬이어야 합니다.

통과 대역 주파수는 샘플링 주파수의 0에서 절반 사이여야 합니다. 샘플링 속도는 양의 실수 스칼라여야 합니다.

예를 들어 신호를 만들고 임의의 노이즈를 추가한 다음 lowpass() 함수를 사용하여 필터링해 보겠습니다. 아래 코드를 참조하십시오.

clc
clear
freqS = 1e3;
time = 0:1/freqS:1;
signal = [1 2]*sin(2*pi*[50 250]'.*time) + randn(size(time))/10;
lowpass(signal,150,freqS)

출력:

톤의 저역 통과 필터

파란색 신호는 출력의 입력 신호이고 다른 하나는 필터링된 신호입니다.

위 그림에서 볼 수 있듯이 저주파 신호가 필터링됩니다. 또한 전력 스펙트럼 그래프를 확인하여 신호가 필터링되는 통과대역 주파수를 확인할 수 있습니다.

위의 코드를 사용하여 음악 신호에서 고주파 노이즈 또는 톤을 필터링할 수 있습니다. lowpass() 함수의 출력을 변수에 저장할 수도 있지만 별도로 플롯해야 합니다.

출력을 지정하지 않으면 lowpass() 함수는 주파수 도메인 플롯과 함께 동일한 그래프에 원본 및 필터링된 신호를 플롯합니다. 저지대역 감쇠, 저역 통과 필터 기울기, 필터의 임펄스 응답 유형과 같은 lowpass() 함수의 다른 속성을 설정할 수 있습니다.

lowpass() 함수를 사용하여 시간표에서 데이터를 필터링할 수도 있습니다. lowpass() 함수는 타임테이블의 모든 변수와 각 변수 내의 모든 열을 필터링합니다.

기본적으로 lowpass() 함수는 임펄스 응답을 사용합니다. 그래도 ImpulseResponse 속성을 사용하여 lowpass() 함수에 iir 문자열을 전달하여 fir 문자열을 전달하여 유한 임펄스 응답으로 변경하거나 무한 임펄스 응답으로 변경할 수 있습니다.

기본 기울기 값은 0.85이지만 steepness 속성을 사용하여 간격 0.5에서 1 사이의 값으로 설정할 수 있습니다. 기본 저지대역 감쇠는 60이지만 StopbandAttenuation 속성을 사용하여 dB 단위의 양의 스칼라를 변경할 수 있습니다.

속성을 변경하려면 lowpass(....,'StopbandAttenuation', 60)와 같은 이름으로 값을 전달해야 합니다.

작가: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook