ReSpeaker DSP V02

Dependencies:   mbed MbedJSONValue

Committer:
Arkadi
Date:
Thu Jun 20 09:06:46 2019 +0000
Revision:
14:8a4699aa69b5
Parent:
1:574b54755983
experiments version

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Arkadi 1:574b54755983 1 function [Hd, SOS, G] = HighPassFilterDesign(FilterFs,Fc, FilterOrder, RipplePass, RippleStop, FilterType)
Arkadi 1:574b54755983 2 % On the base of https://www.youtube.com/watch?v=crRNF8JjzIs
Arkadi 1:574b54755983 3 %
Arkadi 1:574b54755983 4 %Filter design
Arkadi 1:574b54755983 5 % Biquad Direct Form 1
Arkadi 1:574b54755983 6
Arkadi 1:574b54755983 7 Wn = (2/FilterFs)*Fc;
Arkadi 1:574b54755983 8 % design a second order filter:
Arkadi 1:574b54755983 9
Arkadi 1:574b54755983 10 if strcmp(FilterType,'butter')
Arkadi 1:574b54755983 11 [z,p,k] = butter(FilterOrder,Wn,'high');
Arkadi 1:574b54755983 12 [SOS,G] = zp2sos(z,p,k);
Arkadi 1:574b54755983 13 Hd = dfilt.df1sos(SOS,G);
Arkadi 1:574b54755983 14 else
Arkadi 1:574b54755983 15 if strcmp(FilterType,'cheby2')
Arkadi 1:574b54755983 16 [z,p,k] = cheby2(FilterOrder,RippleStop, Wn, 'high');
Arkadi 1:574b54755983 17 [SOS,G] = zp2sos(z,p,k);
Arkadi 1:574b54755983 18 Hd = dfilt.df1sos(SOS,G);
Arkadi 1:574b54755983 19 else
Arkadi 1:574b54755983 20 if strcmp(FilterType,'ellip')
Arkadi 1:574b54755983 21 [z,p,k]=ellip(FilterOrder,RipplePass,RippleStop,Wn,'high');
Arkadi 1:574b54755983 22 [SOS,G] = zp2sos(z,p,k);
Arkadi 1:574b54755983 23 Hd = dfilt.df1sos(SOS,G);
Arkadi 1:574b54755983 24
Arkadi 1:574b54755983 25 else
Arkadi 1:574b54755983 26 error('WRONG PARAMETER!!! Stop execution!');
Arkadi 1:574b54755983 27 quit
Arkadi 1:574b54755983 28 end
Arkadi 1:574b54755983 29 end
Arkadi 1:574b54755983 30 end
Arkadi 1:574b54755983 31 end