mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-10-31 13:10:19 -04: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
 |