正弦内插值算法c语言,正弦内插算法.c
#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相关推荐
- matlab实现正弦内插算法(低通滤波)
一. 正弦内插概述 正弦内插算法,实质是对抽样信号的还原,利用低通滤波器的时域曲线对离散信号进行插值. 根据奈奎斯特定律,抽样频率大于原始信号的最大频率的两倍以上,则可以依据抽样后信号成功还原原始信号 ...
- 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 ...
- 基于黄金正弦与自适应融合的蜉蝣优化算法
文章目录 一.理论基础 1.蜉蝣优化算法 2.蜉蝣优化算法的改进 (1)自适应的惯性权重因子 (2)融合Lévy飞行策略的蜉蝣算法 (3)黄金正弦分割因子的MOA (4)GS-GLMOA算法流程图 二 ...
- 在c语言求30角的正弦值,第1课时 正弦及30°角的正弦值
第4章 锐角三角函数 4.1 正弦和余弦 第1课时 正弦及30°角的正弦值 1.通过具体实例,分析.比较后,知道"当直角三角形的锐角固定时,它的对边与斜边的比值也固定"的事实. 2 ...
- 教你一步一步用C语言实现sift算法、上
原文:http://blog.csdn.net/v_july_v/article/details/6245939 引言: 在我写的关于sift算法的前倆篇文章里头,已经对sift算法有了初步的 ...
- 动图图解C语言选择排序算法,含代码分析
C语言文章更新目录 C语言学习资源汇总,史上最全面总结,没有之一 C/C++学习资源(百度云盘链接) 计算机二级资料(过级专用) C语言学习路线(从入门到实战) 编写C语言程序的7个步骤和编程机制 C ...
- C语言基础-基本算法
C语言基础-基本算法 在之前的两篇文章中介绍了C语言的入门程序入门程序1,入门程序2,从这篇文章我们就开始介绍C语言基础. 今天来给大家介绍算法的特性和算法的表示. 算法的基本特性 算法包含两方面的内 ...
- 图像缩放的双线性内插值算法的原理解析
转自:http://blog.csdn.net/qiqi5521/article/details/2207562 图像的缩放很好理解,就是图像的放大和缩小.传统的绘画工具中,有一种叫做"放大 ...
- C语言实现寻找极值点,九之再续:教你一步一步用c语言实现sift算法、上
教你一步一步用c语言实现sift算法.上 作者:July.二零一一年三月十二日 出处:http://blog.csdn.net/v_JULY_v 参考:Rob Hess维护的sift 库 环境:win ...
最新文章
- sqlmap 连接mysql_sqlmap连接Mysql实现getshell | CN-SEC 中文网
- TensorFlow中的Fashion MNIST图像识别实战
- 南开大学2014年高等代数部分试题解答
- TortoiseGit git push提示fatal: HttpRequestException encountered remote: Invalid username or password.
- python 视频转场_视频剪辑什么鬼?Python 带你高效创作短视频
- python re findall 效率_python re模块findall()详解
- pycharm无缘无故打开Nosetest
- IBM 340亿美元收购红帽,开源史上最大交易!
- Android 系统(230)---OTA 软件包工具
- https防止注入_【缺陷周话】第40期:JSON 注入
- 无线传感网1-简单介绍
- Keras深度学习实战(2)——使用Keras构建神经网络
- ubuntu无法安装软件问题解决
- 【Webex】加入会议是无法正常加入!提示“下载会议组件时无法获取正确的参数。 请联系技术支持以获取帮助。...
- python爬微博数据合法吗_爬取新浪微博数据(python)
- 使用BootStrap制作网页页面
- Centos 7.6 挂载硬盘
- 软件测试 | 测试方案怎么写
- HashTable 使用
- SISR深度学习主要方法简述
热门文章
- Dlib android 人脸识别,Dlib 人脸识别
- sps pps AudioSpecificConfig
- winform中listview选中整行_Winform如何获取ListView选中行数据
- SparkSQL之DataFrame 编程(创建DataFrame ,DataFrame数据运算操作 ,输出存储DataFrame)(11)
- JavaScript正则表达式 RegExp验证手机号码
- VMware 代理上网
- python二维数组变成三维数组_Python reshape的用法及多个二维数组合并为三维数组的实例...
- 获取魅族底部smartbar的高度
- Android快速入门 四大应用组件之一Activity(打电话和发短信)功能练习
- 激光雷达建图之cartographer建图