08-18-2010 03:03 AM
FFT can be a way to know the amplitude of the frequency components of the signal, but you need to use filters to modify the waveform.
08-18-2010 03:41 AM
this code is an example of the characterization file,the firstl column represents the frequency, the second one the ratio between output and input (gain) and the last one the standard deviation. can i define a filter with this characterist?with this step?
200000.000 83.382 2.945 200100.000 83.833 2.343 200200.000 83.442 2.890 200300.000 84.291 3.094 200400.000 83.281 2.532 200500.000 85.231 2.407 200600.000 84.247 3.088 200700.000 83.554 3.191 200800.000 83.105 2.851 200900.000 84.364 2.544 201000.000 83.600 3.117 201100.000 84.570 2.903 201200.000 84.190 2.766 201300.000 82.586 2.198 201400.000 84.300 2.695 201500.000 83.436 2.321 201600.000 84.159 2.921 201700.000 83.358 2.488 201800.000 82.927 2.128 201900.000 84.369 2.557 202000.000 83.570 2.320 202100.000 82.509 2.617 202200.000 81.908 2.494 202300.000 82.960 2.737 202400.000 82.766 2.953 202500.000 83.131 3.208 202600.000 83.709 3.436 202700.000 83.280 3.276 202800.000 83.476 2.868 202900.000 82.726 1.993 203000.000 82.856 2.653 203100.000 82.563 2.395 203200.000 83.321 2.731 203300.000 83.407 3.332 203400.000 82.545 2.894 203500.000 82.604 3.114 203600.000 83.139 2.906 203700.000 83.829 2.709 203800.000 82.466 2.721 203900.000 82.871 2.586 204000.000 83.176 2.895 204100.000 82.373 2.984 204200.000 82.636 2.911 204300.000 82.676 3.318 204400.000 82.069 2.566 204500.000 81.525 2.303 204600.000 82.108 2.811 204700.000 82.267 3.211 204800.000 82.367 2.525 204900.000 81.546 2.306 205000.000 82.356 2.262 205100.000 82.645 2.678 205200.000 81.581 2.806 205300.000 81.949 2.030 205400.000 82.277 3.018 205500.000 82.261 2.531 205600.000 82.107 2.005 205700.000 82.676 2.688 205800.000 82.262 2.789 205900.000 82.399 2.529 206000.000 82.011 2.808 206100.000 81.884 2.823 206200.000 82.294 2.795 206300.000 81.201 1.916 206400.000 81.188 1.908 206500.000 82.536 2.485 206600.000 82.004 2.591 206700.000 81.570 2.301 206800.000 81.583 2.294 206900.000 82.025 2.587 207000.000 81.497 2.564 207100.000 81.641 2.578 207200.000 81.924 2.832 207300.000 82.858 2.871 207400.000 81.642 2.309 207500.000 81.498 2.311 207600.000 82.720 2.444 207700.000 81.251 2.239 207800.000 81.108 1.859 207900.000 81.252 2.509 208000.000 81.373 2.531 208100.000 81.353 2.269 208200.000 82.134 2.301 208300.000 81.544 2.024 208400.000 80.709 2.009 208500.000 81.344 1.972 208600.000 81.368 1.975 208700.000 80.844 1.732 208800.000 81.409 2.254 208900.000 81.021 2.138 209000.000 80.471 1.378 209100.000 81.296 2.233 209200.000 81.689 2.310 209300.000 80.874 1.719 209400.000 80.901 2.070 209500.000 80.904 2.078 209600.000 81.029 2.127 209700.000 81.018 1.798 209800.000 81.028 1.797 209900.000 81.194 2.463 210000.000 80.900 1.716
08-18-2010 07:42 AM
Your data covers a very narrow frequency range, the gain variations are small and the standard deviation is just slightly smaller than the largest differences in gain. I did not see any adjacent pair of frequencies where the gain difference was larger than the standard deviation of the gain at either frequency. Most implementations of filters using physical components would likely have larger variations than your data shows. Given the size of the standard deviations I doubt that any gain figures to the right of the decimal point have much meaning. How many measurements did you take at each frequency?
To answer your original question about equalization: I will assume that you have an FFT with bins at each of the frequencies listed in your file and that you will make no corrections to any other frequencies. Loop through the FFT output array. Let g[i] represent the measured gain at the ith bin. Let g0 be the desired nominal gain (assumed to be equal for all frequencies). Let ge[i] be the gain equalization adjustment. Then ge[i] = g0/g[i].
If you multiply each component by ge[i] then all your gains will be g0.
If you apply this to some sort of signal. you need to consider several things. 1. The output of the FFT is complex even if the inputs are real. By looking only at the gain you are losing any phase information. 2. Spectral leakage. If the sampling frequency is not synchronous with the signal or the length of the sample set is not an integral multiple of the sample period, the frequency components of the signal spill over into adjacent bins. This may create errors in your equalization. 3. Can you even tell the difference on a real signal? Given the relatively small gain variations and the large standard deviation, will the corrections be lost in the noise?
Lynn