C语言 低通滤波器\带通滤波器\高通滤波器

[知识交流]当信号和干扰信号同时存在时,不会发生叠加吗?要如何滤掉干扰信号?

文章发表于:2007-10-21 18:16

这是对滤波的理解有误,滤波不是指滤掉干扰信号的幅值,而是滤掉它的频率。有用信号和干扰信号的频率不同,如果干扰信号的频率高,则用一个低通滤波器滤掉干扰信号,如果信号频率高,则用一个高通滤波器滤掉干扰信号。

MATLAB:

   y(m)=-(a(2)*y(m-1)+a(3)*y(m-2)+a(4)*y(m-3)+a(5)*y(m-4)+a(6)*y(m-5)+a(7)*y(m-6)+a(8)*y(m-7)+a(9)*y(m-8))+(b(1)*x(m)+b(2)*x(m-1)+b(3)*x(m-2)+b(4)*x(m-3)+b(5)*x(m-4)+b(6)*x(m-5)+b(7)*x(m-6)+b(8)*x(m-7)+b(9)*x(m-8));

C语言
以下一个结果:通带 5Hz,1db, 阻带8Hz,40db

b=[0.0117   -0.0329    0.0451   -0.0329    0.0117]
a=[1.0000   -3.6048    4.9787   -3.1156    0.7447]

int        filterBegin=5;
double xBuf[5];
double yBuf[5];
double filter(double x)
{
        //把历史数据保存,算出yBuf[]并返回
        for(int i=4;i>0;i--)
        {
            yBuf[i] = yBuf[i-1]; xBuf[i] = xBuf[i-1];
        }
       xBuf[0] = x;

    if(filterBegin>0)
    {
        filterBegin =0;
       yBuf[0] = x;
       return x;
    }
    yBuf[0] = 0.0117* ( xBuf[0] +xBuf[4])  -0.0329 * (xBuf[1 ]+xBuf[3]) +0.0451*xBuf[2 ]
                -( -3.6048* yBuf[1] + 4.9787*yBuf[2]  -3.1156*yBuf[3] +    0.7447*yBuf[4]);
    return yBuf[0];
}

2、关于FIR带通滤波器的C语言设计程序 代码

 
  
 
  
 
  
 
  
void fir(short x[], short h[], short y[])

{

 int i, j, sum0, sum1;

 short x0,x1,x2,x3,x4,x5,x6,x7,h0,h1,h2,h3,h4,h5,h6,h7;  for (j = 0; j < 100; j+=2) {

  sum0 = 0;

  sum1 = 0;

  x0 = x[j];

  for (i = 0; i < 32; i+=8){

   x1 = x[j+i+1];

   h0 = h[i];

   sum0 += x0 * h0;

   sum1 += x1 * h0;

   x2 = x[j+i+2];

   h1 = h[i+1];

   sum0 += x1 * h1;

   sum1 += x2 * h1;

   x3 = x[j+i+3];

   h2 = h[i+2];

   sum0 += x2 * h2;

   sum1 += x3 * h2;

   x4 = x[j+i+4];

   h3 = h[i+3];

   sum0 += x3 * h3;

   sum1 += x4 * h3;

   x5 = x[j+i+5];

   h4 = h[i+4];

   sum0 += x4 * h4;

   sum1 += x5 * h4;

   x6 = x[j+i+6];

   h5 = h[i+5];

   sum0 += x5 * h5;

   sum1 += x6 * h5;

   x7 = x[j+i+7];

   h6 = h[i+6];

   sum0 += x6 * h6;

   sum1 += x7 * h6;

   x0 = x[j+i+8];

   h7 = h[i+7];

   sum0 += x7 * h7;

   sum1 += x0 * h7;

   }

  y[j] = sum0 >> 15;

  y[j+1] = sum1 >> 15;

 }

}

什么是谐波?什么是基波? 

      

最佳答案
谐波是一个数学或物理学概念,指周期函数或周期性的波形中不能用常数、与原函数的最小正周期相同的正弦函数和余弦函数的线性组合表达的部分。
基波:将非正弦周期信号按傅里叶级数展开,频率与原信号频率相同的量。
在电力系统中电压和电流均为周期波形,基波是指频率为50HZ的电压或电流成分,谐波是指频率为50hz整数倍的电压或电流成分,比如3次谐波就是频率为150hz的成分。 
二次谐波
   谐波产生的根本原因是由于非线性负载所致。当电流流经负载时,与所加的电压不呈线性关系,就形成非正弦电流,从而产生谐波。谐波频率是基波频率的整倍数,根据法国数学家傅立叶(M.Fourier)分析原理证明,任何重复的波形都可以分解为含有基波频率和一系列为基波倍数的谐波的正弦波分量。谐波是正弦波,每个谐波都具有不同的频率,幅度与相角。谐波可以I区分为偶次与奇次性,第3、5、7次编号的为奇次谐波,而2、4、6、8等为偶次谐波,如基波为50Hz时,2次谐波为l00Hz,3次谐波则是150Hz。

基波

  jībō   〖fundamentalwave〗  复合波的最低频率分量。  在复杂的周期性振荡中,包含基波和 谐波。和该振荡最长周期相等的正弦波分量称为基波。相应于这个周期的频率称为 基本频率。频率等于基本频率的整倍数的正弦波分量称为谐波。
 

通带截止频率

  是滤波器中的带通滤波器的截止频率。带通滤波器是只允许ƒ1——ƒ2间的频率成分通过,其他频率成分衰减为零。
  

C语言 <wbr>低通滤波器\带通滤波器\高通滤波器

4种滤波器的幅频特性


截止频率

  幅频特性值等于A0的根2倍所对应的频率称为滤波器的截   止频率。

C语言 <wbr>低通滤波器\带通滤波器\高通滤波器


 

posted on 2022-10-04 01:31  bdy  阅读(163)  评论(0编辑  收藏  举报

导航