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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6955|回復: 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 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏4 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
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還沒學透,學好再來學濾波方面的
回復

使用道具 舉報

5#
ID:209315 發表于 2018-8-14 14:05 | 只看該作者
alai318 發表于 2018-8-12 12:36
剛學了FFT基2算法,FFT還沒學透,學好再來學濾波方面的

老哥厲害了
回復

使用道具 舉報

6#
ID:216962 發表于 2018-8-14 14:16 | 只看該作者
謝謝分享,論壇有您更精彩!
回復

使用道具 舉報

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

使用道具 舉報

8#
ID:392405 發表于 2019-7-27 10:49 | 只看該作者
感謝樓主分享
回復

使用道具 舉報

9#
ID:276779 發表于 2019-10-22 17:59 | 只看該作者
看一下正需要呢
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: aa级毛片毛片免费观看久 | 欧美性猛交一区二区三区精品 | 亚洲精品www久久久久久广东 | 一级片免费视频 | 三级在线视频 | 欧日韩不卡在线视频 | 免费视频一区二区 | 久久久91| 老司机免费视频 | 一本色道精品久久一区二区三区 | 天天av网| 欧洲精品码一区二区三区免费看 | 国内激情av片 | 欧美男人天堂 | 狠狠操狠狠干 | 精品美女视频在线观看免费软件 | 夜夜干夜夜操 | 九九在线视频 | 精品一区二区视频 | 亚洲97 | 欧美日韩综合 | 亚洲国产成人精 | 亚洲成人999 | 中文字幕一区二区三区四区五区 | 亚洲国产18| 夜夜夜操 | 天堂一区二区三区 | 午夜激情视频 | av毛片在线免费观看 | 91久久夜色 | 久久国产欧美日韩精品 | 韩国久久 | 日韩电影免费在线观看中文字幕 | 精品av | 日韩国产欧美一区 | 在线日韩| 国产成人午夜精品影院游乐网 | 1000部精品久久久久久久久 | 久久夜视频 | 亚洲精品久久久一区二区三区 | 九九综合|