|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
本帖最后由 wdhd 于 2016-9-13 13:35 编辑
大家好。新手前来报到。
新进了个实验室,老师留了个实验,可是我之前没怎么接触过相关的内容,加上之前有些学的东西也都忘得差不多了。所以,拿上来请大家多多帮忙。
实验名:Digital filter 中文大概叫:数字滤波器?
通过一个程序,验证时系列数据的移动平均 (moving average )
y(n)=x(n)+x(n-1) (1)
对(1)式进行Z变换
-1
Y(Z)=X(Z)+X(Z)Z
H(Z)=1+Z-1 -1 为方根
H(w)= 1+cosωT-jsinωT
|H(w)|=2cos(ωT/2)
==〉|H(ω)|=20log10(2cos(ωT/2))|dB| 请问这个是怎么变换过来的?为什么要变成这种形式呢?
θ=-ωT/2|rad|
周期T=0.0001[S]
程序是类c 如下
#include
#include
#include
#include
#define DIS 0 //表示指定
#define T 0.0001 //周期
#define FRE 5000 //频率[Hx](1/(2T))
#define PI 3.1415926535 //
#define X 500 //X轴方向的宽
#define Y 320 //Y轴方向的高
main()
{
Display *d;
Window root,w1,w2;
GC gc1,gc2;
XSetWindowAttributes att;
int black,white;
float h[FRE/10],t[FRE/10];
d=XOpenDisplay(DIS); // 检查能否与X轴连接
if(d==NULL){
perror("Can not open Display");
exit(1);
}
att.override_redirect=True;
root=XDefaultRootWindow(d);
black=XBlackPixel(d,0);
white=XWhitePixel(d,0);
w1=XCreateSimpleWindow(d,root,0,0,650,400,2,black,white);
XChangeWindowAttributes(d,w1,CWOverrideRedirect,&att); // w1
XMapWindow(d,w1);
gc1=XCreateGC(d,w1,0,NULL);
w2=XCreateSimpleWindow(d,root,0,400,650,400,2,black,white);
XChangeWindowAttributes(d,w2,CWOverrideRedirect,&att); // w2
XMapWindow(d,w2);
gc2=XCreateGC(d,w2,0,NULL);
calc(h,t);
loggraph(d,w1,gc1,black,h,-70.0,10.0,10.0,"[dB]",1);
graph(d,w2,gc2,black,t,-3.5,0.5,0.5,"[rad]",0);
XFlush(d);
getchar();
}
/*-----------------------------------------------------*/
/*-----------------------------------------------------*/
calc(h,t)
float h[],t[];
{
int i;
double omg;
for (i=1;i<=FRE;i+=10){
omg=2.0*PI*(double)i;
h[i/10]=20.0*log10(fabs(2.0*sin(omg*T/2.0)));
t[i/10]=PI/2.0-omg*T/2.0;
}
}
/*-------------------------------------------------------*/
float db3(data)
float data[];
{
int i;
float max=0.0;
for (i=0;i
if(max
max=data;
}
return(max-3.0);
}
/*------------------------------------------------*/
出来的图像如下图
我想问的是这两个图的X轴和Y轴都是什么意思,这两个图反映的是什么的变化。谢谢了
以后我会继续的把这个实验都穿上来的。
|
-
频率特性
-
相位特性
|