RF Measurement Devices

cancel
Showing results for 
Search instead for 
Did you mean: 

Filtering a RF Signal in Labview

I created a signal in labview using I and Q data from separate text files. I need to add in a transmit filter but everything I try does not work. I am using a PXI 1045 with signal generation upconversion and downconversion capabilities.  Does anyone have a vi that shows how to filter a signal created from I and Q data files.
 
Thanks
0 Kudos
Message 1 of 17
(11,140 Views)
Hi jstarustka,
The solution to your problem lies with the Modulation Toolkit. The Modulation Toolkit contains tools for working with complex I and Q signals in software, including pulse-shaping and matched filters for modulation and demodulation applications, respectively.\

I'm attaching a screenshot of the MT Generate Filter Coefficients VI in LabVIEW, showing QAM Root Raised Cosine filter generation.

Here is a link to the Modulation Toolkit product page on National Instruments' website:
http://sine.ni.com/nips/cds/view/p/lang/en/nid/12855

Regards,
Andy Hinde
National Instruments
0 Kudos
Message 2 of 17
(11,114 Views)

Thanks Andy,

I tried that without any luck.  I am using the MT Generate Filter Coefficients and feeding that information along with the "I" portion of the signal into the MT Pulse Shaping Filter vi which gives me a complex waveform output.  I am doing the same for the "Q" portion.  Therefore I get two complex waveform outputs and I am trying to feed them into the niRFSG Write Arb Waveform vi which will accept IQ data separately. 

This is where I am having the issue and nothing seems to be working, any help would be greatly appreciated.

Thanks

Joe

0 Kudos
Message 3 of 17
(11,098 Views)
Hi Joe,
You can do this by making use of the MT Pulse Shaping Filter as you are already trying to do. Where I think the problem is is that you are feeding this VI separate I and Q streams. The I and Q data streams by themselves are insufficient to describe a symbol location in the complex plane, and these filter coefficients are expecting to have symbol values provided at the input to the VI.

What you should do is first manipulate your I and Q streams into a single array of complex double symbol values (real double values for FSK and MSK) and then use the
MT Pulse Shaping Filter VI. First combine the I and Q values into a complex double data type, so know you have a single array with values describing points in the IQ compelx plane. Then, if your IQ data is oversampled relative to your symbol rate (i.e. your IQ sample rate is some integer multiple of your symbol rate) you need to decimate this array so that the only IQ pairs remaining are actual symbols.

If you then feed this decimated array to the
MT Pulse Shaping Filter VI it should work. Give this a try and let me know if you are still unsuccessful.

Regards,
Andy Hinde
National Instruments
0 Kudos
Message 4 of 17
(11,094 Views)

Hello Andy,

I took the I and Q data and put it into a complex double one dimensional array and fed that information into the Pulse Shaping Filter VI.  This filtered the signal but left it very badly misshapen. I then tried to decimate it to bring it back to the correct sampling but that to did not work either.  Any other thoughts?

Thanks

Joe

0 Kudos
Message 5 of 17
(11,076 Views)
Hi Joe,
Can you post your I and Q files and the sample rate of the data in the IQ files?

Thanks,
Andy
0 Kudos
Message 6 of 17
(11,073 Views)

Andy,

I can't send the files but I can send you part of the block diagram so that you can see what I am doing.  The initial IQ rate is set to 100kHz and the reference level is set to -90 dBm, frequency 1.6 gHz with a bandwidth of 41kHz.

Again any help would be greatly appreciated.

 

Joe

 

0 Kudos
Message 7 of 17
(11,048 Views)
Hello Joe,
Not to distract from the discussion that already started but I am curious if this code has been started from an existing shipping example. A cursory glance at the code sent in the pdf file looks fine but I am having doubt about the symbol rate setting and the IQ rate setting in your code. What have you set as IQ rate? If your file already specifies the IQ rate and that is what you want, if your symbol rate is also fixed, then you would want to adjust the "Samples per symbol"

Any mismatch of the above parameters can mess the RF signal up.  You may want to post a little more of the pdf file so that I can find if that indeed is the problem.

Sastry
RF
National Instruments

Sastry Vadlamani
RF Principal Software Engineer
Aerospace and Defence BU
National Instruments
Certified LabVIEW Architect
0 Kudos
Message 8 of 17
(11,044 Views)
After talking with the person who started this design, you are correct it was taken from a example that was shipped with labview. I set the IQ rate to 100kHz.  I am suspecting that there is an issue with the sampling rate also but just cannot figure it out. Here is a larger look at the design.
 
Thanks
Joe
0 Kudos
Message 9 of 17
(11,019 Views)
Hello Joe,

After looking at the code, some questions :
1. What is the IQ Rate you specify and what is the value you get? If you are getting same then its fine. Otherwise, I will have suggestion to use Hi-Res clock. But let me give that suggestion once I hear. But more important is my point 2.
2. I see a problem in the way you are merging your complex data. I am not sure about the format of your I and Q data files but I assume they are real values which you will be mixing to get a complex value.

Please take a look at the attached picture and let me know if my assumption is right.
Sastry Vadlamani
RF Principal Software Engineer
Aerospace and Defence BU
National Instruments
Certified LabVIEW Architect
0 Kudos
Message 10 of 17
(10,997 Views)