Linux语言写的高通滤波,高通滤波器c语言实现

描述

高通滤波器,又称低截止滤波器、低阻滤波器,允许高于某一截频的频率通过,而大大衰减较低频率的一种滤波器。它去掉了信号中不必要的低频成分或者说去掉了低频干扰。

高通滤波器是一种让某一频率以上的信号分量通过,而对该频率以下的信号分量大大抑制的电容、电感与电阻等器件的组合装置。其特性在时域及频域中可分别用冲激响应及频率响应描述。后者是用以频率为自变量的函数表示,一般情况下它是一个以复变量jω为自变量的的复变函数,以H(jω)表示。它的模H(ω)和幅角φ(ω)为角频率ω的函数,分别称为系统的“幅频响应”和“相频响应”,它分别代表激励源中不同频率的信号成分通过该系统时所遇到的幅度变化和相位变化。可以证明,系统的“频率响应”就是该系统“冲激响应”的傅里叶变换。当线性无源系统可以用一个N阶线性微分方程表示时,频率响应H(jω)为一个有理分式,它的分子和分母分别与微分方程的右边和左边相对应。

高通滤波器分类:

按照滤波器的数学特性:分为一阶高通滤波器、二阶高通滤波器

按照所采用的器件分:有源高通滤波器、无源高通滤波器

以上两种分类方法相互独立。有源高通滤波器更为常见,如一阶有源高通滤波器、二阶有源高通滤波器等。其中一阶有源高通滤波器较为简单。

一阶有源高通滤波器:

27412dc1d9b51128fb39450c7a0acad8.png

一阶有源高通滤波器幅频特性曲线:

aaeb662c27a08c87cf0d98afa786bf44.png

高通滤波器c语言实现:

clc wp=2*2250/15000;

ws=2*1500/15000;

Bt=wp-ws N0=ceil(6.6/Bt);

N=N0+mod(N0+1,2) wc=(wp+ws)/2;

b=fir1(N-1, wc,‘high’,hamming(N));freqz(b,1,512,15000)%可以查看幅度响应、冲激响应等

h=buffer(round(b*32768),8)’ ; %参数*2^15,把小数点移最高位后面后取 % 整,然后排成8个一行便于输出。

csvwrite(‘table.txt’,h) %参数表输出到文件table.txt中

#include “math.h”

#include “tms320.h”

#include “dsplib.h”

#define NX 300

#define NH 67

#define PI 3.1415926

#pragma

DATA_SECTION(h,“.coeffs”)

DATA h[NH]={-18,-0,21,34,29,-0,-42,-72, -61,-0,88,147,122,-0,-167,-275, -225,-0,297,483,391,-0,-516,-841, -689,-0,949,1610,1399,-0,-2411,-5168, -7354,24557,-7354,-5168,-2411,-0,1399,1610, 949,-0,-689,-841,-516,-0,391,483, 297,-0,-225,-275,-167,-0,122,147, 88,-0,-61,-72,-42,-0,29,34, 21,-0,-18};

#pragma DATA_SECTION(db,“.dbuffer”)

DATA db[NH+2] ; DATA r[NX];

DATA *dbptr = &db[0];

void main()

{ int i;

short x[NX];

for(i=0;i《NX;i++)x[i]=0;

for (i=0;i《NX;i++)

{x[i]=(short)(((1+sin(PI*6000*i/15000))*sin(PI*8000*i/15000)*32768/3)); }

for (i=0; i《NX; i++) r[i] = 0; // clear output buffer (optional)

for (i=0; i《NH+2; i++) db[i] = 0; // clear delay buffer (a must) //

fir2(x, h, r, dbptr, NX, NH);//双MAC运算,速度快

fir(x, h, r, dbptr, NX, NH);//单MAC运算,速度相对双MAC要慢一些

while(1);

}

打开APP阅读更多精彩内容

点击阅读全文

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值