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
- Function for frequency remix

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

rohitspandey

Beginner

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

01-16-2012
04:56 AM

69 Views

Function for frequency remix

I need to implement frequency remix and have a comparable performance as matlab.

The function i was trying is

Ipp32fc * pbuf = ippsMalloc_32fc(Np);

Ipp32fc * pbufcom = ippsMalloc_32fc(Np);

Ipp32fc * pbufmul = ippsMalloc_32fc(Np);

// IppStatus ippsTone_Direct_32fc(Ipp32fc* pDst, int len, float magn, float rFreq, float* pPhase, IppHintAlgorithmhint);

//IppStatus ippsRealToCplx_32f(const Ipp32f* pSrcRe, const Ipp32f* pSrcIm, Ipp32fc* pDst, int len);

IppStatCom = ippsRealToCplx_32f(pIsrc, pQsrc, pbufcom, Np);

ippStatsSin = ippsTone_Direct_32fc(pbuf,Np,1.0,foffcos,&ZeroPh,ippAlgHintAccurate);

// IppStatus ippsMul_32fc(const Ipp32fc* pSrc1, const Ipp32fc* pSrc2, Ipp32fc* pDst, int len);

IppStatMul = ippsMul_32fc(pbuf, pbufcom, pbufmul, Np);

//IppStatus ippsCplxToReal_32fc(const Ipp32fc* pSrc, Ipp32f* pDstRe, Ipp32f* pDstIm, int len);

ippStatsCos = ippsCplxToReal_32fc(pbufmul,pIdest,pQdest,Np);

foffcos = 0.0;

ippsFree(pbuf);

ippsFree(pbufcom);

ippsFree(pbufmul);

but the performance (i.e accuracy) of this implmentation is not all close tomatlab for sample size >10^4and initial phasor angle between (pi/2-pi/16). Though for smaller angle the perforamnce is comparable. The evm is non-linear in both cases. I tried reseting phase at a certain sample size but the ippsTone_Direct_32fc(pbuf,Np,1.0,foffcos,&ZeroPh,ippAlgHintAccurate); is not behaving as expected. I tried providing ZeroPh to a value equal to the phase that will be vaild at the resetting sample value. But the response is non-linear.

I treid 64 bit version also. The 64 bit version implmentation has linear evm but its high. I tired another version of implmentation

for (k = 0; k

{

v1

}

ippStatsSin = ippsSin_32f_A21(&v1[0], &v2[0], Np);

ippStatsCos = ippsCos_32f_A21(&v1[0], &v3[0], Np);

//remix

MultiplyComplexArrays( pIsrc,

pQsrc,

&v3[0],

&v2[0],

pIdest,

pQdest,

Np);

It has the similar non-linear EVM perfromance compared with Matlab

Matlab code

len = 2*10^6;

xI = ones(1,len);%.*0.707;%.* rand(1,len);

xQ = zeros(1,len);%.*0.707;%.* rand(1,len);

in = [0:1:len-1];

ph = pi/2;%different phase

remixI = cos(ph.*in);

remixQ = sin(ph.*in);

% remix

refI = xI.*remixI - xQ.*remixQ;

refQ = xQ.*remixI + xI.*remixQ;

rc= refI + 1i*refQ; % reference

dc = dllOutI+1i*dllOutQ; % IPP

mag = abs(dc);

angledc= unwrap(angle(dc));

magref =abs(rc);

anglerc= unwrap(angle(rc));

%error

magerr = magref - mag;

angleerr = anglerc- angledc;

Is there something i missed in the above implementation? Kindly suggest what are the possible solution to achive comparable performance.

Regards

Rohit

Kindly have a look and suggest some

Link Copied

2 Replies

igorastakhov

New Contributor II

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

01-16-2012
05:46 AM

69 Views

EVM can be an abbreviation for:

Electronic Voting Machine

Earned value management

Economic value management; see economic value added

Electronic voltmeter; see voltmeter, a device to measure voltage

Electronic voting machine; see electronic voting

Error vector magnitude, a measure of performance of a radio demodulator

Evaluation module

Expert Group on Vitamins and Minerals

Extended Voice Module (Cisco Systems)

External Voice Mail; see voicemail

Extra-Value Meal; see McDonald's

Eyes, Voice, Movement; the three components of the Glasgow Coma Scale

Elastameric Variable Membrane; pool coating

Extruded Verbal Material

Regards,

Igor

rohitspandey

Beginner

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

01-16-2012
05:50 AM

69 Views

Sorry to confuse with the term EVM(its error vector maganitude). in thecontext of the function it is refering to

difference in the phase angle of the refernce vector and the IPP output vector. The reference vector is genrated using the matlab (the code defined above) and dllout is the output of the IPP function. I hope now EVM is clear in the context.

Rgs

Rohti

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.