LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

How to equalize an analog output by a known frequency response?

I'd like the analog output of my system have a flat response. What I'm going to do is first measure the stimulus signal, then using a filter to compensate the frequency response to make the following output signal flat. The difficulty is how to build a filter according to the frequency response. I know it's easy to do by using digital filter design of signal processing toolkit. But I need to do it by LabVIEW and the response is changed frequently. Any suggestions?

Bill
0 Kudos
Message 1 of 6
(3,076 Views)
Bill,

How closely does the equalization have to match? If you can define a manageable number of bands, then all you need to do is measure the response in each band and adjust gain/attenuation for each band according to a simple calculation of lookup table. I did something like this in LV1.2. No adaptive filters or anything complex.

Lynn
0 Kudos
Message 2 of 6
(3,067 Views)
Hi Lynn,

Thanks for your suggestion. I think I can do it if the signal is single frequency. Howeven, the signal to be equalized maybe a broadband speech signal. Therefore I need a filter for compensation.

In addition, how can you adjust the time domain signal by lookup table?

Bill
0 Kudos
Message 3 of 6
(3,050 Views)
The filter does the signal "adjusting." Filters are typically characterized in the frequency domain, but the work on the signal fed them, which usually occurs sequentially in time. The lookup table is just to select the appropriate filter so you do not have to do a lot of calculations at run time. As an example, suppose you have just treble and bass and only one cut and one boost setting for each. You measure the stimulus and find the bass is too high and the treble too low. You select the bass cut and the treble boost filters for this run. If this is expanded to octave (or third octave) filters and 16 gain/attenuation settings in each band the lookup table approach saves time and may also provide a compact means of recording the equalization settings with your test data (rather than filter coefficients which do not actually indicate the response without characterizing the filter).

Lynn
Message 4 of 6
(3,035 Views)

Hello, I am new to labview and I am trying to get a flat frequency response using swept sine technique. I am using NI-USB 6225 (80 channel) and I am also using a VI that was available for download online. The picture below is how the VI looks like.

Capture.PNG

 

I am using a bone conduction transducer (BCT) as my excitation to sweep the frequency from 100 to 10kHz and receiving a signal back to a contact microphone. I have the given frequency response curve (not the actual data but from a datasheet) of the BCT and I wanted to make the frequency response of the BCT flat by adding an inverse response. 

I was wondering where the best possible place would be to add this?

 

(If you need more clarification, let me know!)

 

Thanks,

James

 

0 Kudos
Message 5 of 6
(2,487 Views)

we are in the frequency domain and assume a linear system:

 

FRF (w) = Response_measured (w) / Stimulus(w)

but your Response_measured actually is folded with the FRF_sensor so

Response_measured (w) = Response (w) * FRF_sensor (w)

FRF_compensated (w)= Response_measured (w) / FRF_sensor (w) / Stimulus (w)

 

PS: How to set formulars here in the forum?? (TEX syntax prefered 🙂 )

 

Greetings from Germany
Henrik

LV since v3.1

“ground” is a convenient fantasy

'˙˙˙˙uıɐƃɐ lɐıp puɐ °06 ǝuoɥd ɹnoʎ uɹnʇ ǝsɐǝld 'ʎɹɐuıƃɐɯı sı pǝlɐıp ǝʌɐɥ noʎ ɹǝqɯnu ǝɥʇ'


0 Kudos
Message 6 of 6
(2,472 Views)