描述
高通滤波器,又称低截止滤波器、低阻滤波器,允许高于某一截频的频率通过,而大大衰减较低频率的一种滤波器。它去掉了信号中不必要的低频成分或者说去掉了低频干扰。
高通滤波器是一种让某一频率以上的信号分量通过,而对该频率以下的信号分量大大抑制的电容、电感与电阻等器件的组合装置。其特性在时域及频域中可分别用冲激响应及频率响应描述。后者是用以频率为自变量的函数表示,一般情况下它是一个以复变量jω为自变量的的复变函数,以H(jω)表示。它的模H(ω)和幅角φ(ω)为角频率ω的函数,分别称为系统的“幅频响应”和“相频响应”,它分别代表激励源中不同频率的信号成分通过该系统时所遇到的幅度变化和相位变化。可以证明,系统的“频率响应”就是该系统“冲激响应”的傅里叶变换。当线性无源系统可以用一个N阶线性微分方程表示时,频率响应H(jω)为一个有理分式,它的分子和分母分别与微分方程的右边和左边相对应。
高通滤波器分类:
按照滤波器的数学特性:分为一阶高通滤波器、二阶高通滤波器
按照所采用的器件分:有源高通滤波器、无源高通滤波器
以上两种分类方法相互独立。有源高通滤波器更为常见,如一阶有源高通滤波器、二阶有源高通滤波器等。其中一阶有源高通滤波器较为简单。
一阶有源高通滤波器:
一阶有源高通滤波器幅频特性曲线:
高通滤波器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精彩内容
点击阅读全文