| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1158 人关注过本帖
标题:数字滤波器的频率响应H(w)的c语言求解问题,带程序,看不懂什么意思
取消只看楼主 加入收藏
outgo8
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2008-4-10
收藏
 问题点数:0 回复次数:0 
数字滤波器的频率响应H(w)的c语言求解问题,带程序,看不懂什么意思
程序原理见附件三张图片(懒得打字^_^)程序代码如下,运行无误,红色部分看不懂,看了好久了,请高手帮忙解释一下好吗?
子程序:gain(b,a,m,n,x,y,len,sign)

#include "math.h"
void gain(b,a,m,n,x,y,len,sign)
int m,n,len,sign;
double b[],a[],x[],y[];
{int i,k;
    double ar,ai,br,bi,zr,zi,im,re,den,numi,numr,freq,temp;
for(k=0;k<len;k++)
    {   
        
        freq=k*0.5/(len-1);
           zr=cos(-8.0*atan(1.0)*freq);
           zi=sin(-8.0*atan(1.0)*freq);
           
           
           br=0.0;
           bi=0.0;            
           for(i=m;i>0;i--)
              {re=br;
                  im=bi;
                  br=(re+b[i])*zr-im*zi;
                  bi=(re+b[i])*zi+im*zr;
              }
           ar=0.0;
           ai=0.0;
           for(i=n;i>0;i--)
              {re=ar;
                  im=ai;
                  ar=(re+a[i])*zr-im*zi;
                  ai=(re+a[i])*zi+im*zr;             
              }  

              
              
              
            br=br+b[0];
            ar=ar+1.0;
            numr=ar*br+ai*bi;
            numi=ar*bi-ai*br;
            den=ar*ar+ai*ai;
            x[k]=numr/den;
            y[k]=numi/den;           
            switch(sign)
               {case 1:
                     {temp=sqrt(x[k]*x[k]+y[k]*y[k]);
                      y[k]=atan2(y[k],x[k]);
                      x[k]=temp;
                      break;
                     }
                case 2:
                     {temp=x[k]*x[k]+y[k]*y[k];
                         y[k]=atan2(y[k],x[k]);
                         x[k]=10.0*log10(temp);/*???????估计应该是20.0*/
                         }      
               }
              
    }
    
}

1.jpg (104.29 KB)
图片附件: 游客没有浏览图片的权限,请 登录注册


2.jpg (86.96 KB)
图片附件: 游客没有浏览图片的权限,请 登录注册


3.gif (33.21 KB)
图片附件: 游客没有浏览图片的权限,请 登录注册
搜索更多相关主题的帖子: c语言 频率响应 数字滤波器 求解 
2008-04-10 22:14
快速回复:数字滤波器的频率响应H(w)的c语言求解问题,带程序,看不懂什么意思
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.028066 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved