和时间常数的一阶模拟滤波器创建一个数字滤波器 ,并且采样率。
然而,在 Matlab 中应用双线性变换似乎会产生一个与预期不同的 3dB 点的滤波器。我希望 3dB 点位于,但它似乎在左右。知道我可能做错了什么吗?

Matlab代码:
fs = 1000;
tau = .1;
num = 1;
den = [tau, 1];
[numd,dend]=bilinear(num,den,fs);
[h, f] = freqz(numd,dend,4096, fs);
figure(1); clf();
subplot(211); semilogx(f,20*log10(abs(h))); hold on
plot([.1, 1000], [-3 -3],'r');
grid on; ylim([-40,1]); ylabel('gain (db)'); xlim([.1, fs/2]);
subplot(212); semilogx(f, angle(h)*180/pi);
grid on; ylabel('phase(rad)'); xlim([.1, fs/2]); xlabel('frequency(Hz)');
