新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于DSP的電力線載波OFDM調制解調器

        基于DSP的電力線載波OFDM調制解調器

        作者: 時間:2015-02-09 來源:網絡 收藏

          TMS320C6201的數據通路和流水線工作方式是對算法進行優化從而獲得高性能的基礎。TMS320C6201有兩個可以進行數據處理的數據通路A和B,每個通路有4個功能單元(.L.S.M.D)和一個包括16個32位寄存器的寄存器組。功能單元執行邏輯、位移、乘法、加法和數據尋址等操作。兩個數據尋址單元(.D1和.D2)專門負責寄存器組和存儲器之間的數據傳遞。在同一時刻,這些功能單元能夠并行地執行多條指令。TMS320C6201對任何指令的操作都能分為幾個子操作,每個子操作由不同單元完成。對每個單元來說,每個時鐘周期可進入一條新指令,這樣在不同周期內,不同單元可以處理不同的指令,這種工作方式稱?quot;流水線工作方式。TMS320C6201的特殊結構,可使8條指令同時通過流水線的每個節拍,從而大大提高了機器的吞吐量。

        本文引用地址:http://www.104case.com/article/269682.htm

          為使代碼達到最大效率,程序將盡可能將指令安排為并行執行。為使指令并行操作,程序確定指令間的相關性,即一條指令必須發生在另一條指令之后。根據TMS320C6201的數據通路和流水線工作方式,在此給出一種高效實現16點Radix4FFT的方法。其基本思想是分解傳統的FFT蝶型算法循環體,將其分別展開在A、B通路內計算兩個FFT蝶型算法。每個蝶型算法分別只分配自己這一側的寄存器組和功能單元。這樣在循環體內兩個蝶型算法是完全不相關的,能夠并行執行。下面給出基于C.S.Burrus和T.W.Parks的Radix4FFT算法的優化算法的代碼實現。

          void radix4(int n,short x[], short w[])

          {

          int n1,n2,ie,wa1,wa2,wa3, wb1, wb2,wb3,ia0,ia1,ia2,ia3,ib0,ib1,ib2,ib3,j,k;

          short ta,tb,ra1,ra2, rb1,rb2,sa1,sa2,sb1,sb2,coa1,coa2,coa3,cob1,cob2,cob3,sia1,sia2,sia3,sib1,sib2,sib3;

          n2=n;

          ie=1;

          for(k=n;k>1;k>>=2)

          { //number of stage

          n1=n2;

          n2>>=2; // distance between input datas

          wa1=0;

          for(j=0;j

          wb1=wa1+ie;

          wa2=wa1+wa1;

          wb2=wb1+wb1; //since heremost of the folow-ering two instructions are parallel

          wa3=wa2+wa1;

          wb3=wb2+wb1;

          coa1=w[wa1*2+1];

          cob1=w[wb1*2+1];

          sia1=w[wa1*2];

          sib1=w[wb1*2];

          coa2=w[wa2*2+1];

          cob2=w[wb2*2+1];

          sia2=w[wa2*2];

          sib2=w[wb2*2];

          coa3=w[wa3*2+1];

          cob3=w[wb3*2+1];

          sia3=w[wa3*2];

          sib3=w[wb3*2];

          wa1=wb1+ie;

          for(ia0=j,ib0=j+1;ia0

          {//loop of two butterflies caculation

          ia1=ia0+n2;

          ib1=ib0+n2;

          ia2=ia1+n2;

          ib2=ib1+n2;

          ia3=ia2+n2;

          ib3=ib2+n2;

          ra1=x[2*ia0]+x[2*ia2];

          rb1=x[2*ib0]+x[2*ib2];

          ra1=x[2*ia0]-x[2*ia2];

          rb1=x[2*ib0]-x[2*ib2];

          ta=x[2*ia1]+x[2*ia3];

          tb=x[2*ib1]+x[2*ib3];

          x[2*ia0]=ra1+ta; // x[2*ia0]

          x[2*ib0]=rb1+tb; // x[2*ia0]

          ra1=ra1-ta;

          rb1=rb1-tb;

          sa1=x[2*ia0+1]+x[2*ia2+1];

          sb1=x[2*ib0+1]+x[2*ib2+1];

          sa2=x[2*ia0+1]-x[2*ia2+1];

          sb2=x[2*ib0+1]-x[2*ib2+1];

          ta=x[2*ia1+1]+x[2*ia3+1];

          tb=x[2*ib1+1]+x[2*ib3+1];

          x[2*ia0+1]=sa1+ta;

          x[2*ib0+1]=sb1+tb;

          sa1=sa1-ta;

          sb1=sb1-tb;

          x[2*ia2]=(ra1*coa2+sa1*sia2)>>15;

          x[2*ib2]=(rb1*cob2+sb2*sib2)>>15;

          x[2*ia2+1]=(sa1*coa2-ra1*sia2)>>15;

          x[2*ib2+1]=(sb1*cob2-rb1*sib2)>>15;

          ta=x[2*ia1+1]-x[2*ia3+1];

          ra1=ra2+ta;

          rb1=rb2+tb;

          ra2=ra2-ta;

          rb2=rb2-tb;

          ta=x[2*ia1]-x[2*ia3];

          tb=x[2*ib1]-x[2*ib3];

          sa1=sa2-ta;

          sb1=sb2-tb;

          sa2=sa2+ta;

          sb2=sb2+tb;

          x[2*ia1]=(ra1*coa1+sa1*sia1) >>15;

          x[2*ib1]=(rb1*cob1+sb1*sib1) >>15;

          x[2*ia1+1]=(sa1*coa1-ra1*sia1)>>15;

          x[2*ib1+1]=(sb1*cob1-rb1*sib1)>>15;

          x[2*ia3]=(ra2*coa3+sa2*sia3) >>15;

          x[2*ib3]=(rb2*cob3+sb2*sib3) >>15;

          x[2*ia3+1]=(sa2*coa3-ra2*sia3)>>15;

          x[2*ib3+1]=(sb2*cob3-rb2*sib3)>>15;

          }

          }

          ie <<=2

          }

          }

        模數轉換器相關文章:模數轉換器工作原理


        分頻器相關文章:分頻器原理

        上一頁 1 2 下一頁

        關鍵詞: DSP OFDM 調制解調器

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 屏南县| 仲巴县| 湟中县| 沽源县| 天镇县| 鹤峰县| 犍为县| 永济市| 甘南县| 甘肃省| 和政县| 维西| 游戏| 崇信县| 石楼县| 秦皇岛市| 衡水市| 台北县| 遂溪县| 罗定市| 江西省| 尉犁县| 海丰县| 东阳市| 仁布县| 锡林浩特市| 泾阳县| 图们市| 正定县| 繁昌县| 遵义市| 晋州市| 昌乐县| 佛冈县| 南开区| 离岛区| 平乡县| 台中县| 互助| 时尚| 庆阳市|