You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

37 lines
1.0 KiB

% rtlsdr_bpf.m
%
% David Rowe 24 August 2018
%
% Calculate component values for cascaded HP-LP 2-8 MHz Chebychev filter
%
% From "RF Circuit Design", Chris Bowick, Ch 3
1;
function C = find_C(Cn, fc, R)
C = Cn/(2*pi*fc*R);
endfunction
function L = find_L(Ln, fc, R)
L = R*Ln/(2*pi*fc);
endfunction
% 3rd order HP filter, 1dB ripple Cheby, 3MHz cut off, >20dB down at
% 1MHz to nail stong AM broadcast signals, Table 3-7A. Use a Rs=50,
% Rl=50, so Rs/Rl = 1. Note we assume a or phantom load in between
% cascaded HP-LP sections of 50 ohms.
L1 = find_L(1/2.216, 3E6, 50);
C1 = find_C(1/1.088, 3E6, 50);
L2 = find_L(1/2.216, 3E6, 50);
printf("L1: %f uH C1: %f pF L2: %f uH\n", L1*1E6, C1*1E12, L2*1E6);
% 3rd order LPF, 8MHz cut off so >30dB down at 21MHz, which aliases back to 7MHz
% with Fs=28MHz on RTLSDR (14 MHz Nyquist freq). Rs=50, Rl=50, Rs/Rl = 1
C2 = find_C(2.216, 9E6, 50);
L3 = find_L(1.088, 9E6, 50);
C3 = find_C(2.216, 9E6, 50);
printf("C2: %f pF L3: %f uH C3: %f pF\n", C2*1E12, L3*1E6, C3*1E12);