Calculate using doubles and cast to float at the last moment
This commit is contained in:
@ -198,7 +198,7 @@ float logPower(fftwf_complex in, float scale)
|
|||||||
float re = in[0] * scale;
|
float re = in[0] * scale;
|
||||||
float im = in[1] * scale;
|
float im = in[1] * scale;
|
||||||
float magsq = re * re + im * im;
|
float magsq = re * re + im * im;
|
||||||
return log2f(magsq) * 10.0f / log2(10.0f);
|
return (float) (log2(magsq) * 10.0f / log2(10.0f));
|
||||||
}
|
}
|
||||||
|
|
||||||
int rx_callback(hackrf_transfer* transfer) {
|
int rx_callback(hackrf_transfer* transfer) {
|
||||||
@ -296,7 +296,7 @@ int rx_callback(hackrf_transfer* transfer) {
|
|||||||
fwrite(&band_edge, sizeof(band_edge), 1, fd);
|
fwrite(&band_edge, sizeof(band_edge), 1, fd);
|
||||||
fwrite(&pwr[1+fftSize/8], sizeof(float), fftSize/4, fd);
|
fwrite(&pwr[1+fftSize/8], sizeof(float), fftSize/4, fd);
|
||||||
} else if(ifft_output) {
|
} else if(ifft_output) {
|
||||||
ifft_idx = round((frequency - (uint64_t)(FREQ_ONE_MHZ*frequencies[0]))
|
ifft_idx = (uint32_t) round((frequency - (uint64_t)(FREQ_ONE_MHZ*frequencies[0]))
|
||||||
/ fft_bin_width);
|
/ fft_bin_width);
|
||||||
ifft_idx = (ifft_idx + ifft_bins/2) % ifft_bins;
|
ifft_idx = (ifft_idx + ifft_bins/2) % ifft_bins;
|
||||||
for(i = 0; (fftSize / 4) > i; i++) {
|
for(i = 0; (fftSize / 4) > i; i++) {
|
||||||
|
Reference in New Issue
Block a user