常用数字信号的产生(C实现)-ARMA模型数据生成
ARMA模型属于信号现代谱估计的范畴,AR模型常用于信号的线性预测。AR模型最后归结为线性方程,MA最后为非线性方程,因此,AR模型使用较多。
AR模型最后归结为解Yule-Walker方程,对应矩阵为Toeplitz矩阵,存在Levinson快速算法,这将在后面介绍,这里介绍使用C编写的ARMA模型程序。
一、公式简介

/*****************************************
**********ARMA(p,q)***********************
a:自回归系数
b:滑动平均系数
p:自回归阶数
q:滑动平均阶数
mean:gauss白均值
sigma:gauss白方差
seed:随机数种子
x:存放ARMA(p,q)产生的数据
n:ARMA(p,q)产生的数据长度
******************************************/
void arma(const double* a,const double* b,int p,int q,double mean,double sigma,long int* seed,double* x,int n)
{
int i,k,m;
double s,*w; w = (double*)malloc(n * sizeof(double));
for(k=0;k<n;k++)
w[k] = gauss(mean,sigma,seed);
x[0] = b[0] * w[0];
for(k=1;k<=p;k++)
{
s = 0.0;
for(i=1;i<=k;i++)
s += a[i] * x[k-i];
s = b[0] * w[k] - s;
if(0 == q)
{
x[k] = s;
continue;
}
m = (k > q) ? q : k;
for(i=1;i<=m;i++)
s += b[i] * w[k-i];
x[k] = s;
}
for(k = (p+1);k<n;k++)
{
s = 0.0;
for(i=1;i<=p;i++)
s += a[i] * x[k-i];
s = b[0] * w[k] - s;
if(0 == q)
{
x[k] = s;
continue;
}
for(i=1;i<=q;i++)
s += b[i] * w[k-i];
x[k] = s;
}
free(w);
}
完整代码参考:https://github.com/HeYingnan/dsp
常用数字信号的产生(C实现)-ARMA模型数据生成的更多相关文章
- [WebGL入门]十二,模型数据和顶点属性
注:文章译自http://wgld.org/,原作者杉本雅広(doxas),文章中假设有我的额外说明,我会加上[lufy:].另外.鄙人webgl研究还不够深入,一些专业词语.假设翻译有误.欢迎大家指 ...
- 计量经济与时间序列_关于Box-Jenkins的ARMA模型的经济学意义(重要思路)
1 很多人已经了解到AR(1)这种最简单的时间序列模型,ARMA模型包括AR模型和MA模型两个部分,这里要详细介绍Box-Jenkins模型的观念(有些资料中把ARMA模型叫做Box-Jenkins模 ...
- 第三百节,python操作redis缓存-其他常用操作,用于操作redis里的数据name,不论什么数据类型
python操作redis缓存-其他常用操作,用于操作redis里的数据name,不论什么数据类型 delete(*names)根据删除redis中的任意数据类型 #!/usr/bin/env pyt ...
- Spring MVC 处理模型数据(@ModelAttribute)
SpringMVC中的模型数据是非常重要的,因为MVC中的控制(C)请求处理业务逻辑来生成数据模型(M),而视图(V)就是为了渲染数据模型的数据. 直白来讲,上面这句话的意思就是:当有一个查询的请求, ...
- SpringMvc:处理模型数据
SpringMvc提供了以下途径输出模型数据: -ModelAndView:处理方法返回值类型为ModelAndView,方法体即可通过该对象添加模型数据 -Map或Model:入参为org.spri ...
- 5、处理模型数据ModelAndView、Map、Model以及@SessionAttributes注解
Spring MVC提供了以下几种途径输出模型数据 —— ModelAndView: 处理方法返回值类型为ModelAndView时,方法体即可通过该对象添加模型数据.数据会添加到request域中. ...
- springmvc学习(五)——处理模型数据
Spring MVC 提供了以下几种途径输出模型数据: ModelAndView: 处理方法返回值类型为 ModelAndView 时, 方法体即可通过该对象添加模型数据Map 及 Model: 入参 ...
- Asp.Net MVC4.0 官方教程 入门指南之五--控制器访问模型数据
Asp.Net MVC4.0 官方教程 入门指南之五--控制器访问模型数据 在这一节中,你将新创建一个新的 MoviesController类,并编写代码,实现获取影片数据和使用视图模板在浏览器中展现 ...
- springMVC(6)---处理模型数据
springMVC(6)---处理模型数据 之前一篇博客,写个怎么获取前段数据:springMVC(2)---获取前段数据,这篇文章写怎么从后端往前端传入数据. 模型数据类型 ...
随机推荐
- C# 轻松读取、改变文件的创建、修改、访问时间 z
// 读取文件的创建.修改.访问时间FileInfo fi = new FileInfo("C://test.txt");Console.WriteLine(fi.Creation ...
- JAVA利用jxl读取Excel内容
JAVA可以利用jxl简单快速的读取文件的内容,但是由于版本限制,只能读取97-03 xls格式的Excel. import java.io.File; import java.io.FileInp ...
- Orchard Core 文档翻译 (四)CMS ModulesTitle (OrchardCore.Title)
Title (OrchardCore.Title) 标题模块提供Title Part ,允许用户定义内容项的标题.它还定义了ContentItemMetadata方面的DisplayText属性 Th ...
- 我对git 、github的初印象
前言:都说,要在IT这行混得风生水起,就必须不断接触新事物.学习新东西.然而,这个重要的点也是难做的点.当老师要我们用博客交作业的时候,我就觉得挺新鲜了,在知道很多牛逼的程序猿还会用到git和gith ...
- *Amazon problem: 234. Palindrome Linked List (reverse the linked list with n time)
Given a singly linked list, determine if it is a palindrome. Example 1: Input: 1->2 Output: false ...
- CRUD全栈式编程架构之服务层的设计
服务层代码 首先我先放出2个主要类的代码再分别讲解 接口 using System; using System.Collections.Generic; using System.Linq; usin ...
- 【洛谷P1169】[ZJOI2007]棋盘制作
棋盘制作 题目链接 这个题是[USACO5.3]巨大的牛棚Big Barn和玉蟾宫的结合 一道顶两道毒瘤! 题解: 首先,棋盘有两种选法: 1.任意白格(x,y) (x+y)%2=0 ,任意黑格(x, ...
- 写到 HTML 文档
<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content=&q ...
- Python使用dict和set
dict Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也成为map,使用键-值(key-value)存储,具有极快的查找速度. 假设要根据同学的名字查找对应的 ...
- linux下ssh/sftp配置和权限设置
基于 ssh 的 sftp 服务相比 ftp 有更好的安全性(非明文帐号密码传输)和方便的权限管理(限制用户的活动目录). 1.开通 sftp 帐号,使用户只能 sftp 操作文件, 而不能 ssh ...