设计巴特沃斯滤波器实现高通滤波

article/2025/10/23 14:37:27

首先在MATLAB上通过设计一个巴特沃斯滤波器来实现一个高通滤波器。

%设计一个巴特沃斯高通滤波器
%滤除一个300HZ的正弦信号
clear;
fn = 10000;%采样频率
fp = 900;%通带截止频率
fs = 600;%阻带截止频率
Rp = 2;%通带最大衰减
Rs = 20;%阻带最小衰减
figure(1);
Wp = fp/(fn/2);
Ws = fs/(fn/2);
[n,Wn] = buttord(Wp,Ws,Rp,Rs);
[b,a] = butter(n,Wn,'high');[H,F] = freqz(b,a,900,10000);%数字滤波器的频率响应
subplot(211);
plot(F,20*log10(abs(H)))
axis([0 4000 -30 3]);subplot(212);
pha = angle(H)*180/pi;
plot(F,pha);
% axis([0 8000 -200 200]);
grid on;
figure(2);
f1 = 2000;
f2 = 300;
t = 0:1/fn:1;
x = sin(2*pi*f1*t)+cos(2*pi*f2*t)/6;
y = filter(b,a,x);
subplot(211);
Y = fft(x);
n=0:length(x)-1;
plot(n,Y);
subplot(212);
Y1 = fft(y);
n=0:length(y)-1;
plot(n,Y1);
grid on;
figure(4);
plot(t,x);
subplot(111);
figure(5);
plot(t,y);
subplot(111);

结果如下:
滤波器的频率特性:
在这里插入图片描述
在600HZ时-20分贝
输入波形:
在这里插入图片描述
可以从幅度看出输入波形为sin+cos/6;
输出波形:
在这里插入图片描述
输入和输出的频谱:
在这里插入图片描述
观察滤波器【b,a】[b,a] = butter(n,Wn,‘high’);
a = 1 -4.67625140576819 9.64877723309598 -11.3207795685212 8.12672213051155 -3.55976931154069 0.879191790281082 -0.0942959539620253
b = 0.307076464013131 -2.14953524809191 6.44860574427574 -10.7476762404596 10.7476762404596 -6.44860574427574 2.14953524809191 -0.307076464013131
则系统函数 y(n)= 4.67625140576819y(n-1)-9.64877723309598y(n-2)…+0.0942959539620253y(n-7)+0.307076464013131x(n)-2.14953524809191x(n-1)…-0.307076464013131x(n-7)
所以通过这个编写CCS的代码:

#include"math.h"#define IIRNUMBER 8
#define SIGNAL1F 1000
#define SIGNAL2F 4500
#define SAMPLEF  10000
#define PI 3.1415926float InputWave();
float IIR();float fBn[IIRNUMBER]={0,4.67625140576819,-9.64877723309598,11.3207795685212,-8.12672213051155,3.55976931154069,-0.879191790281082,0.0942959539620253};
float fAn[IIRNUMBER]={0.307076464013131,-2.14953524809191,6.44860574427574,-10.7476762404596,10.7476762404596,-6.44860574427574,2.14953524809191,-0.307076464013131};
float fXn[IIRNUMBER]={ 0.0 };
float fYn[IIRNUMBER]={ 0.0 };
float fInput,fOutput;
float fSignal1,fSignal2;
float fStepSignal1,fStepSignal2;
float f2PI;
int i;
float fIn[256],fOut[256];
int nIn,nOut;main()
{nIn=0; nOut=0;fInput=fOutput=0;f2PI=2*PI;fSignal1=0.0;fSignal2=PI*0.1;//初始相位fStepSignal1=2*PI*300;fStepSignal2=2*PI*2000;while ( 1 ){fInput=InputWave();fIn[nIn]=fInput;nIn++; nIn%=256;fOutput=IIR();fYn[0]=fOutput;fOut[nOut]=fOutput;nOut++;				// break pointif ( nOut>=256 ){nOut=0;		}}
}
/*生成采样率10000HZ,频率300HZ的正弦信号+1/6频率2000HZ的余弦信号*/
float InputWave()
{for ( i=IIRNUMBER-1;i>0;i-- ){fXn[i]=fXn[i-1];fYn[i]=fYn[i-1];}fXn[0]=sin((double)fSignal1)+cos((double)fSignal2)/6.0;fSignal1+=fStepSignal1/SAMPLEF;if ( fSignal1>=f2PI )	fSignal1-=f2PI;fSignal2+=fStepSignal2/SAMPLEF;if ( fSignal2>=f2PI )	fSignal2-=f2PI;return(fXn[0]);
}
//求y(n)=4.676251y(n-1)+....++0.0942959y(n-7)+0.3070764x(n)+....-0.307076x(n-7)
float IIR()
{float fSum;fSum=0.0;for ( i=0;i<IIRNUMBER;i++ ){fSum+=(fXn[i]*fAn[i]);fSum+=(fYn[i]*fBn[i]);}return(fSum);
}

debug结果如下:
输入信号:
在这里插入图片描述
滤波后输出信号:
在这里插入图片描述
输入信号频谱:
在这里插入图片描述
输出信号频谱:
在这里插入图片描述


http://chatgpt.dhexx.cn/article/amuia0dq.shtml

相关文章

【OpenCV 例程200篇】84. 由低通滤波器得到高通滤波器

【OpenCV 例程200篇】84. 由低通滤波器得到高通滤波器 欢迎关注 『OpenCV 例程200篇』 系列&#xff0c;持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列&#xff0c;持续更新中 4. 频率域高通滤波器 图像边缘化其它灰度的急剧变化与高频分量有关&#xff0c;因此可以…

四阶巴特沃斯高通滤波器

一、设计方案 1.理论参考 图1.1-1 巴特沃斯高通滤波器归一化幅频响应 图1.1-2 巴特沃斯低通、高通电路阶数n与增益的关系 图1.1-3 二阶高通滤波电路及其传递函数 2.电路设计 综合滤波器滤波效果及电路实现难度&#xff0c;采用四阶高通滤波器 图1.2-1 四阶高通滤波电路 查表得到…

matlab设计模拟高通滤波器

简单记录下在matlab上如何设计出模拟的高通滤波器&#xff0c;包括&#xff1a;巴特沃斯滤波器、切比雪夫I型滤波器、切比雪夫II型滤波器、椭圆型滤波器。 %设计高通滤波器 %巴特沃斯、切比雪夫I型、切比雪夫II型、椭圆型滤波器clear all;%wp和ws分别是通带和阻带的频率(截止频…

IIR滤波器设计

matlab代码在最后&#xff0c;仅供参考。 高通滤波器设计 HP:fp400Hz&#xff0c;fs300Hz&#xff0c;Fs1000Hz&#xff0c;αp3dB&#xff0c;αs35dB。 巴特沃斯高通滤波器设计 切比雪夫高通滤波器设计 带通滤波器设计 BP:fsl200Hz&#xff0c;f1300Hz&#xff0c;fsh500H…

设计线性相位高通FIR滤波器

调用MATLAB工具箱函数frl设计线性相位高通FIR滤波器。要求通带截止频奉为0.6 Πrad,限带截止频率为0.45 Πrad,通带最大衰成为0.2 dB.阻带最小衰减为45dB.显示所设计的单位脉冲响应h(n)的数据&#xff0c;并画出损耗函数曲线。 代码&#xff1a; Fs80000; T1/Fs; wp2*pi*4000/…

【转载】设计一个RC高通滤波器或低通滤波器

设计一个RC高通滤波器或低通滤波器 qlexcel 2019-05-03 11:42:42 30981 收藏 93 分类专栏&#xff1a; 器件&amp;传感器 模拟电路&amp;电路分析 一、引出 在一些信号电路中通常会存在一些我们不需要的噪声&#xff0c;比如高频噪声。这个时候就需要滤波器来处理他们…

MATLAB设计滤波器代码

自测可用&#xff0c;最基本的代码&#xff0c;无拔高。 目录 1、设计IIR模拟高低通滤波器 2、设计IIR数字滤波器 3、设计FIR数字滤波器 1、设计IIR模拟高低通滤波器 wp 2*pi*4000;ws 2*pi*1000; ap 0.1;as 40; [N,wc] buttord(wp,ws,ap,as,s); [BH,AH] butter(N,wc…

【滤波器】基于matlab实现微波带低通高通带通滤波器设计

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;修心和技术同步精进&#xff0c;matlab项目合作可私信。 &#x1f34e;个人主页&#xff1a;Matlab科研工作室 &#x1f34a;个人信条&#xff1a;格物致知。 更多Matlab仿真内容点击&#x1f447; 智能优化算法 …

设计高通滤波器 HP

高通和低通类似&#xff0c;本篇文章用到的a、b参数&#xff0c;我在低通中有给出那个图 如果大家要设计高通滤波器&#xff0c;大家可以和低通滤波器一起考虑~~~~ ———————————————————————————————— example1: { in there we can see: R1…

二阶高通有源滤波器设计与仿真测试

二阶高通有源滤波器设计与仿真测试 1.压控电压源法二阶高通有源滤波器设计与仿真测试&#xff08;1&#xff09;电路结构&#xff08;2&#xff09;设计步骤&#xff08;3&#xff09;设计举例&#xff08;4&#xff09;仿真测试 2.无限增益多路反馈型二阶高通有源滤波器的设计…

信号处理系统综合设计-最小阶数的IIR数字高通滤波器

微信公众号&#xff1a;创享日记 发送&#xff1a;最小阶 获取完整报告&#xff08;含源代码程序结果分析&#xff09; 设计一个最小阶数的IIR数字高通滤波器&#xff0c;指标要求如下&#xff1a; 以小于1dB的衰减通过150Hz的分量&#xff1b;以至少40dB抑制100Hz的分量&…

一维序列数据处理:FIR高通滤波器设计

1. 加窗法设计滤波器 为什么要加窗设计滤波器&#xff1f;因为为了降低DFT的频率泄露。那什么是DFT频率泄露以及为什么加窗设计就可以降低DFT的频率泄露&#xff1f;解释这个之前&#xff0c;我们先介绍一下DFT&#xff08;离散傅里叶变换&#xff09;和三角函数的正交性知识&…

悬置线高通滤波器设计

从大学到工作&#xff0c;初次接触过的人都觉得我很啰嗦&#xff0c;我很想简洁明了表达&#xff0c;我也读了很多高效表达方法论的书&#xff0c;刻意练习还是发现效果不佳。后来自我反省&#xff0c;发现啰嗦也有可爱的一面&#xff0c;出发点是自己的真诚&#xff0c;我想把…

【Matlab】如何使用Filter Design设计低通、高通、带阻滤波器

如何使用Filter Design设计低通、高通、带阻数字滤波器。 文章目录 前言 一、低通滤波器 二、高通滤波器 三、带阻滤波器 前言 使用Matlab自带的Filter Design APP可以方便、快捷地设计各种FIR/IIR数字滤波器&#xff0c;并且能输出数字滤波器的阶数、幅度响应、相位响应等…

基于汉宁窗的FIR高通滤波器设计

摘 要 本次课程设计是采用MATLAB进行设计基于汉宁窗的FIR高通滤波器音频去噪&#xff0c;在设计过程中&#xff0c;首先录制一段不少于5秒的音频音乐&#xff0c;作为输入信号&#xff0c;并对录制的信号进行采样&#xff1b;其次使用MATLAB会出采样后的语音信号的时域波形和频…

数字滤波器之高通滤波器设计

要求&#xff1a;设计一款高通滤波器&#xff0c;用在音频信号处理过程中&#xff0c;滤掉100Hz以下的信号。 实现方法&#xff1a;通过在Z平面放置零极点的来设计数字滤波器。 设计要点&#xff1a;单位圆上对应于需要加强频率的点附近放置极点&#xff0c;即wπ处附近落极点…

PCB布线及后仿真验证过程(干货满满,建议收藏)

一、布线的基本要求 布线次序考虑 1) 规则驱动布线遵循的基本步骤 定义禁布区&#xff0c;或控制区若有规则约束&#xff0c;要求设置规则试布线&#xff0c;评估单板是否可以布通&#xff0c;若不能布通&#xff0c;需要采用策略Fanout后对覆盖率检查&#xff0c;通常要求满…

PCB布线原则总结

1、环路最小规则------信号线与其回来构成的环路面积极可能小 2、短线规则------布线长度应尽可能短&#xff0c;振荡器应放在离器件很近的位置 3、开环检查规则----- 一般情况下不允许出现一端悬空的布线 4、闭环检查规则------防止信号在不同层间形成闭环 5、20H规则------防…

Altium_Designer PCB布线不受控制

我这里是单位问题&#xff1a; 之前左下角网格Grid设置为 mm&#xff0c;所以我在指定布线规则的时候&#xff0c;系统也是按照 mm 来的 解决方法&#xff1a; 英文输入的情况下&#xff0c;按 快捷键 Q 切换网格单位为 mil 就可以了

pcb布线注意点:晶振

EMC全称Electro Magnetic Compatibility,指设备或系统在其电磁环境中能正常工作&#xff0c;且不对该环境中任何事物构成不能承受的电磁骚扰的能力。EMC是评价电子产品质量的一个重要指标。 从广义上讲&#xff0c;EMC测试的具体项目包括以下两个大项&#xff1a; &#xff0…