Continue to Site

Welcome to

Welcome to our site! is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

How to recover data from sine wavform of this type?

Not open for further replies.


Advanced Member level 1
Dec 22, 2007
Reaction score
Trophy points
Bangalore, India
Activity points
Hi friends,
I'm trying to decode the QAM receiver part. Here I have obtained a cosine shifted waveform which I need to convert it to square wave(to get Q-channel) to get the data. I have attached a jpg image file. please take a look at the image because you may get many ideas to decode data. The red line marked is what I need to extract, now what are the ways to get the square wave/data(red line) from this waveform as shown in the pattern. The values in the left side are exact. Any ideas like comparator or some other coding techniques if provided will be much appreciated. I can't use filter techniques. So please it'd be great if you could provide me some other tips or ideas. thank you in advance.
Note:- This is Matlab-simulink based system generator model for QAM. I can either use m-file or xilinx blocks for doing these operations. VHDL or Vlog is optional.

Some basic understanding of quadrature modulation would be helpful. I suggest to consult the wikipedia QAM article for the
possible structure of a quadrature demodulator. In general, it deals with a reference carrier, multipliers and filters.

Thanks FVM. But what you are seeing in this wavefom is the result of the product of reference carrier and the qam signal. The next stage is a filter design. Since i am not able to use filter here, I'm now trying to find some other means of recovering such as a comparator or zero-cross detector or any methods using logic-gates and so on...See the attached image with this. This is the structure(ideal) shown in wikipedia. saying
Multiplying by a cosine (or a sine) and by a low-pass filter it is possible to extract the component in phase (or in quadrature)

If you use a low pass filter of the freq slightly higher than this waveform,the data can be recovered. I am trying to duplicate the filter operation here. Implementing filter in Xilinx System generator seems to be prettly hard without their help. Thanks

But what you are seeing in this wavefom is the result of the product of reference carrier and the qam signal.
Yes, I didn't realize this fact. So the waveform frequency is basically twice the carrier frequency. A low pass is needed to recover the base band. Of course, if you're planning to design a digital receiver, you need to manage the respective filter design tools. You can start however with a simple boxcar averager, just generating the mean over full (or in case of an ideal input signal half) carrier cycles. It can be expected to remove the carrier products completely.

Yeah....I was able to design filter and it works pretty perfect only in System generator simulation. But the design was not able to be generated for hardware because there are improper clocking designs it says, poor timing. I have a timing lack of -1.2ns out of my target time of 12.5 ns. I'm using 80 MHz for my project. But what it has achieved is 13.7 ns. But all blocks are just xilinx provided blocks. So how can we expect such a poor timing in a design?. Shouldn't it be more accurate than manual coding?...I don't know what to do now!......The filter module eats toooo much of cpu power I guess, even after reducing the order to low fig :-(

Not open for further replies.

Part and Inventory Search

Welcome to