I am trying to produce a transfer function with a peak=3000 and gain=1 first order on the high pass side and second order on the low pass side.
I believe the below two methods should produce approximately the same function, but they do not. Why are they different? The impulse response of both are wrong in different ways.
anfa[cf_] :=
TransferFunctionModel[((Power[cf, 2]/cf) + Power[cf, 0.999])*(
s + (cf - Power[cf, 0.999]))/((s + cf) (s + cf)), s,
SamplingPeriod -> 1/44000];
tt = Table[{f, Abs[anfa[3000][I f]][[1, 1]]}, {f,
PowerRange[20, 22000, 1.1]}];
ListLogLinearPlot[tt, Joined -> True, PlotRange -> All]
zfm[cf_] :=
ToDiscreteTimeModel[
TransferFunctionModel[((Power[cf, 2]/cf) + Power[cf, 0.999])*(
s + (cf - Power[cf, 0.999]))/((s + cf) (s + cf)), s], 1/44000,
Method -> {"BilinearTransform"}];
tt = Table[{f, Abs[zfm[3000][I f]][[1, 1]]}, {f,
PowerRange[20, 22000, 1.1]}];
ListLogLinearPlot[tt, Joined -> True, PlotRange -> All]