Turn on suggestions

Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.

Showing results for

- Intel Community
- Software
- Software Development SDKs and Libraries
- Intel® Integrated Performance Primitives
- Regard ippsDemodulateFM_CToR_16s function usage

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Mute
- Printer Friendly Page

dertaurus

Beginner

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

07-29-2009
06:05 AM

77 Views

Regard ippsDemodulateFM_CToR_16s function usage

This function suppose to converts the frequency modulated signal to the initial demodulated form, this is a new function in IPP and it is realy useful, but there is no samples about using this function and the parameters are just for the input and output but there is no parameter for the carrier frequency or for the frequency deviation, so is there any thing missing or I did not understand how to use this function.

Syntax

IppStatus ippsDemodulateFM_CToR_16s(const Ipp16s* pSrcRe, const Ipp16s* pSrcIm, Ipp16s* pDst, int len, Ipp16sc* pDlyPoint);

Parameters

pSrcRe

Pointer to the source vector with real parts of complex elements.

pSrcIm

Pointer to the source vector with imaginary parts of complex elements.

pDst

Pointer to the destination vector.

len

Number of elements in the vector.

pDlyPoint

Pointer to the value required for operation.

I need any help in using this function.

Thank you

Link Copied

2 Replies

Chao_Y_Intel

Employee

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

08-03-2009
12:11 AM

77 Views

Hello,

see the comments from the function expert:

Description of the Demodulator module:

To demodulate the complex input signal, the demodulator performs the following steps:

1) Calculate the derivate of the phase of the input signal. That is done by a complex multiplication with the conjugate of the previous sample.

ippsConj_32fc(complexIn, conjugatedIn+1, BLOCK_LENGTH);

ippsMul_32fc(complexIn, conjugatedIn, multiplyResult, BLOCK_LENGTH);

2) Calculate the phase of the resulting complex sample

ippsPhase_32fc(multiplyResult, angleOut,BLOCK_LENGTH);

3) The output you get here ranges from pi to pi, so, as we want a value between -1 and 1, we have to multiply with 1/pi (or for fixed point: 32768/pi).

ippsMulC_32f_I(Scale, angleOut,BLOCK_LENGTH);

That`s all.

Below is the sequence of IPP calls that emulates this function behavior:

//START

ippsRealToCplx_16s();

ippsConvert_16s32f();

ippsMulC_32f_I();//scale to -1 to 1

ippsConj_32fc();

ippsMul_32fc();

ippsPhase_32fc();

ippsMulC_32f_I(); //scale with 32768/pi to limit demodulator output to fixed point +1/-1 in 0.15

//now we will need to go fixed point again

ippsConvert_32f16s_Sfs();

//END

Thanks,

Chao

Xuguang_H_

Beginner

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

09-26-2012
12:52 AM

77 Views

Topic Options

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page

For more complete information about compiler optimizations, see our Optimization Notice.