Added improved downsampling. Need to finish : downsample after filter.

This commit is contained in:
Charles STELANDRE 2025-04-14 12:01:05 +02:00
parent b2224152f4
commit 5b792182c6
1 changed files with 37 additions and 0 deletions

37
iirFilter.m Normal file
View File

@ -0,0 +1,37 @@
function [Z, P]= iirFilter(N, cutoffFreq, samplingFreq, filterType)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% function [Z, P] = iirFilter(N, cutoffFreq, samplingFreq, filterType)
% ex.: [Z, P] =iirFilter(6, 10, 500, 1)
%
% Task: To create and analyze an IIR low pass filter (Butterworth ror Chebychev)
%
% Inputs:
% -N: order of the filter
% -cutoffFreq: below this frequency, signal is not modified and above signal is attenuated
% -samplingFreq: sampling frequency (In Hz)
% -filterType: Butterworth if equal to 1 and Chebychev if equal to 2
%
% Outputs:
%
%
% Author: Guillaume Gibert, guillaume.gibert@ecam.fr
% Date: 09/04/2025
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
if (filterType == 1)
[b, a] = butter(N, cutoffFreq/(samplingFreq/2));
elseif (filterType == 2)
Rp = 10; % bandpass ripple of Rp dB
[b, a] = cheby1(N, Rp, cutoffFreq/(samplingFreq/2));
else
disp('Filter type is incorrect!')
return
end
[Z, P] = zeroPole(a, b, 1);
figure;
freqz(b, a, N, samplingFreq);
title('Frequency response');
grid on;