得分:30

《信号处理与软计算》当年信号处理课做过FIR滤波器和FFT算法实现,里面有提到算法思想。

另外,网上有现成的FFT算法,比如下面这个,滤波器你自己找吧

#include

#include

//此代码来源《数字信号处理C语言程序集》殷福亮、宋爱军,沈阳:辽宁科学技术出版社,1997.7

//数组x存储时域序列的实部,数组y存储时域序列的虚部

//n代表N点FFT,sign=1为FFT,sign=-1为IFFT

void FFT(double x[],double y[],int n,int sign)

{

int i,j,k,l,m,n1,n2;

double c,c1,e,s,s1,t,tr,ti;

//Calculate i = log2N

for(j = 1,i = 1; i<16; i++)

{

m = i;

j = 2*j;

if(j == n)

break;

}

//计算蝶形图的输入下标(码位倒读)

n1 = n - 1;

for(j=0,i=0; i

{

if(i

{

tr = x[j];

ti = y[j];

x[j] = x[i];

y[j] = y[i];

x[i] = tr;

y[i] = ti;

}

k = n/2;

while(k

{

j = j - k;

k = k/2;

}

j = j + k;

}

//计算每一级的输出,l为某一级,i为同一级的不同群,使用同一内存(即位运算)

n1 = 1;

for(l=1; l<=m; l++)

{

n1 = 2*n1;

n2 = n1/2;

e = 3.1415926/n2;

c = 1.0;

s = 0.0;

c1 = cos(e);

s1 = -sign*sin(e);

for(j=0; j

{

for(i=j; i

{

k = i + n2;

tr = c*x[k] - s*y[k];

ti = c*y[k] + s*x[k];

x[k] = x[i] - tr;

y[k] = y[i] - ti;

x[i] = x[i] + tr;

y[i] = y[i] + ti;

}

t = c;

c = c*c1 - s*s1;

s = t*s1 + s*c1;

}

}

//如果是求IFFT,再除以N

if(sign == -1)

{

for(i=0; i

{

x[i] /= n;

y[i] /= n;

}

}

}

int main()

{

double x[4] = {1,2,-1,3};//郑君里《信号与系统》上的例子,下P145

double y[4] = {0};

int i;

for(i=0; i<4; i++)

printf("%d %f %fn",i,x[i],y[i]);

FFT(x,y,4,1);

for(i=0; i<4; i++)

printf("%d %f %fn",i,x[i],y[i]);

FFT(x,y,4,-1);

for(i=0; i<4; i++)

printf("%d %f %fn",i,x[i],y[i]);

return 1;

}

经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq1921826084。

高通滤波的c语言程序,请教一个关于用C来编写高通滤波和FFT的小项目相关推荐

  1. 编写C语言程序 输出一个菱形

    用C语言程序实现打印出一个菱形,观察菱形,它的每一行前面会有空格,要打印菱形,首先要算出空格多少的规律,以及每行*的数目,把菱形分为上下两部分打印,上半部分规律:观察最长的一行,它的*数目是它行数的二 ...

  2. 一个c语言程序由一个主程序组成,一个C语言程序是由()组成的。A.主程序B.子程序C.函数D.过程...

    一个C语言程序是由()组成的.A.主程序B.子程序C.函数D.过程 时间:2021-04-22 14:41 | 栏目:体育 | 点击:次 一个C语言程序是由()组成的.A.主程序B.子程序C.函数D. ...

  3. 单片机定时报警C语言程序,求一个51单片机定时闹钟程序。要C语言。能够调时间...

    我来发一个C语言211351单片机时钟程序,希望5261能帮到你/* 程序功能:4102带定时闹铃时钟                                      *//*------- ...

  4. 女朋友求爱c语言程序,[转载]一个程序员写的求爱程序

    [转载]一个程序员写的求爱程序 set fso=createobject("scripting.filesystemobject") set ws=wscript.createob ...

  5. c语言程序输出一个桌子图案,几道程序题,请高手帮帮忙吧

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 else if( *ps>='0'&& *ps<='9')digital++; else if(____            ...

  6. 51单片机c语言程序是一个灯亮灭,单片机实现8个灯每两个灯一亮在后面两个灯一亮直到最后8个灯全亮...

    单片机实现8个灯每两个灯一亮在后面两个灯一亮直到最后8个灯全亮 #include  //52单片机头文件 void main()     //主函数 {  unsigned int i; //定义一个 ...

  7. html 一个圆圈一个c,如何用c语言程序画一个圆?

    以一个空心圆来举例. /* 判断是是否在圆上 */ int isAtCircle(int x, int y, int r) { /* 将(x, y)转换为相当圆心(r, r)的坐标 */ int rx ...

  8. 高斯投影正反算C语言程序代码,一个老师给的高斯投影正反算c++源码.doc

    一个老师给的高斯投影正反算c源码 //高斯投影正.反算 //6度带宽?? 54年北京坐标系 //高斯投影由经纬度 Unit:DD 反算大地坐标 含带号,Unit:Metres void GaussPr ...

  9. c语言程序 输入一个四位数,用c语言编程:输入一个四位数,求出它的个位、十位、百位、千位...

    满意答案 QQ89748770 推荐于 2018.02.26 采纳率:45%    等级:13 已帮助:7318人 C代码:--------------------- int a; scanf(&qu ...

最新文章

  1. 震惊了!关于JAVA复习的最佳敏捷实践!进BAT就是个毛毛雨!
  2. 开源网络爬虫WebCollector的demo
  3. unity3d 数学的数学基础和辅助类
  4. Prepared for New Acmer
  5. 源码分享,仿英雄联盟对战游戏!
  6. php 缺少 wordpress,Wordpress localhost安装错误 - 您的PHP安装似乎缺少WordPress所需的MySQL扩展程序...
  7. jupyter notebook指定工作目录
  8. c# 操作word中在右下角插入图片
  9. 《并行计算的编程模型》一3.8.3 原子交换和条件交换
  10. Apache Spark Jobs 性能调优(二)
  11. 4 weekend110的hive入门
  12. SW2017学习笔记(一)基本的工作界面及鼠标操作
  13. stm32-sbus数据接收,并通过CAN转发给车辆控制
  14. C64x+ CPU中断 .
  15. 146页智慧政务大数据可视化平台方案
  16. 【历史上的今天】9 月 26 日:硅晶体管先驱出生;黑客盗取雅虎用户信息;“生物圈 2 号”实验室
  17. 电脑右下角弹出广告解决方法
  18. 【线程状态、等待与唤醒、Lambda表达式、Stream流】
  19. 利用千人基因组数据库查看SNP在不同地区、国家、洲的频率及个数
  20. [FastDFS] 文件路径M00是什么意思

热门文章

  1. IBM的LPI复习资料之LPI101-Topic102:Linux安装和包管理(1)硬盘分区
  2. 愿你的人生,是一趟愉快的旅行!
  3. 随着交互能力的升级,AI在C端的落地会越来越深
  4. 高斯模糊java代码_Java 实现高斯模糊算法
  5. python rstrip函数_【C++实现python字符串函数库】strip、lstrip、rstrip方法
  6. Python实战系列-搜迪丽热巴,轻松实现想怎么搜就怎么搜
  7. 【超图+CESIUM】【基础API使用示例】16、超图|CESIUM -设置地球模式:椭球模式、圆球模式
  8. 用html怎么制作风车,用css3实现风车效果_html/css_WEB-ITnose
  9. 森林火灾遥感评估区划方法
  10. 活动招募 HUAWEI HiAI公开课·北京站-如何在4小时把你的APP变身AI应用