From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Extracting I & Q phase component in labview FPGA

Solved!
Go to solution

Hai everyone,

 

i am trying to demodulate the baseband signal by using FM DEMODULATOR block in FPGA.

This FM DEMODULATOR needs Inphase and Qphase component as a Input. 

i dont have much exposure on LABVIEW.

 

can any please direct me how to go  about this.

 

thanks

 

 

regards

Navin

0 Kudos
Message 1 of 14
(2,240 Views)
Solution
Accepted by topic author Navin4561

To get I & Q you need a pair of mixers, cos and sin, multiplying the passband frequency, then a pair of low pass filters with the appropriate bandwidth. The FM demodulation is just a phase unwrap.

 

In the FPGA, create a cos and sin wave at your FM frequency, then multiply each by your input, low pass filter and then you have I & Q.

 

Mcduff

0 Kudos
Message 2 of 14
(2,224 Views)

Hai Mcduff,

 

thank you for your response.

Is there way to change the frequency of the sine & cosine signal with  " High throughput sine & cosine function" in LABVIEW FPGA..?

For example if i want generate the sine wave with 100KHz, what are the chages to made..?

i am loking for your suggestions.

 

thanks

 

Navin

0 Kudos
Message 3 of 14
(2,165 Views)

I will be onsite tomorrow and have access to my computer, I'll try to post a screenshot.

 

I don't think I used the high speed sin/cos, just the normal FPGA function that gives sin and cos. That function was tied into the FPGA clock such that I could generate the correct frequency wave for multiplication/mixing stage.

 

  1. Do things in parallel via pipelining. Don't try to demodulate in a single loop, spread it out. The first few sample will be garbage, but then it will operate much smoother.
  2. Don't use the ATAN2 for phase unwrapping, too much overhead. There is a DSP approximation that is a division which is much less overhead.

mcduff

 

 

0 Kudos
Message 4 of 14
(2,154 Views)

Snap5.png

 

Here's the First Stage of my input that is pipelined.

  1. In the Sequence Structure have an appropriate delay then acquire signal on myRio channel. At the same time generate a phase synchronous sin/cos at the carrier frequency (.002 times 40MHz equals 80kHz) Note it takes 2 iterations of the loop before real data is sent to the mixer.
  2. Convert to 32 bit and shift the numbers, my Rio 12 Bits (This is done for later processing)
  3. Filter out any low frequency noise, then Multiply(Mix) the sin and cos with the signal.
  4. Send data to another loop for low pass filtering.

Snap7.png

The output of the loop above is I & Q; that can be sent to any other loop you want.

 

For the pipelined approach the first few samples will be garbage, but afterwards there will a signal that is slightly delayed to your input. Don't try to do sequentially.

 

mcduff

0 Kudos
Message 5 of 14
(2,138 Views)

Please, me how to do Phase unwrapping using some other methods with using arctan2 function. bascaily how to do demodulation of fm in fpga?

0 Kudos
Message 6 of 14
(2,037 Views)

@DeepakDSPEngineer wrote:

Please, me how to do Phase unwrapping using some other methods with using arctan2 function. bascaily how to do demodulation of fm in fpga?


Snap47.png

(Q0-Q2)I1 - (I0-I2)Q1 where the subscripts are sample delays, that is, 0 is the current sample, 2 would be the sample two time periods previous. Can't find the reference for this.

0 Kudos
Message 7 of 14
(2,026 Views)

Hi mcduff,

Please Help me, I'm really trying since 1 week. For FM demodulation in FPGA. If you have any idea how to do it. Please suggest me or please provide source code for it. Thank you in advance.

0 Kudos
Message 8 of 14
(2,020 Views)

Everything I did is in this thread. Read all of the posts.

Mix Signal

Get I&Q

Demodulate

 

mcduff

0 Kudos
Message 9 of 14
(2,003 Views)

Please tell me, What is the redfilterDataIn here. Will I need to pass the IQ Demodulation signal to any filter again? 

0 Kudos
Message 10 of 14
(1,990 Views)