09-20-2017 03:38 AM
Hello,
I am using the NI PXIe 7279R module with NI PXIe 5733 ADC converter on FPGA unit. I want to shift 90deg-phase of the input signal on FPGA. Unfortunately, on FPGA program, there is no Hilbert transform function for shifting the phase of the signal.
Could you please help me solve my problem? I am a beginner for LABVIEW FPGA.
Thank you very much.
Dong
Solved! Go to Solution.
09-20-2017 05:50 AM - edited 09-20-2017 05:59 AM
To do this might be very easy or very difficult (as in PhD academic research difficult).
If you know the input frequency (and it's fixed) a simple delay would do the trick.
Theoretically, you could do a pt-by-pt Fourier transform, modify the phases, and then do a pt-by-pt reverse Fourier transform. Seems like quite an endeavour on FPGA... The mentioned link seems to suggest it is do-able.
If you can live with support for a range of frequencies, it seems you can use a FIR filter. I think there are FIR functions available. These didn't fulfil my needs when I needed one, but FIR filter is quite easy to make on a FPGA.
09-20-2017 09:51 AM
Hi you,
The first idea you said seems to be quite difficult for me. The processing can be delay time due to conversation between pt-by-pt Fourier transfom and reverse Fourier transform. So I am interested in the second idea for FIR filter.
Could you please give me an example about using the FIR filter to create a Hilbert transform function?
Thank you very much.
Dong
09-20-2017 10:14 AM - edited 09-20-2017 10:15 AM
The first idea is in fact very easy. If the period is 100 samples (fixed frequency) make a FIFO buffer with fixed size of 25 samples (90/360*100=25). The FFT is the second idea;).
I can't help you out with the FIR filter (which seems like a better idea to me too for all but the most trivial situations). I don't have a FPGA at the moment. But there are plenty resources on the NI site (google "FIR filter labview FPGA"). As for the coefficients\filter design, I'll have to google that as well.
09-20-2017 10:38 AM
The signal is recorded from my measurement system and its frequency is ~ 2.7 MHz. It is not fixed and is vibrated around 2.7 MHz. So it seems to be hard to use delay time technique for generating 90-phase shifted signal?
Thanks.
Dong
09-20-2017 11:11 AM
@ThanhDong wrote:
The signal is recorded from my measurement system and its frequency is ~ 2.7 MHz. It is not fixed and is vibrated around 2.7 MHz. So it seems to be hard to use delay time technique for generating 90-phase shifted signal?
Thanks.
Dong
Yes, a fixed delay won't work well for variable frequencies. I'd say the FIR is the winner.
09-20-2017 11:14 AM
Where is the signal coming from and what determines the frequency? Do you want to process one point at a time or entire blocks?
Does the instrument have a reference frequency output? Can you record the data in quadrature?
Can you give us a bit more detail on the experiment?
09-20-2017 11:21 AM
I want to record two signals with a same frequency of 2.7 MHz from my interferometer.
I want to process them on FPGA to extract the phase shift between them.
In my program, I need one of these signals that is shifted to 90deg (quadrature signal).
Thanks.
Dong
09-20-2017 11:37 AM
Are the signals near sinusoidal or do they have local "features"?
09-20-2017 06:34 PM
They are sinusoidal signals.
Thanks
Dong