#define pi 3.141593

#define f 3 //原正弦波频率

#define cx pi/3 //原正弦波初相,每次采样的时候是随机的

double out[10000]; //存插值后各点值用的,大点好

double in[10000]; //采样值缓存,大点好

//使用Kaiser窗截断,并使用参数9

//num:采样点数

//insert_num:每2个采样点插入的点数

//T:周期数

//start_phase:生成的正弦波的起始相位

//a:生成正弦波的a系数

//b:生成正弦波的b系数

void test_sinc(int sample_num, int insert_num, double T, double start_phase, double a, double b)

{

insert_num ++;

for(int m = 0;m < sample_num;m++){//采样

in[m] = a*sin( (2*pi*m*T)/(sample_num) + start_phase) + b;

}

for(int u = 0, i =0;u< sample_num;u++){

out[i++] = in[u];

for(int k = 1;k < insert_num;k++){

double sum = 0;

double t = (double)u + (double)k/((double)insert_num);

for(int m = 0;m < sample_num;m++){

double tmp = pi*(t -(double)m);

sum += in[m]*sin(tmp)/tmp;

}

out[i++] = sum;

}

}

}

//生成hn系数数组的算法,len是数组总长度,insert_num是插入点数

void SincHn(double *data, int len, int insert_num)

{

int end = len /2;

const int start = -end;

if(len%2 != 0)

end++;

insert_num ++;

for(int i = start; i < end; i++){

if(i == 0){

*data++ = 1;

continue;

}

double tmp = pi * (double)i/ (double)insert_num;

*data++ = sin(tmp)/tmp;

}

}

unsigned long Fact(unsigned long k)

{

unsigned long sum = 1;

for(unsigned long i = 1; i <= k; i++)

sum *= i;

return sum;

}

double besseli_0(double x, int len)

{

double sum = 0;

for(int i = 0; i < len; i++){

sum += std::pow(-1, i) * std::pow(x/2, 2*i)/(Fact((unsigned long)i) * Fact((unsigned long)i+1));

}

return sum;

}

void Kaiser(double *data, int N, double beta)

{

double theta;

for( int n = 0; n < N; n++){

theta = beta * std::sqrt( 1 - std::pow( ( (2 * (double)n/(N -1)) - 1),2 ) );

double res = besseli_0(theta, 10) / besseli_0(beta, 10);

if(res < 0)

res = 0;

*data++ = res;

}

}

一键复制

编辑

Web IDE

原始数据

按行查看

历史

正弦内插值算法c语言,正弦内插算法.c相关推荐

  1. matlab实现正弦内插算法(低通滤波)

    一. 正弦内插概述 正弦内插算法,实质是对抽样信号的还原,利用低通滤波器的时域曲线对离散信号进行插值. 根据奈奎斯特定律,抽样频率大于原始信号的最大频率的两倍以上,则可以依据抽样后信号成功还原原始信号 ...

  2. Atitit.跨语言 java c#.net php js常用的codec encode算法api 兼容性  应该内置到语言里面...

    Atitit.跨语言 java c#.net php js常用的codec encode算法api 兼容性  应该内置到语言里面 1. 常用算法1 1.1. 目录2 1.2. 定义和用法编辑2 1.3 ...

  3. 基于黄金正弦与自适应融合的蜉蝣优化算法

    文章目录 一.理论基础 1.蜉蝣优化算法 2.蜉蝣优化算法的改进 (1)自适应的惯性权重因子 (2)融合Lévy飞行策略的蜉蝣算法 (3)黄金正弦分割因子的MOA (4)GS-GLMOA算法流程图 二 ...

  4. 在c语言求30角的正弦值,第1课时 正弦及30°角的正弦值

    第4章 锐角三角函数 4.1 正弦和余弦 第1课时 正弦及30°角的正弦值 1.通过具体实例,分析.比较后,知道"当直角三角形的锐角固定时,它的对边与斜边的比值也固定"的事实. 2 ...

  5. 教你一步一步用C语言实现sift算法、上

    原文:http://blog.csdn.net/v_july_v/article/details/6245939 引言:     在我写的关于sift算法的前倆篇文章里头,已经对sift算法有了初步的 ...

  6. 动图图解C语言选择排序算法,含代码分析

    C语言文章更新目录 C语言学习资源汇总,史上最全面总结,没有之一 C/C++学习资源(百度云盘链接) 计算机二级资料(过级专用) C语言学习路线(从入门到实战) 编写C语言程序的7个步骤和编程机制 C ...

  7. C语言基础-基本算法

    C语言基础-基本算法 在之前的两篇文章中介绍了C语言的入门程序入门程序1,入门程序2,从这篇文章我们就开始介绍C语言基础. 今天来给大家介绍算法的特性和算法的表示. 算法的基本特性 算法包含两方面的内 ...

  8. 图像缩放的双线性内插值算法的原理解析

    转自:http://blog.csdn.net/qiqi5521/article/details/2207562 图像的缩放很好理解,就是图像的放大和缩小.传统的绘画工具中,有一种叫做"放大 ...

  9. C语言实现寻找极值点,九之再续:教你一步一步用c语言实现sift算法、上

    教你一步一步用c语言实现sift算法.上 作者:July.二零一一年三月十二日 出处:http://blog.csdn.net/v_JULY_v 参考:Rob Hess维护的sift 库 环境:win ...

最新文章

  1. sqlmap 连接mysql_sqlmap连接Mysql实现getshell | CN-SEC 中文网
  2. TensorFlow中的Fashion MNIST图像识别实战
  3. 南开大学2014年高等代数部分试题解答
  4. TortoiseGit git push提示fatal: HttpRequestException encountered remote: Invalid username or password.
  5. python 视频转场_视频剪辑什么鬼?Python 带你高效创作短视频
  6. python re findall 效率_python re模块findall()详解
  7. pycharm无缘无故打开Nosetest
  8. IBM 340亿美元收购红帽,开源史上最大交易!
  9. Android 系统(230)---OTA 软件包工具
  10. https防止注入_【缺陷周话】第40期:JSON 注入
  11. 无线传感网1-简单介绍
  12. Keras深度学习实战(2)——使用Keras构建神经网络
  13. ubuntu无法安装软件问题解决
  14. 【Webex】加入会议是无法正常加入!提示“下载会议组件时无法获取正确的参数。 请联系技术支持以获取帮助。...
  15. python爬微博数据合法吗_爬取新浪微博数据(python)
  16. 使用BootStrap制作网页页面
  17. Centos 7.6 挂载硬盘
  18. 软件测试 | 测试方案怎么写
  19. HashTable 使用
  20. SISR深度学习主要方法简述

热门文章

  1. Dlib android 人脸识别,Dlib 人脸识别
  2. sps pps AudioSpecificConfig
  3. winform中listview选中整行_Winform如何获取ListView选中行数据
  4. SparkSQL之DataFrame 编程(创建DataFrame ,DataFrame数据运算操作 ,输出存储DataFrame)(11)
  5. JavaScript正则表达式 RegExp验证手机号码
  6. VMware 代理上网
  7. python二维数组变成三维数组_Python reshape的用法及多个二维数组合并为三维数组的实例...
  8. 获取魅族底部smartbar的高度
  9. Android快速入门 四大应用组件之一Activity(打电话和发短信)功能练习
  10. 激光雷达建图之cartographer建图