久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

DSP C語言的IIR濾波器程序源碼

  [復(fù)制鏈接]
ID:209315 發(fā)表于 2018-8-8 16:32 | 顯示全部樓層 |閱讀模式
分享個(gè)DSP C語言的IIR濾波器

單片機(jī)源程序如下:
  1. #include <math.h>
  2. #include <stdio.h>
  3. #include "fdacoefs.h"

  4. //*********************************************
  5. //fs=1000000,fpass=10000,fstop=50000(-80db)
  6. //butterworth iir-df1
  7. //*********************************************
  8. #define fs 1000000
  9. #define f1 4000//測試正弦頻率1
  10. #define f2 50000//測試正弦頻率2
  11. #define f_rec 5000//測試方波頻率

  12. #define Impulse 1
  13. #define Sine    2
  14. #define Rect    3

  15. #define pi 3.1415926

  16. #define STG_NUM (MWSPT_NSEC-1)/2
  17. #define DAT_NUM 800


  18. float IIR_out[DAT_NUM];


  19. float input_step[STG_NUM+1][3];// n; n-1; n-2

  20. void iir_filter_init(float *ptr,int num)
  21. {
  22.     int i;       
  23.         for(i=0;i<num;i++)
  24.         {
  25.                 *ptr++=0;
  26.         }
  27.        
  28. }

  29. float iir_filter(float in)
  30. {
  31.       
  32.       int i;
  33.           float temp;
  34.      
  35.       input_step[0][0] = in;
  36.       for(i=0;i<STG_NUM;i++)
  37.       {
  38.                 
  39.           temp =NUM[i*2][0]*(input_step[i][0]*NUM[i*2+1][0]+input_step[i][1]*NUM[i*2+1][1]+input_step[i][2]*NUM[i*2+1][2])-
  40.                                             input_step[i+1][1]*DEN[i*2+1][1]-input_step[i+1][2]*DEN[i*2+1][2];
  41.                                             
  42.           temp *= DEN[i*2+1][0];
  43.          
  44.           input_step[i][2]=input_step[i][1];             
  45.                 input_step[i][1]=input_step[i][0];                           
  46.           input_step[i+1][0]=temp;
  47.          
  48.       
  49.       }
  50.                                          
  51.       return  temp*NUM[MWSPT_NSEC-1][0];   
  52.    
  53. }

  54. float x;
  55. int main()
  56. {
  57.        
  58.         int i,Test_type;

  59.         printf("請選擇測試類型:1、沖擊測試 2、正弦測試 3、方波測試\n");
  60.         scanf("%d",&Test_type);
  61.                
  62.         while(1){
  63.                 iir_filter_init(input_step[0],sizeof(input_step)/sizeof(input_step[0][0]));
  64.                        
  65.                 switch(Test_type)
  66.                 {
  67.                         case Rect://方波輸入
  68.                                 for(i=0;i<DAT_NUM;i++)
  69.                                 {                               
  70.                                         if(((2*f_rec*i/fs)%2)==0)
  71.                                                 x=5000;
  72.                                         else
  73.                                                 x=-5000;                                                               
  74.                                         IIR_out[i]=iir_filter(x);                                                                                                                                       
  75.                                 }               
  76.                         break;
  77.                        
  78.                         case Impulse://沖激輸入
  79.                                 IIR_out[0]=iir_filter(5000);
  80.                                 for(i=1;i<DAT_NUM;i++)                                                               
  81.                                         IIR_out[i]=iir_filter(0);                                                                                                                                                       
  82.                         break;
  83.                        
  84.                         case Sine://正弦輸入                       
  85.                                 for(i=0;i<DAT_NUM;i++)
  86.                                 {
  87.                                         //***************************************************************
  88.                                         x=500*(cos(2*pi*f1*i/fs)+cos(2*pi*f2*i/fs)); //正弦測試                                                                                       
  89.                                         IIR_out[i]=iir_filter(x);                                                                                                                                       
  90.                                 }                       
  91.                         break;       
  92.                 }
  93.         //請?jiān)趐rintf前設(shè)置斷點(diǎn),以便停止運(yùn)行 查看輸出結(jié)果        否則,看不到輸出
  94.         printf("請選擇測試類型:1、沖擊測試 2、正弦測試 3、方波測試\n");
  95.         scanf("%d",&Test_type);       
  96.                                
  97.         }
  98.        
  99.         while(1);

  100. }
復(fù)制代碼

所有資料51hei提供下載:
IIR.7z (23.26 KB, 下載次數(shù): 78)


評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評分

回復(fù)

使用道具 舉報(bào)

ID:95821 發(fā)表于 2018-8-10 11:55 | 顯示全部樓層
學(xué)習(xí)了,正是在找的
回復(fù)

使用道具 舉報(bào)

ID:209315 發(fā)表于 2018-8-10 16:14 | 顯示全部樓層
alai318 發(fā)表于 2018-8-10 11:55
學(xué)習(xí)了,正是在找的

努力加油
回復(fù)

使用道具 舉報(bào)

ID:95821 發(fā)表于 2018-8-12 12:36 | 顯示全部樓層
剛學(xué)了FFT基2算法,F(xiàn)FT還沒學(xué)透,學(xué)好再來學(xué)濾波方面的
回復(fù)

使用道具 舉報(bào)

ID:209315 發(fā)表于 2018-8-14 14:05 | 顯示全部樓層
alai318 發(fā)表于 2018-8-12 12:36
剛學(xué)了FFT基2算法,F(xiàn)FT還沒學(xué)透,學(xué)好再來學(xué)濾波方面的

老哥厲害了
回復(fù)

使用道具 舉報(bào)

ID:216962 發(fā)表于 2018-8-14 14:16 | 顯示全部樓層
謝謝分享,論壇有您更精彩!
回復(fù)

使用道具 舉報(bào)

ID:424128 發(fā)表于 2018-11-10 18:29 | 顯示全部樓層
老哥,這個(gè)程序適合用于DSP C54x做IIR濾波器的實(shí)物嗎,就是IIR數(shù)字濾波器的MATLAB仿真及DSP實(shí)現(xiàn)這種畢業(yè)設(shè)計(jì)題,能做出實(shí)物不?
回復(fù)

使用道具 舉報(bào)

ID:392405 發(fā)表于 2019-7-27 10:49 | 顯示全部樓層
感謝樓主分享
回復(fù)

使用道具 舉報(bào)

ID:276779 發(fā)表于 2019-10-22 17:59 | 顯示全部樓層
看一下正需要呢
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 精品一区二区三区电影 | 中文字幕亚洲视频 | 精品一区二区久久久久久久网站 | 国产精品亚洲一区二区三区在线 | 国产成人精品免费视频大全最热 | 欧美一级在线 | 午夜tv免费观看 | 国产伦精品一区二区三区照片91 | 拍戏被cao翻了h承欢 | 999热精品视频 | 中文字幕中文字幕 | 日韩欧美精品 | 91精品久久久 | 日韩欧美中文 | 成人高清视频在线观看 | 亚洲一区二区精品视频 | 亚洲成人精品久久 | 久久一级大片 | 久久久久久久久91 | 九九热免费在线观看 | 国产精品久久久久久吹潮 | 国产不卡一区 | 中文字幕日韩欧美一区二区三区 | 亚洲精品一区二区在线观看 | 亚洲人成在线播放 | 精品免费国产视频 | 四虎成人在线播放 | 国产精品美女www | 国产女人与拘做受免费视频 | 久久99精品国产 | 色嗨嗨| 337p日本欧洲亚洲大胆鲁鲁 | 无码一区二区三区视频 | 久久1区 | 成年人网站免费 | 亚洲日产精品 | 欧美日韩三区 | 国产精品成人在线播放 | 日韩精品免费在线 | 在线视频成人 | 一本大道久久a久久精二百 欧洲一区二区三区 |