mirror of
				https://github.com/cjcliffe/CubicSDR.git
				synced 2025-10-31 04:50:38 -04:00 
			
		
		
		
	Experiment to remove DC / other spikes
Seemed logical to use the repeating parts of the forward/back FFT results to overlap and cancel out spikes -- seems to work?
This commit is contained in:
		
							parent
							
								
									c4099cb690
								
							
						
					
					
						commit
						1cd8565fb3
					
				| @ -153,7 +153,6 @@ void TestGLCanvas::setData(std::vector<signed char> *data) { | ||||
|             in[i][1] = (double) (*data)[i * 2 + 1] / 127.0f; | ||||
|         } | ||||
| 
 | ||||
| 
 | ||||
|         fftw_execute(plan[0]); | ||||
|         fftw_execute(plan[1]); | ||||
| 
 | ||||
| @ -162,10 +161,14 @@ void TestGLCanvas::setData(std::vector<signed char> *data) { | ||||
| 
 | ||||
|         for (int j = 0; j < 2; j++) { | ||||
|             for (int i = 0, iMax = FFT_SIZE / 2; i < iMax; i++) { | ||||
|                 double a = out[j][i][0]; | ||||
|                 double b = out[j][i][1]; | ||||
| 
 | ||||
|                 double a = out[j][j?i:((iMax-1)-i)][0]; | ||||
|                 double b = out[j][j?i:((iMax-1)-i)][1]; | ||||
|                 double c = sqrt(a * a + b * b); | ||||
| 
 | ||||
|                 double x = out[j?0:1][j?((FFT_SIZE-1)-i):((FFT_SIZE/2)+i)][0]; | ||||
|                 double y = out[j?0:1][j?((FFT_SIZE-1)-i):((FFT_SIZE/2)+i)][1]; | ||||
|                 double z = sqrt(x * x + y * y); | ||||
| 
 | ||||
|                 if (i == 1) { | ||||
|                     fft_floor = fft_ceil = c; | ||||
|                 } else if (i < FFT_SIZE - 1) { | ||||
| @ -178,20 +181,10 @@ void TestGLCanvas::setData(std::vector<signed char> *data) { | ||||
|                 } | ||||
| 
 | ||||
|                 if (!j) { | ||||
|                     result[((FFT_SIZE/2)-1) - i] = c; | ||||
|                     result[i] = (c<z)?c:z; | ||||
|                 } else { | ||||
|                     result[(FFT_SIZE/2) + i] = c; | ||||
|                     result[(FFT_SIZE/2) + i] = (c<z)?c:z; | ||||
|                 } | ||||
| /*
 | ||||
| 
 | ||||
|                  if (!j) { | ||||
|                     result[(FFT_SIZE/2) + ((FFT_SIZE/2)-1) - i] = c; | ||||
|                 } else { | ||||
|                     result[i] = c; | ||||
|                 } | ||||
| 
 | ||||
| 
 | ||||
|  */ | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user