mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-11-03 13:30:52 -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
 |