입력 신호에 저역통과 필터 적용하기
샘플 레이트를 20kHz로 가정하고, 3dB 주파수 2.5kHz를 갖는 4차 버터워스 필터를 생성합니다. 코드를 생성하려면 butter
의 필터 계수는 상수여야 합니다.
type ButterFilt
function output_data=ButterFilt(input_data) %#codegen [b,a]=butter(4,0.25); output_data=filter(b,a,input_data); end
버터워스 필터를 사용하여 잡음이 있는 사인파에 저역통과 필터링을 수행합니다.
t = transpose(linspace(0,pi,10000)); x = sin(t) + 0.03*randn(numel(t),1);
버터워스 필터를 사용하여 잡음이 있는 사인파를 필터링합니다. 필터링된 신호를 플로팅합니다.
fx = ButterFilt(x); plot(fx)
codegen
명령을 실행하여 C 소스 코드 ButterFilt.c
와 MEX 파일을 얻습니다.
codegen ButterFilt -args {zeros(10000,1)} -o ButterFilt_mex -report
Code generation successful: To view the report, open('codegen/mex/ButterFilt/html/report.mldatx')
C 소스 코드에는 4차 버터워스 필터에 대한 5개의 분자 계수와 분모 계수가 정적 상수로 포함되어 있습니다. MEX 파일을 사용하여 필터를 적용합니다. 필터링된 신호를 플로팅합니다.
output_data = ButterFilt_mex(x); hold on plot(output_data) hold off