<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Function for frequency remix in Intel® Integrated Performance Primitives</title>
    <link>https://community.intel.com/t5/Intel-Integrated-Performance/Function-for-frequency-remix/m-p/829863#M5450</link>
    <description>Hi,&lt;BR /&gt;&lt;BR /&gt;I need to implement frequency remix and have a comparable performance as matlab.&lt;BR /&gt;&lt;BR /&gt;The function i was trying is&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;P&gt;Ipp32fc * pbuf = ippsMalloc_32fc(Np);&lt;/P&gt;&lt;P&gt;Ipp32fc * pbufcom = ippsMalloc_32fc(Np);&lt;/P&gt;&lt;P&gt;Ipp32fc * pbufmul = ippsMalloc_32fc(Np);&lt;/P&gt;&lt;P&gt;// IppStatus ippsTone_Direct_32fc(Ipp32fc* pDst, int len, float magn, float rFreq, float* pPhase, IppHintAlgorithmhint);&lt;/P&gt;&lt;P&gt;//IppStatus ippsRealToCplx_32f(const Ipp32f* pSrcRe, const Ipp32f* pSrcIm, Ipp32fc* pDst, int len);&lt;/P&gt;&lt;P&gt;IppStatCom = ippsRealToCplx_32f(pIsrc, pQsrc, pbufcom, Np);&lt;/P&gt;&lt;P&gt;ippStatsSin = ippsTone_Direct_32fc(pbuf,Np,1.0,foffcos,&amp;amp;ZeroPh,ippAlgHintAccurate);&lt;/P&gt;&lt;P&gt;// IppStatus ippsMul_32fc(const Ipp32fc* pSrc1, const Ipp32fc* pSrc2, Ipp32fc* pDst, int len);&lt;/P&gt;&lt;P&gt;IppStatMul = ippsMul_32fc(pbuf, pbufcom, pbufmul, Np);&lt;/P&gt;&lt;P&gt;//IppStatus ippsCplxToReal_32fc(const Ipp32fc* pSrc, Ipp32f* pDstRe, Ipp32f* pDstIm, int len);&lt;/P&gt;&lt;P&gt;ippStatsCos = ippsCplxToReal_32fc(pbufmul,pIdest,pQdest,Np);&lt;/P&gt;&lt;P&gt;foffcos = 0.0;&lt;/P&gt;&lt;P&gt;ippsFree(pbuf);&lt;/P&gt;&lt;P&gt;ippsFree(pbufcom);&lt;/P&gt;&lt;P&gt;ippsFree(pbufmul);&lt;/P&gt;&lt;BR /&gt;but the performance (i.e accuracy) of this implmentation is not all close tomatlab for sample size &amp;gt;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,&amp;amp;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.&lt;BR /&gt;&lt;BR /&gt;I treid 64 bit version also. The 64 bit version implmentation has linear evm but its high. I tired another version of implmentation&lt;BR /&gt;&lt;BR /&gt;&lt;P&gt;for (k = 0; k&lt;NP&gt;&lt;/NP&gt;&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;v1&lt;K&gt;= k*foff;&lt;/K&gt;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;ippStatsSin = ippsSin_32f_A21(&amp;amp;v1[0], &amp;amp;v2[0], Np);&lt;/P&gt;&lt;P&gt;ippStatsCos = ippsCos_32f_A21(&amp;amp;v1[0], &amp;amp;v3[0], Np);&lt;/P&gt;&lt;P&gt;//remix&lt;/P&gt;&lt;P&gt;MultiplyComplexArrays( pIsrc, &lt;/P&gt;&lt;P&gt;pQsrc, &lt;/P&gt;&lt;P&gt;&amp;amp;v3[0], &lt;/P&gt;&lt;P&gt;&amp;amp;v2[0], &lt;/P&gt;&lt;P&gt;pIdest, &lt;/P&gt;&lt;P&gt;pQdest, &lt;/P&gt;&lt;P&gt;Np); &lt;BR /&gt;&lt;BR /&gt;It has the similar non-linear EVM perfromance compared with Matlab&lt;BR /&gt;Matlab code&lt;/P&gt;&lt;P&gt;len = 2*10^6;&lt;/P&gt;&lt;P&gt;xI = ones(1,len);%.*0.707;%.* rand(1,len);&lt;/P&gt;&lt;P&gt;xQ = zeros(1,len);%.*0.707;%.* rand(1,len);&lt;/P&gt;&lt;P&gt;in = [0:1:len-1];&lt;/P&gt;&lt;P&gt;ph = pi/2;%different phase&lt;/P&gt;&lt;P&gt;remixI = cos(ph.*in);&lt;/P&gt;&lt;P&gt;remixQ = sin(ph.*in);&lt;/P&gt;&lt;P&gt;% remix&lt;/P&gt;&lt;P&gt;refI = xI.*remixI - xQ.*remixQ;&lt;/P&gt;&lt;P&gt;refQ = xQ.*remixI + xI.*remixQ;&lt;/P&gt;&lt;P&gt;rc= refI + 1i*refQ; % reference &lt;/P&gt;&lt;P&gt;dc = dllOutI+1i*dllOutQ; % IPP &lt;/P&gt;&lt;P&gt;mag = abs(dc);&lt;/P&gt;&lt;P&gt;angledc= unwrap(angle(dc));&lt;/P&gt;&lt;P&gt;magref =abs(rc);&lt;/P&gt;&lt;P&gt;anglerc= unwrap(angle(rc));&lt;/P&gt;&lt;P&gt;%error&lt;/P&gt;&lt;P&gt;magerr = magref - mag;&lt;/P&gt;&lt;P&gt;angleerr = anglerc- angledc;&lt;BR /&gt;&lt;BR /&gt;Is there something i missed in the above implementation? Kindly suggest what are the possible solution to achive comparable performance.&lt;BR /&gt;&lt;BR /&gt;Regards&lt;BR /&gt;Rohit&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Kindly have a look and suggest some &lt;/P&gt;</description>
    <pubDate>Mon, 16 Jan 2012 12:56:19 GMT</pubDate>
    <dc:creator>rohitspandey</dc:creator>
    <dc:date>2012-01-16T12:56:19Z</dc:date>
    <item>
      <title>Function for frequency remix</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Function-for-frequency-remix/m-p/829863#M5450</link>
      <description>Hi,&lt;BR /&gt;&lt;BR /&gt;I need to implement frequency remix and have a comparable performance as matlab.&lt;BR /&gt;&lt;BR /&gt;The function i was trying is&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;P&gt;Ipp32fc * pbuf = ippsMalloc_32fc(Np);&lt;/P&gt;&lt;P&gt;Ipp32fc * pbufcom = ippsMalloc_32fc(Np);&lt;/P&gt;&lt;P&gt;Ipp32fc * pbufmul = ippsMalloc_32fc(Np);&lt;/P&gt;&lt;P&gt;// IppStatus ippsTone_Direct_32fc(Ipp32fc* pDst, int len, float magn, float rFreq, float* pPhase, IppHintAlgorithmhint);&lt;/P&gt;&lt;P&gt;//IppStatus ippsRealToCplx_32f(const Ipp32f* pSrcRe, const Ipp32f* pSrcIm, Ipp32fc* pDst, int len);&lt;/P&gt;&lt;P&gt;IppStatCom = ippsRealToCplx_32f(pIsrc, pQsrc, pbufcom, Np);&lt;/P&gt;&lt;P&gt;ippStatsSin = ippsTone_Direct_32fc(pbuf,Np,1.0,foffcos,&amp;amp;ZeroPh,ippAlgHintAccurate);&lt;/P&gt;&lt;P&gt;// IppStatus ippsMul_32fc(const Ipp32fc* pSrc1, const Ipp32fc* pSrc2, Ipp32fc* pDst, int len);&lt;/P&gt;&lt;P&gt;IppStatMul = ippsMul_32fc(pbuf, pbufcom, pbufmul, Np);&lt;/P&gt;&lt;P&gt;//IppStatus ippsCplxToReal_32fc(const Ipp32fc* pSrc, Ipp32f* pDstRe, Ipp32f* pDstIm, int len);&lt;/P&gt;&lt;P&gt;ippStatsCos = ippsCplxToReal_32fc(pbufmul,pIdest,pQdest,Np);&lt;/P&gt;&lt;P&gt;foffcos = 0.0;&lt;/P&gt;&lt;P&gt;ippsFree(pbuf);&lt;/P&gt;&lt;P&gt;ippsFree(pbufcom);&lt;/P&gt;&lt;P&gt;ippsFree(pbufmul);&lt;/P&gt;&lt;BR /&gt;but the performance (i.e accuracy) of this implmentation is not all close tomatlab for sample size &amp;gt;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,&amp;amp;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.&lt;BR /&gt;&lt;BR /&gt;I treid 64 bit version also. The 64 bit version implmentation has linear evm but its high. I tired another version of implmentation&lt;BR /&gt;&lt;BR /&gt;&lt;P&gt;for (k = 0; k&lt;NP&gt;&lt;/NP&gt;&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;v1&lt;K&gt;= k*foff;&lt;/K&gt;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;ippStatsSin = ippsSin_32f_A21(&amp;amp;v1[0], &amp;amp;v2[0], Np);&lt;/P&gt;&lt;P&gt;ippStatsCos = ippsCos_32f_A21(&amp;amp;v1[0], &amp;amp;v3[0], Np);&lt;/P&gt;&lt;P&gt;//remix&lt;/P&gt;&lt;P&gt;MultiplyComplexArrays( pIsrc, &lt;/P&gt;&lt;P&gt;pQsrc, &lt;/P&gt;&lt;P&gt;&amp;amp;v3[0], &lt;/P&gt;&lt;P&gt;&amp;amp;v2[0], &lt;/P&gt;&lt;P&gt;pIdest, &lt;/P&gt;&lt;P&gt;pQdest, &lt;/P&gt;&lt;P&gt;Np); &lt;BR /&gt;&lt;BR /&gt;It has the similar non-linear EVM perfromance compared with Matlab&lt;BR /&gt;Matlab code&lt;/P&gt;&lt;P&gt;len = 2*10^6;&lt;/P&gt;&lt;P&gt;xI = ones(1,len);%.*0.707;%.* rand(1,len);&lt;/P&gt;&lt;P&gt;xQ = zeros(1,len);%.*0.707;%.* rand(1,len);&lt;/P&gt;&lt;P&gt;in = [0:1:len-1];&lt;/P&gt;&lt;P&gt;ph = pi/2;%different phase&lt;/P&gt;&lt;P&gt;remixI = cos(ph.*in);&lt;/P&gt;&lt;P&gt;remixQ = sin(ph.*in);&lt;/P&gt;&lt;P&gt;% remix&lt;/P&gt;&lt;P&gt;refI = xI.*remixI - xQ.*remixQ;&lt;/P&gt;&lt;P&gt;refQ = xQ.*remixI + xI.*remixQ;&lt;/P&gt;&lt;P&gt;rc= refI + 1i*refQ; % reference &lt;/P&gt;&lt;P&gt;dc = dllOutI+1i*dllOutQ; % IPP &lt;/P&gt;&lt;P&gt;mag = abs(dc);&lt;/P&gt;&lt;P&gt;angledc= unwrap(angle(dc));&lt;/P&gt;&lt;P&gt;magref =abs(rc);&lt;/P&gt;&lt;P&gt;anglerc= unwrap(angle(rc));&lt;/P&gt;&lt;P&gt;%error&lt;/P&gt;&lt;P&gt;magerr = magref - mag;&lt;/P&gt;&lt;P&gt;angleerr = anglerc- angledc;&lt;BR /&gt;&lt;BR /&gt;Is there something i missed in the above implementation? Kindly suggest what are the possible solution to achive comparable performance.&lt;BR /&gt;&lt;BR /&gt;Regards&lt;BR /&gt;Rohit&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Kindly have a look and suggest some &lt;/P&gt;</description>
      <pubDate>Mon, 16 Jan 2012 12:56:19 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Function-for-frequency-remix/m-p/829863#M5450</guid>
      <dc:creator>rohitspandey</dc:creator>
      <dc:date>2012-01-16T12:56:19Z</dc:date>
    </item>
    <item>
      <title>Function for frequency remix</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Function-for-frequency-remix/m-p/829864#M5451</link>
      <description>Rohit, could you translate for me what is "evm", I've found in wikipedia only the next:&lt;BR /&gt;&lt;BR /&gt;&lt;P&gt;EVM can be an abbreviation for:&lt;/P&gt;&lt;P&gt;Electronic Voting Machine&lt;/P&gt;&lt;P&gt;Earned value management&lt;/P&gt;&lt;P&gt;Economic value management; see economic value added&lt;/P&gt;&lt;P&gt;Electronic voltmeter; see voltmeter, a device to measure voltage&lt;/P&gt;&lt;P&gt;Electronic voting machine; see electronic voting&lt;/P&gt;&lt;P&gt;Error vector magnitude, a measure of performance of a radio demodulator&lt;/P&gt;&lt;P&gt;Evaluation module&lt;/P&gt;&lt;P&gt;Expert Group on Vitamins and Minerals&lt;/P&gt;&lt;P&gt;Extended Voice Module (Cisco Systems)&lt;/P&gt;&lt;P&gt;External Voice Mail; see voicemail&lt;/P&gt;&lt;P&gt;Extra-Value Meal; see McDonald's&lt;/P&gt;&lt;P&gt;Eyes, Voice, Movement; the three components of the Glasgow Coma Scale&lt;/P&gt;&lt;P&gt;Elastameric Variable Membrane; pool coating&lt;/P&gt;&lt;P&gt;Extruded Verbal Material&lt;BR /&gt;&lt;BR /&gt;Regards,&lt;BR /&gt;Igor&lt;/P&gt;</description>
      <pubDate>Mon, 16 Jan 2012 13:46:04 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Function-for-frequency-remix/m-p/829864#M5451</guid>
      <dc:creator>igorastakhov</dc:creator>
      <dc:date>2012-01-16T13:46:04Z</dc:date>
    </item>
    <item>
      <title>Function for frequency remix</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Function-for-frequency-remix/m-p/829865#M5452</link>
      <description>Hi,&lt;BR /&gt;&lt;BR /&gt;Sorry to confuse with the term EVM(its error vector maganitude). in thecontext of the function it is refering to &lt;BR /&gt;&lt;BR /&gt;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.&lt;BR /&gt;Rgs&lt;BR /&gt;Rohti</description>
      <pubDate>Mon, 16 Jan 2012 13:50:41 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Function-for-frequency-remix/m-p/829865#M5452</guid>
      <dc:creator>rohitspandey</dc:creator>
      <dc:date>2012-01-16T13:50:41Z</dc:date>
    </item>
  </channel>
</rss>

