Tau ReSpeaker Setup V01
Dependencies: MbedJSONValue mbed
Fork of TAU_ReSpeaker_DSP_Test by
Diff: Matlab_Script/ArbMagFilterDesign.txt
- Revision:
- 1:574b54755983
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Matlab_Script/ArbMagFilterDesign.txt Sun Feb 11 15:13:52 2018 +0000 @@ -0,0 +1,31 @@ +function [MyFilter, sos, g] = ArbMagFilterDesign(Nb, Na) +% For iirlpnorm filter description see http://www.mathworks.com/help/dsp/ref/iirlpnorm.html + +% Nb Numerator Order +% Na Denominator Order +P = [2 128]; % P'th norm +dens = 20; % Density Factor + +% Frequency Vector - normalized +% Real frequences = F * (Fs/2) wher Fs is sampling frequency +F = [0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5 0.55 0.6 0.65 0.7 0.75 0.8 0.85 0.9 0.95 1.0]; +% Amplitudas +A = [0 0 0 0 1 1 1.1 1.1 1.1 1.1 1.2 1.2 1.2 1.2 1.2 1.3 1.3 1.3 1.4 1.4 1.4]; % Amplitude Vector +% Weights has one entry per frequency point (the same length as f and a) which tells iirlpnorm how +% much emphasis to put on minimizing the error in the vicinity of each frequency point relative to the other points. +W = [0.1 0.1 0.1 0.1 ones(1,17)]; +% Frequency Edges, normalized (single band) +E = [0 1]; + +% Hints +% +% This is a weighted least-pth optimization. +% Check the radii and locations of the poles and zeros for your filter (with zplane function). If the zeros are on the unit circle +% and the poles are well inside the unit circle, try increasing the order of the numerator or reducing the error weighting in the stopband. +% Similarly, if several poles have a large radii and the zeros are well inside of the unit circle, try increasing the order +% of the denominator or reducing the error weighting in the passband. + +[num,den,err,sos,g] = iirlpnorm(Nb, Na, F, E, A, W, P, {dens}); + +MyFilter = dfilt.df1sos(sos, g); +end \ No newline at end of file