1024手机基地看电影,午夜福利视频导航,国产精品福利在线一区,亚洲欧美日韩另类成人,在线观看午夜日本理论片,成年超爽免费网站,国产精品成人免费,精品动作一级毛片,成人免费观看网站,97精品伊人久久大香蕉

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1483|回復(fù): 0
收起左側(cè)

基于ICETEK–VC5509-AE實驗箱DSP算法有限沖激響應(yīng)濾波器(FIR)算法實驗

[復(fù)制鏈接]
ID:729260 發(fā)表于 2023-11-2 21:53 | 顯示全部樓層 |閱讀模式
要求:輸入波形為一個低頻率的正弦波與一個高頻的正弦波疊加,通過觀察頻域和時域圖輸入波形中的低頻波形通過了FIR濾波器,而高頻部分則大部
分被濾除。
請問:怎么修改頻率,程序中fStepSignal1=2*PI/30;

fStepSignal2=2*PI*1.4;是什么意思

單片機源程序如下:
#include "myapp.h"
#include "ICETEK-VC5509-EDU.h"
#include "scancode.h"
#include <math.h>


#define FIRNUMBER 25
#define SIGNAL1F 1000
#define SIGNAL2F 4500
#define SAMPLEF  10000
#define PI 3.1415926


float InputWave();
float FIR();


float fHn[FIRNUMBER]={ 0.0,0.0,0.001,-0.002,-0.002,0.01,-0.009,
                       -0.018,0.049,-0.02,0.11,0.28,0.64,0.28,
                       -0.11,-0.02,0.049,-0.018,-0.009,0.01,
                       -0.002,-0.002,0.001,0.0,0.0
                     };
float fXn[FIRNUMBER]={ 0.0 };
float fInput,fOutput;
float fSignal1,fSignal2;
float fStepSignal1,fStepSignal2;
float f2PI;
int i;
float fIn[256],fOut[256];
int nIn,nOut;


main()
{
        nIn=0; nOut=0;
        f2PI=2*PI;
        fSignal1=0.0;
        fSignal2=PI*0.1;
        fStepSignal1=2*PI/30;
        fStepSignal2=2*PI*1.4;
        while ( 1 )
        {
                fInput=InputWave();
                fIn[nIn]=fInput;
                nIn++; nIn%=256;
                fOutput=FIR();
                fOut[nOut]=fOutput;
                nOut++;                                /* break point */
                if ( nOut>=256 )
                {
                        nOut=0;               
                }
        }
}


float InputWave()
{
        for ( i=FIRNUMBER-1;i>0;i-- )
                fXn[ i]=fXn[i-1];
        fXn[0]=sin((double)fSignal1)+cos((double)fSignal2)/6.0;
        fSignal1+=fStepSignal1;
        if ( fSignal1>=f2PI )        fSignal1-=f2PI;
        fSignal2+=fStepSignal2;
        if ( fSignal2>=f2PI )        fSignal2-=f2PI;
        return(fXn[0]);
}


float FIR()
{
        float fSum;
        fSum=0;
        for ( i=0;i<FIRNUMBER;i++ )
        {
                fSum+=(fXn[ i]*fHn[ i]);
        }
        return(fSum);
}
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表