LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

modulation

Solved!
Go to solution

ok, i've solved the queing error for file getAudioInputAndDemodQAM0.vi  above, I forgot to insert a time delay into the producer loop and change the consumer from a while to a for loop.  Anyway, I still have buffering problem where I'm missing symbols between the ending and beginning of each 12,500 samples snap.  It's still giving me the same results as using a single loop.

 

When you look at my diagram, do you think I have the right logic in place?  For the producer section, I sample raw audio input then put all the time domain waveform into the que and let the consumer loop demodulates it?  Or is there any a better way to handle this so that I can prevent discontinuity.  thanks

 

 

0 Kudos
Message 31 of 51
(2,003 Views)
I think this problem can be solved if I can take a glance at MT niRFSA QAM Continuous Demod.vi, not sure why my MT kit doesn't have this example.  It has everything else but this one.
0 Kudos
Message 32 of 51
(1,997 Views)

ok guys,

 

I was able to solve that constant rotation problem and got MT QAM demod block to lock in quite well.  The EVM drops nicely too. This problem turns out to be a lot easier than it looks

 

The only question I have left is using the Producer/Consumer method as I still could not get this method to solve my discontinuity problem between each 15,000 samples/per loop.  I packed the audio samples into Producer loop, then queue one by one set of audio data worth of 15,000 samples each, then feed them all into the Consumer loop for demodulation and still no avail.  I'm getting the exact same result as not using Producer/Consumer method and  I'm sure I must be missing something here.  Please help, this problem appears to be tougher than it looks.  I really need to solve this disconuity problem or I'll never be able to decode any messages with interleaver, not even a viterbi decoder can save my day because of excessive missing frames between each sampling cycle.  Thanks again.

Message Edited by lavalava on 10-29-2008 09:32 PM
0 Kudos
Message 33 of 51
(1,977 Views)

Hi lavalava,

 

Are you working to stream sound data form your sound card or to read it back from a pre-recorded file? The suggestion for the producer consumer loop was intended to help with streaming data from the sound card. I am not sure what your final implementation looks like, but the advantage of the producer-consumer architecture is that both loops can run in parallel, so an acquisition and an analysis loop can execute at the appropriate rates. Typically both loops are while loops, which aligns itself better for a streaming form sound card type of acquisition. The producer loop would continue reading data at the rate you specify and put the data into the queue, while the consumer loop would pull data out of the queue and process it. One issue I saw with the loops is that the error wire for the consumer loop was depending on the error out from the consumer loop, which does not allow the loops to run in parallel. The template or example that have been previously cited would have the correct model to follow. Where are you noticing that you are missing data and hot do you know where the data is missing. I do see that 15000 data points are returned and after resampling, filtering, and decimation the number of data points in the data is less. Are you referring to this? Are you missing some samples because of the samples/symbol settings and the total sample size of each data block?

 

It is good to hear that you were able to get your demodulation scheme going with a lock on your signal. It would be beneficial for the community if you were able to post your functional code that would work with the 64 QAM file that you previously posted.

Steve B

0 Kudos
Message 34 of 51
(1,949 Views)

Thanks Steve.  Would you happened to have the example file names: "MT niRFSA QAM Continuous Demod.vi" by any chance, could you please post this example?  Not sure why my version doesn't have it, maybe because I'm using version 3.0.  Or you can even take a snapshot of the code and post it, I just want to take a look at it real quick to see how they pass data between the 2 loops.

 

I also noticed too that I must insert a time delay of a min of 500ms into the producer loop or I will get random errors.  Could the time delay be the problem, you think? 

0 Kudos
Message 35 of 51
(1,940 Views)

Hi lavalava,

 

Here is the exmaple that you were looking for. I saved it back for LabVIEW 8.0. Let me know some more about where you are missing the samples and how you want the application to work. What error were you getting before you added the 500ms delay in the producer loop? Was this related to reading from the sound file?

Steve B

0 Kudos
Message 36 of 51
(1,923 Views)
Steve B or any NI application engineers reading this, I have a quick question.  It's been a while since I've work on this project because I thought I finished just by having a demodulation feature only but now I also need modulation side.  I know it's pretty obvious.  Anyway, you know how you get an audio signal from a sound card then feed it into a downconvert then fractional sampler where you specify the baud rate then into a demodulation VI?  Well for the modulation side, after I modulate it there is nothing in the toolkit that does the inverse of fractional sampler where I can convert my signal into exact baud rate.  Also, I noticed that the upconverter VI doesn't let me specify the bandwidth, instead it only allows end user to specify the carrier but I need to specify my bandwidth or the signal will get clip off?  How do I do that?  And I need something that does the inverse of "Fractional Sample" VI for the upconversion side.  Unfortunately, that VI calls out to some DLL you guys developed and I would have no way to interpret how that is done.  Without getting the modulated signal into the right baud and bandwidth, if I downcovert the signal and feed it into a spectrum analyzer, it looks flat instead of a pulse shape.  It should look like bandpass shape.  Please help.  Thanks.
0 Kudos
Message 37 of 51
(1,720 Views)

lavalava, 

 

You should try and use the niRFSG Fractional Resampling VI as this will allow you to resample your signal for a different frequency. As far as the bandwidth goes, I was looking through our documentation and it has me confused at this point. It specifies that the bandwidth will be the nyquist rate and that can be derived from your dt value that you give from your Baseband Waveform when using the MT Upconvert Waveform. Try the Fractional Resample to get your signal to the desired rate, and let me know how that works, and I will check on the Bandwidth at the same time. Thanks!

Aaron W.
National Instruments
CLA, CTA and CPI
0 Kudos
Message 38 of 51
(1,685 Views)

Hi Aaron.  Thank you for taking my questions.  Yeah, I was twinkling around with it because I don't have an RF toolkit so I don't have access to that VI you suggested.  From my understanding of the situation, that RF toolkit is only good if I'm using along with a PXI gig (oooh PRICEY :D).  And the lowest frequency response the upconverter and vector signal analyzers you guys are selling start at around 9kHz and up (I could be wrong on this).  But most of the stuffs I'm working on at the present moment is at only 1.8kHz (center freq) baseband because they're modem.  So it wouldn't serve me any practical purpose to try.  I do, however, have plan on purchasing the whole gig sometimes in the future but there are so little brochures that tell me exactly what are needed and I hate to purchase wrong parts or my boss will kill me.

 

Anyway, I think I might have figured it out by reversing the process.  So my question now is regarding those Equalization VI, if you look at "Ideal PSK Equalization.VI" you'll see that everything works fine using ideal cases of generating an upconverted signal with some AGWN and then downconvert it.   The equalizer converges immediately, locked, and it packed everthing nice and tight (extremely).  However, I can't seem to replicate this in RT.  If you take a look at my Real Equalization.VI along with two playback sound files (8PSK).  You'll see it.  I suspect that the Fractional Sampler VI needs additional works but I could be wrong.  Could you please or someone over there take a look at it?  

 

One of the sound file is normal case, you will see that the Equalizer did not help at all!  Its performance was exactly if not worst than the normal demodulation VI.  The other file was due to high power input which create a little extra noises but NOT a whole lot comparing to those noises generated from the Ideal PSK Equalization VI.  As you can see, it got worst!  I think I'm missing something but I can't seem to find it.....  Thanks

Download All
0 Kudos
Message 39 of 51
(1,630 Views)
Message Edited by lavalava on 10-28-2009 09:01 PM
Download All
0 Kudos
Message 40 of 51
(1,629 Views)