LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

filter characterization

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.

MarcoMar

National Instruments Italy
0 Kudos
Message 11 of 13
(631 Views)

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

 

 

0 Kudos
Message 12 of 13
(627 Views)

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

 

0 Kudos
Message 13 of 13
(604 Views)