SP++使用指南

      自SP++(Signal Processing in C++)發表以來,獲得了網友的大力支持,許多網友經過博客、QQ和Email提出了不少有意義的意見與建議,本人不勝感激。這給我注入了很大的動力,通過一個多月的努力,改正了其中的一些Bug,調整了某些不足之下。現將新版本的SP++(即SP++1.0)發表於本站。ios

      注1:爲了節省資源,方便網友查尋,將新的程序覆蓋了舊的程序,建議使用舊程序的朋友改用新程序。web

         注2:這是一個庫函數,涉及到一些文件包含,爲了不重複(尤爲是一些低層的類,好比Vector和Matrix等),沒有將某一算法中用到的全部文件都貼在該算法中,有些頭文件在其它算法中,讀者能夠經過博客中提供的搜索功能進行查找。算法

 

下載安裝包的使用方法以下:函數

一,SP++壓縮包解壓到某一路徑下,如D:\Program Files\SP++spa

二,打開CodeBlocks,在Settings->Compler and Debugger對話框中選中Search directories選項,在Compiler中加入D:\Program Files\SP++\include,以下圖所示:code

三,同第二步,在Linker中加入D:\Program Files\SP++\lib,以下圖所示:orm

四,Settings->Compler and Debugger對話框中選中Linker settings選項,在Link libraries中加入D:\Program Files\SP++\libfftw3f.aD:\Program Files\SP++\libfftw3.a,以下圖所示:ci

五, CodeBlocks 中創建 C++ 工程,例如SP++Test,代碼以下:資源

 

/*****************************************************************************
 *                               fir_test.cpp
 *
 * FIR class testing.
 *
 * Zhang Ming, 2010-03
 *****************************************************************************/


#define BOUNDS_CHECK

#include <iostream>
#include <fir.h>


using namespace std;
using namespace itlab;


int main()
{
    string  wType = "Hamming";

//    string  fType = "lowpass";
//    double  fs = 1000,
//            fpass = 200,
//            apass = -3,
//            fstop = 300,
//            astop = -20;
//    FIR fir( fType, wType );
//    fir.setParams( fs, fpass, apass, fstop, astop );

//    string  fType = "highpass";
//    double  fs = 1000,
//            fstop = 200,
//            astop = -20,
//            fpass = 300,
//            apass = -3;
//    FIR fir( fType, wType );
//    fir.setParams( fs, fstop, astop, fpass, apass );

//    string  fType = "bandpass";
//    double  fs = 1000,
//            fstop1 = 100,
//            astop1 = -20,
//            fpass1 = 200,
//            fpass2 = 300,
//            apass1 = -3,
//            fstop2 = 400,
//            astop2 = -20;
//    FIR fir( fType, wType );
//    fir.setParams( fs, fstop1, astop1, fpass1, fpass2, apass1, fstop2, astop2 );

    string  fType = "bandstop";
    double  fs = 1000,
            fpass1 = 100,
            apass1 = -3,
            fstop1 = 200,
            fstop2 = 300,
            astop1 = -20,
            fpass2 = 400,
            apass2 = -3;
    FIR fir( fType, wType );
    fir.setParams( fs, fpass1, apass1, fstop1, fstop2, astop1, fpass2, apass2 );

    fir.design();
    fir.dispInfo();

    cout << endl;
    return 0;
}

運行結果以下:博客

相關文章
相關標籤/搜索