10-29-2008 01:20 PM
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
10-29-2008 02:15 PM
10-29-2008 09:24 PM - edited 10-29-2008 09:32 PM
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.
10-30-2008 07:30 PM
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.
10-30-2008 09:54 PM
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?
10-31-2008 02:39 PM
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?
10-16-2009 01:07 PM
10-21-2009 09:49 AM
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!
10-28-2009 08:58 PM
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
10-28-2009 08:59 PM - edited 10-28-2009 09:01 PM