Waveform complex of FPGA (PXI-7852R) Lock-in Amp.

My main goal is to create a lock-in that compares complex signals (not only sine, square, etc.) point by point.

I have demonstrated that I can use DDS to create complex waveforms of reference.

Now I want to read an analog input and compare (i.e. multiply and integrate) the acquis of signal with the reference signal.

Attached below is my attempt. I changed the DDS to produce a sinusoidal signal for testing purposes. I proved to myself that the sinusoid of reference is correct (I wired it to an AO and checked) and sine wave sampled is correct (I also have it wired to an AO and checked).

Unfortunately, the output of the average does not take into account the phase of the two signals. If I change the Ref wave phase or the acquired signal or freq, the output of the average remains the same... random osccilations from + 2 to-2 V. The average averaged for the number appropriate to points, as long as the number of points is less than 70 ks (convert to 'wave form cycles' host vi).

I suspect that there is a mistake in my 'mean.vi '. I created it by changing the average VI found on the FPGA palette. I replaced the 'high through put' multiply by the digital multiplication (from the top through put does not work on the objectives of the CR). Everything else is the same.

Any suggestions?

Thanks in advance

Proj1.PNG a screenshot of my FPGA code and host mean.vi

Found the problem!

The product of two signals is nonsense. Reduce the amplitude of the two signals cleaned straight up. Apparently something was saturate...

Tags: NI Software

Similar Questions

  • periodic waveform generation complex FPGA (PXI-7852R)

    I would like to create a complex periodic wave (digital) with my PXI-7852R.

    After checking the article here on the generation of periodic waveform with cRIO and then for a few hours trying to get this software to work on my fpga (PXI-7852R) I'm not much closer to making it a reality.

    I bet that someone with more experience could some conversion not fast enough... Notice to lovers?

    Thanks in advance!


  • FPGA (PXI-7852R) Square Wave DIO

    I need to improve the noise to the DIO square pulse pulse width. With my current code (attached .png) I see 25 ~ ns jitter on the front coming down from the impulse (I have the trigger on the rising) with my oscilliscope. This Jig is present even with only a single output square wave (i.e., I delete the other square wave generators).

    Any ideas how to improve the fidelity of pulse width?

    Thanks in advance!

    25 ns is the period of your clock to 40 MHz, the jitter is unavoidable at this clock frequency. The DDS square wave algorithm produces a very precise frequency over time, but cannot control the speed at which it is called to update.

    If you set the clock of the loop to a greater frequency of derived clock, you shoot the Jig by the same factor. Right-click on a 40 MHz clock embedded in the project with the FPGA target and choose new clock derived from FPGA. You may need to experiment a bit to see how high you can set the clock frequency without introducing sync in compiling violations; new targets will allow higher clock rates generally. Set up your single cycle timed loop to use the derived clock and don't forget to update your average square configuration with the new clock frequency.

  • Loops FPGA (PXI-7852R)

    I created two pieces of code that run as desired independently. It creates a sine wave, reads analog input waveform and concludes the relative phase. The other piece of code creates three waves with independent settings (freq, duty cycle, etc.). When I try to put them in the same vi only the first code runs. Square waves are not generated from the second code.

    Any ideas why?

    I wouldn't be surprised if my problem was something to do with the SCTL which is part of the code of the square wave. I tried to put the SCTL inside the loop on the other code and square waves have not yet been produced.

    attached is a file .png to my code.

    Thanks in advance!

    I found a work around... I changed the IO nodes and how I expect to knit square waves. See the attached png file for more details

    Thanks for the comments everyone!

  • PXI-7852r

    Hello

    I currently have a PXI-7852r, and I try to get the data from the FPGA for post-processing of vi map.  I wrote a simple loop to retrieve the data from the fpga, but when I move it to the host vi I start getting time values.  For example, I say the card wait 50 usec between samples and it does but when I run the host vi my timing goes haywire.  I guess what I'm asking is how can I get the card data sampled at usec 50 to the post-processing step.

    Any help would be appreciated,

    The first example I mentioned above does not use a timed loop, but you should probably be able to replace the while loop with a timed loop, set the clock to 200 kHz and still compile fine.

    Depending on whether you want to raise or not your acquisition, on the side of the host of VI may need to be slightly modified, but the provided VI must be a good starting point.

    Post your screws if you encounter some unexpected problems (or better yet, the project, as in the example, since there are a few definitions of FPGA coming along if you just post on the screws).

  • LabView program for lock-in-amp

    Hello

    I have to read the voltage level of a Lock-In-Amp and on the other to read the magnetic field of a Gaussmeter, simultaneously. After that, I should I establish a curve of respect of tension on the ground. Please give me some tips to write a good program with LabView to the stated purpose.

    Records,

    The program to read from the hardware depends entirely on the hardware you have.  Should what commands you send?  In what format the data is returned? (Your next step is to 1) check with the manufacturer to see if the LabVIEW drivers available or 2) to determine how to communicate correctly with the hardware.

    After that you are able to read a value from each of the devices, the next step is to place them in a loop and the wire to a chart.  (loops are graphics are basic and there are a lot of examples).

    Now another question; you said you're tracing the curve tension against the magnetic field, then how we control the field?  Do you also need to add the control of the magnetic field?

  • Generate a digital waveform like memory on PXI cards

    Hello

    I'm looking for a way to send a large digital waveforms using a PXI digital signal generator. I saw DIO HS cards, but their memory is smaller than the files that I want to transfer. My understanding is that the PXI backplane bandwidth 132 MB/s. So, I shouldn't be able to stream a digital signal from the memory of the card that is slower than the CPU? For example, 50 Mbits / second (equivalent to only 6.25 MB/s)? However, I think I understand after reading their textbooks is that you cannot continuously transmitting a large waveform of the processor memory file, you must transfer the file to the memory of Council first and then transfer that out.

    Does anyone know if there is a way to have a flow of digital signal generation card an arbitrarily large directly from memory to the processor of digital signals? Or, what is the fastest card of pxi digital signal generation that does not require the storage of Council first files?

    Thank you

    Isaac

    Hello Isaac,.

    Take a look at the following area developer.

    NOR-HSDIO Stream from disk (generation) using Win32 file IO

    Note that you will not be able to take full advantage of the maximum rate of update HSDIO devices, because the data must be transferred in a bus.  Some other considerations are the width of the data as well as the HSDIO device you select, which may depend on other requirements not related to the size of file or waveform (for example the standard voltage or whether you need hardware compare).  For more information, take a look at the developer following items area.

    Data streaming of Architectures in the PXI systems
    The use of National Instruments Logic Analyzer and generator of test patterns Solution

    Advanced features of e/s high-speed digital devices White Paper Series

  • Matrix inversion complex on FPGA

    Hello

    I implement a simple code on SMU-7966R. I need a function that calculates the inversion of a complex matrix (fixed-point). I was wondering if there is an existing library that provides the service or I must apply myself.

    Please can someone enlighten me?

    Thank you.

    I don't quite know librares for the execution of complex matrix inversion.

    There are two ways I used for the development of own implenetations. Both methods involve the decomposition of the matrix A through rotation matricies.

    (1) the QR decomposition through Givens rotations where is QR. This method breaks down the matrix in a unitary matrix Q and a upper triangular matrix R. The inverse of Q is simply its transposed to Hermetian because it is unitary. The inverse of R can be solved for by back substitution. Multiplying the inverse of Q and R gives the inverse of a.

    (2) use the signular A value decompositon to get two unit matricies u and V and a diagonal matrix S of the signular components. Again, reversing the unitary matricies is simply the transposed to Hermetian. The inverse of the diagonal nmatrix is only taking the reciprocal of the diagonal elements. The SWINE vesicular disease can be performed using an algorithm called the cyclic Jacobi method. This method is slightly more complicated than the QR decomposition since it requires an additional rotation matrix, but it avoids the back problems through substition.

    These two processes are iterative and converge to the exact solution as the number if iterations increases. While math can seem a little daunting at first, there is a lot of literature on these topics including different FPGA implementations. Just google 'FPGA QR Décomposition' or 'Method of FPGA Jacobi'.

  • Create simulation FPGA PXI card?

    Hello

    I wonder if it is possible to emulate a FPGA card (like 7854R) to evaluate the possibilities of Labview FPGA?

    Thank you.

    This is possible and maybe more. This whitepaper is a good start to http://www.ni.com/white-paper/7445/en#toc2

  • Digital waveforms of SPI with PXI-6552

    I am trying to follow the following tutorial about the PXI-6552 module: http://www.ni.com/white-paper/3671/en.

    This is the example that I am referring:

    You can also use the data Active event to control the relative delay between the response data and the side assets of the sample clock. For example, you can export the active data on PFI 1 event and send it to the PFI 2, which can be configured as the source of Start command acquisition, as shown in Figure 8. You can export the generation of sample DDC CLK clock out and adjust the STROBE acquisition sample clock.

    Figure 9 shows a LabVIEW program that configures and outwardly carries the data Active event and the sample clock. The functions marked with an arrow carried out additional system requirements.

    Hello MrHappyAsthma,

    I'm looking at your code, and I see that you have two sessions of acquisition while the example has an acquisition and sessions of a generation. This could be the reason for the error.

    The digital data control are done right click on the front panel, then go on modern > I/O > digital data.

    I hope this helps.

  • FPGA device configuration, package and speed grade.

    Hello.

    Where can I find the news of grade package and the speed of the FPGA inside of the PXI-7842R? I ask because I want to build a project XPS in the Xilinx XPS and program needs this info.

    I followed the example in the "how to use designs based on Xilinx Microblaze with NI LabVIEW FPGA 2009 and the R-series modules". There, he gives the info for the specific FPGA (PXI-7852R and PXI-7953R) they use. It's a Virtex5, ff676, xc5vlx50, level-1 speed, but the authors do not mention where one can find this info.

    Thank you

    Bill.

    Nevermind, found the info in this way:

    Instruments\LabVIEW national 2010\Targets\NI\FPGA\RIO\R Series\Pxi-7842r

    Bill.

  • Laser digital lock with Labview FPGA?

    Hello

    Sorry to bother if you are not interested in this issue of digital signal processing. We are looking for a possible digital solutions to our problem locked frequency cavity closed-loop laser (see attached PDF file for more details).  The goal is to flatten the PZTs transfer function (cancel the resonances and anti-resonances and their phase shift matching) in the frequency domain, in addition to the normal PID control.  Input/output necessary voltage signals are small (we have our own amplifiers high power for the PZTs), and their bandwidth must be at least of 50 kHz (100 kHz would be optimal).

    Among various OR hardware/software (DSP, FPGA, cRIO etc.), would anyone recommend a cost-effective solution for rapid prototyping?

    Thank you!

    I would like to look at the FPGA PXI cards nor 7854r.  I rate of 750 kHz, 1 MHz AO.  According to the involved treatment, you might expect between 200 and 750 kHz closed control loop.  If the treatment is very intense, it's probably something less than 200 kHz.

    That said, the key to these performance levels is not trivial and great care and attention to detail must be used in the coding of the FPGA.

    Good luck

  • Deploy with fpga after change of chassis.

    Hello

    I'm running a project Veristand 2011 with an NI PXI-8109RT controller, a jury of NI PXI-7852R fpga and analog outputs 5 NI PXI-6733.

    For development, I used a chassis PXI-1000 b.

    Now, I have moved the system to a PXI-1045 chassis, and I can't deploy the project more.

    It gets stuck the "start of the deployment group 1", and after a while, I get a timeout error (-307672).

    The only way I deploy the project is to remove the FPGA of the nivssdf and remove the NI PXI-7852R of the chassis.

    Of course I need to map FPGA, then... why the project will not deploy with it?

    Thank you

    Matteo

    Hello Matteo,.

    The chassis of 1045 (and other PXI chassis with a large number of slots) have several segments of independent PCI bus along the bottom of basket.  By default, triggers are not shared between the segments.

    So, if you want to synchronize all your cards, one solution is to put all cards in the same bus segment.  If this is not possible, you will need to go to MAX and manually map PXI Trig 0 away from your card master sync everywhere for other bus segments.  For more information on how to do this, see the following document:

    Routing see PXI trigger in the bus chassis PXI crossover

    Kind regards

    Devin

  • FPGA - count inside a statement box

    Hello, LV users - type of intermediary with the LV, fairly new to FPGA.  I use LV2010 with the FPGA with a PXI-7852R RIO module.  I have my working for all practical purposes, with the exception of a decision point FPGA application that is controlled by a simple integer (what-I-thought-should be).  This integer that I tried first with registers at offset, then tried a knot of comments I've seen that had been used in the FPGA Debug.lvlib in 2008.  STILL does not work!  What happens in my code is as follows: whenever I detect the negative in my modulating wave, a Boolean value is True and penetrates in a case where it is appropriate to update my account by 1.  Rather than be updated by one, it is updated the order of 10,000 or more, the same number each time + / a.  Not sure where that number comes from.  Count a tick maybe?  It's a larger number if I slow down my modulating wave.  No idea why this is happening?  Even better, any ideas how to do a 'simple' metering works as expected?  Thanks much for any help.

    Out of curiosity, when the SaddlePtCount is true, only it prevents you from returning the 0.08 Hz, 0.0159 case? If you are not prevented from returning the case then your counter increment will continue to increase while your modulated signal is in the stubborn interval +-0.0003055. To check this possibility, you might reduce the scope delimited to say +-0.0001 to see if this reduces the number. Depending on the whether it works, everything you have need to do to stop the counter would be to have a "Triggered" local variable that is set to true the first time that the SaddlePt Boolean value is true. Then, if you wrap the feedback node increment in a nest additional cases, you could check the status of "Triggered" and if it wasn't it true value and leave the real case in the case empty structure. Therefore, the first time the County will be updated at each time consecutive that the signal is between stubborn in a given cycle, it will not change the County. The only other change would be to set the variable false "Triggered" when the SaddlePt is set to false.

    Hope this helps,

    Blayne Kettlewell

  • The initialization of the lut for FPGA

    I am currently generate a waveform on an FPGA using a program to initialize a look-up Table (LUT).  When I select call VI of initialization, and then select the path and click OK, Labview begins to consume a lot of time CPU, but nothing seems to happen--none of the buttons except the open dialog box file and the close icon (red box with an x in the upper right corner) is grayed out.  Someone at - it ideas?  Maybe I'm doing something wrong, but there is very little documentation on this function.  I have attached the VI that I use to try to initialize my table.

    Any thoughts would be great.

    Cheers, Matt

    This must have something to do with the complexity of the LUT VI initialization.  As a work around, I simply wrote the data in a file that I then read for the initialization of LUT.  I have attached the screws again.

    The lack of reactivity is a problem, but also the absence of any indication of an error.

Maybe you are looking for

  • Downloaded Firefox, had problems, deleted everything, now, nothing works!

    We have downloaded Firefox without having read all the fine print. Am impatient and clicked through everything without having read what was being installed. Once the download and complete installation, we had problems with a lot of other things on ou

  • How to copy a new on an existing user.js in profile

    HelloI'll shut up deploy Firefox on many computers at once.Computers now have Firefox 14 on this and people work with it well.I ve it deployed with the determination of changes in the user.js.Now I have to uninstall the 14 Firefox and install Firefox

  • Problem with adding previously blocked contact.

    I tried to add an old friend of my friends on Skype after believing have been they are blocked for a while. I emptied my blocked list and sought their username after asking them what it was, but the Skype directory could not find them. After about an

  • How to resize the activex control?

    I want to dynamically resize an ActiveX control in LV 7.0.  How can I do? I tried to manipulate the container manually, using the HWND parent, but although the ActiveX think than its resizing it na not really.  Looks like the window is to be rigged a

  • D110: Printer Destination does not exist - for D110 all-in-one

    This printer is connected via a Charter Communications wireless router wireless. Printing and scanning has been working well. 2 nights ago he stopped and we started getting the message "the destination printer does not exist" in the window of the pri