mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2024-11-05 00:41:19 -05:00
46 lines
1.6 KiB
Fortran
46 lines
1.6 KiB
Fortran
subroutine fil6521(c1,n1,c2,n2)
|
|
|
|
! FIR lowpass filter designed using ScopeFIR
|
|
|
|
! Pass #1 Pass #2
|
|
! -----------------------------------------------
|
|
! fsample (Hz) 1378.125 Input sample rate
|
|
! Ntaps 21 Number of filter taps
|
|
! fc (Hz) 40 Cutoff frequency
|
|
! fstop (Hz) 172.266 Lower limit of stopband
|
|
! Ripple (dB) 0.1 Ripple in passband
|
|
! Stop Atten (dB) 38 Stopband attenuation
|
|
! fout (Hz) 344.531 Output sample rate
|
|
|
|
parameter (NTAPS=21)
|
|
parameter (NH=10) !NTAPS/2
|
|
parameter (NDOWN=4) !Downsample ratio = 1/4
|
|
complex c1(n1)
|
|
complex c2(n1/NDOWN)
|
|
|
|
! Filter coefficients:
|
|
real a(-NH:NH+NTAPS/3)
|
|
data a/ &
|
|
-0.011958606980,-0.013888627387,-0.015601306443,-0.010602249570, &
|
|
0.003804023436, 0.028320058273, 0.060903935217, 0.096841904411, &
|
|
0.129639871228, 0.152644580853, 0.160917511283, 0.152644580853, &
|
|
0.129639871228, 0.096841904411, 0.060903935217, 0.028320058273, &
|
|
0.003804023436,-0.010602249570,-0.015601306443,-0.013888627387, &
|
|
-0.011958606980,1.43370769e-019,2.64031087e-006,6.25548654e+028, &
|
|
2.44565251e+020,4.74227538e+030,10497312.0e0000,7.74079654e-039/
|
|
|
|
n2=(n1-NTAPS+NDOWN)/NDOWN
|
|
k0=NH-NDOWN+1
|
|
|
|
! Loop over all output samples
|
|
do i=1,n2
|
|
c2(i)=0.
|
|
k=k0 + NDOWN*i
|
|
do j=-NH,NH
|
|
c2(i)=c2(i) + c1(j+k)*a(j)
|
|
enddo
|
|
enddo
|
|
|
|
return
|
|
end subroutine fil6521
|