From 04304b4c87c762d30118489e1a11c7bb656ac085 Mon Sep 17 00:00:00 2001 From: Marcel Lauwerijssen Date: Mon, 15 Nov 2004 16:09:18 +0000 Subject: --- FFT_Test/fft.hch | 4 ++-- FFT_Test/fft_hardware.hcc | 6 +++--- FFT_Test/runfft.hcc | 37 +++++++++++++++++++++++++------------ 3 files changed, 30 insertions(+), 17 deletions(-) diff --git a/FFT_Test/fft.hch b/FFT_Test/fft.hch index 6bcc8cc..87d54e7 100644 --- a/FFT_Test/fft.hch +++ b/FFT_Test/fft.hch @@ -1,8 +1,8 @@ #if HARDWARE_MULTIPLY void perform_fft(signed 18 *pcm_audio); -void perform_ifft(signed 18 *modified_audio /*,unsigned 6 *ifft_info*/); +void perform_ifft(signed 18 *modified_audio ,unsigned 6 *ifft_info); #else void perform_fft(signed 16 *pcm_audio); -void perform_ifft(signed 16 *modified_audio /*,unsigned 6 *ifft_info*/); +void perform_ifft(signed 16 *modified_audio ,unsigned 6 *ifft_info); #endif void equalize_audio(unsigned 4 *eq_level, unsigned 7 *fft_info); diff --git a/FFT_Test/fft_hardware.hcc b/FFT_Test/fft_hardware.hcc index 5c209e8..a0276ff 100644 --- a/FFT_Test/fft_hardware.hcc +++ b/FFT_Test/fft_hardware.hcc @@ -276,9 +276,9 @@ void perform_fft(signed 16 *pcm_audio) /********************************************************************/ #if HARDWARE_MULTIPLY -void perform_ifft(signed 18 *modified_audio/*, unsigned 6 *ifft_info*/) +void perform_ifft(signed 18 *modified_audio, unsigned 6 *ifft_info) #else -void perform_ifft(signed 16 *modified_audio/*, unsigned 6 *ifft_info*/) +void perform_ifft(signed 16 *modified_audio, unsigned 6 *ifft_info) #endif { unsigned 6 k; @@ -325,7 +325,7 @@ void perform_ifft(signed 16 *modified_audio/*, unsigned 6 *ifft_info*/) #else modified_audio[k] = (p<-16); #endif - //ifft_info[k] = (unsigned)(p[15:10]); + ifft_info[k] = (p[17:12]); k++; } } while(k); diff --git a/FFT_Test/runfft.hcc b/FFT_Test/runfft.hcc index 27306a7..7492095 100644 --- a/FFT_Test/runfft.hcc +++ b/FFT_Test/runfft.hcc @@ -57,18 +57,27 @@ mpram mpram { - ram unsigned 7 write[256]; - rom unsigned 7 read[256]; + ram signed 7 write[256]; + rom signed 7 read[256]; }fft_info with { block = "BlockRAM"}; +mpram +{ + ram signed 6 write[256]; + rom signed 6 read[256]; +}ifft_info with {block = "BlockRAM"}; + #if HARDWARE_MULTIPLY signed 18 *audioptr_in1,*audioptr_in2,*audioptr_in3,*audioptr_in4; + signed 18 *audioptr_out1,*audioptr_out2; -signed 18 *audioptr_temp; + +signed 6 *displayptr1,*displayptr2,*displayptr3,*displayptr4; #else signed 16 *audioptr_in1,*audioptr_in2,*audioptr_in3,*audioptr_in4; + signed 16 *audioptr_out1,*audioptr_out2; -signed 16 *audioptr_temp; + #endif unsigned 10 active_preset; @@ -124,6 +133,11 @@ macro proc RunFFT (AudioIn, AudioOut) audioptr_out1=&audio_buffer_out[0]; audioptr_out2=&audio_buffer_out[64]; + displayptr1=&ifft_info.write[0]; + displayptr2=&ifft_info.write[64]; + displayptr3=&ifft_info.write[128]; + displayptr4=&ifft_info.write[192]; + FFT_Sync=0; LoadPresets(); @@ -144,6 +158,12 @@ par audioptr_out1 = audioptr_out2; audioptr_out2 = audioptr_out1; + + displayptr1=displayptr2; + displayptr2=displayptr3; + displayptr3=displayptr4; + displayptr4=displayptr1; + FFT_Sync = 0; } @@ -155,21 +175,14 @@ par { eqinfo = EQ_level.read[preset_address+(0 @ i)]; EQ_info[i<-7] = eqinfo; - if(first) - { - print_string("eqinfo: "); - print_hex_value(0 @ eqinfo); - print_eol(); - } } - first = 0; // set volume of each individual frequency bar (equalizer) equalize_audio(&EQ_info[0], &fft_info.write[0]); #endif // inverse FFT calculation - perform_ifft(audioptr_out1); + perform_ifft(audioptr_out1,displayptr1); /* for (i = 0; i != 64; i++) -- cgit v0.12