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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 7079|回復: 8
收起左側

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

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

單片機源程序如下:
  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.         //請在printf前設置斷點,以便停止運行 查看輸出結果        否則,看不到輸出
  94.         printf("請選擇測試類型:1、沖擊測試 2、正弦測試 3、方波測試\n");
  95.         scanf("%d",&Test_type);       
  96.                                
  97.         }
  98.        
  99.         while(1);

  100. }
復制代碼

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


評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:95821 發表于 2018-8-10 11:55 | 顯示全部樓層
學習了,正是在找的
回復

使用道具 舉報

ID:209315 發表于 2018-8-10 16:14 | 顯示全部樓層
alai318 發表于 2018-8-10 11:55
學習了,正是在找的

努力加油
回復

使用道具 舉報

ID:95821 發表于 2018-8-12 12:36 | 顯示全部樓層
剛學了FFT基2算法,FFT還沒學透,學好再來學濾波方面的
回復

使用道具 舉報

ID:209315 發表于 2018-8-14 14:05 | 顯示全部樓層
alai318 發表于 2018-8-12 12:36
剛學了FFT基2算法,FFT還沒學透,學好再來學濾波方面的

老哥厲害了
回復

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产免费观看视频 | 国产一区福利 | 亚洲激情一区二区 | 中文字幕1区 | 亚洲va国产va天堂va久久 | 伊人国产在线 | 日韩av一二三区 | 色婷婷免费视频 | 成人免费网站 | 成年人午夜视频 | 成人女同在线观看 | 红桃av在线 | 青青久久久 | 国产精品亚洲精品 | 亚洲 欧美 激情 另类 校园 | 欧美一区二区免费 | 婷婷狠狠 | 91插插插插插 | 日韩av手机在线 | 超碰成人在线观看 | 日韩国产一区二区三区 | 国产精品自拍小视频 | 一区二区国产精品 | 国产超碰人人模人人爽人人添 | 亚洲国产毛片 | 午夜激情福利视频 | 91欧美日韩 | 成人免费毛片aaaaaa片 | 国产一区在线视频 | 久久手机免费视频 | 国产精品国产三级国产专区52 | 国产免费一区 | 欧美日韩在线观看一区二区 | 欧美日韩精品 | 最新日韩在线 | 中文字幕视频在线 | 欧美日韩精品一区二区在线播放 | 欧美不卡一区二区三区 | 日韩精品第一页 | 午夜精品久久久久久久99 | 操少妇视频|