Digital implementation of first order analog filter using bilinear transformation I'm trying to create a digital filter from a first order analog filter with transfer function 
$$H(s)=\frac{1}{1+\tau s}$$
with time constant $\tau=.1\text{s}$, and  sampling rate $f_s=1000\text{Hz}$.

Applying the bilinear transform in Matlab however appears to yield a filter with the a different 3dB point than expected. I expect the 3dB point to be at $\frac{1}{\tau}=10\text{Hz}$, but it appears to be around $1.6\text{Hz}$. Any idea what I could be doing incorrectly?


Matlab code:

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)');
The expected 3dB frequency is wrong because of radian conversion. With $s=j\omega$,
$$H(j\omega) = \frac{1}{1+\tau j\omega} $$
and $20\log_{10}|H(j\omega)|\approx-3$
when $\omega=\omega_{3dB}=\frac{1}{\tau}$. However $\omega=2\pi f$, so 
$$f_{3dB}=\frac{\omega_{3dB}}{2\pi}=\frac{1}{2\pi\tau}.$$
With $\tau=0.1\text{s}$, $\ f_{3dB}=1.59\text{Hz}$ as on the original plots.