声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1134|回复: 1

[FFT] 新手前来报到,请大家多多指教(一个滤波器的问题)

[复制链接]
发表于 2008-11-12 19:17 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

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轴都是什么意思,这两个图反映的是什么的变化。谢谢了
  以后我会继续的把这个实验都穿上来的。

频率特性

频率特性

相位特性

相位特性
回复
分享到:

使用道具 举报

发表于 2008-11-13 12:50 | 显示全部楼层
1、|H(ω)|=20log10(2cos(ωT/2))|dB| ,表示的是滤波器的幅度响应,单位为dB,在信号处理中,用dB表示比较方便,大家都习惯这么用。
2、第一幅图表示的是滤波器的幅频特性,X轴为频率,Y轴为dB,也就是说,这幅图能够清楚地表示出该滤波器为截止频率为1000Hz的低频滤波器。第二幅图表示的是该滤波器的相位特性,该图表明,此滤波器为线性相位。
相关概念可以找数字信号处理书看一下。
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-9-22 10:38 , Processed in 0.055514 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表