C语言结合gnuplot设计巴特沃斯型模拟低通滤波器

设计步骤

在已知通带截频Wp、阻带截频Ws、通带衰减Ap和阻带衰减As等设计指标的前提下,设计BW型模拟低通滤波器的步骤如下:

  1. 确定滤波器阶数
    在这里插入图片描述

  2. 确定3dB截频Wc
    在这里插入图片描述

  3. 求系统函数的极点
    在这里插入图片描述

  4. 求系统函数
    在这里插入图片描述

设计一个满足下列指标的巴特沃斯型模拟低通滤波器:
fp=1kHz,fs=2kHz,Ap<=1dB,As>=40dB

matlab代码

Wp = 2*pi*1000; Ws = 2*pi*2000; Ap = 1; As = 40;
[N, Wc] = buttord(Wp, Ws, Ap, As, 's');	%确定滤波器阶数N和3dB截频Wc,'s'表示设计模拟滤波器
fprintf('Order of the filter = %.0f\n',N);	%输出滤波器阶数N
[num, den] = butter(N, Wc, 's');	%求传输函数分子和分母多项式的系数,'s'表示设计模拟滤波器
omega = [Wp Ws]; 
h = freqs(num, den, omega);	%求通带和阻带边界频率这两点的频率衰耗
fprintf('Ap = %.4f\n', -20*log10(abs(h(1))));	%将幅度值转化为dB值
fprintf('As = %.4f\n', -20*log10(abs(h(2))));	%将幅度值转化为dB值
omega = [0 : 200 : 3000*2*pi];
h = freqs(num, den, omega);
gain = 20*log10(abs(h));
plot(omega/(2*pi), gain);
title('巴特沃斯型低通滤波器');
xlabel('Frequency in Hz');
ylabel('Gain in dB');

运行结果:
在这里插入图片描述
Ap=0.6167,As=40.0000,满足设计指标。

matlab绘图

在这里插入图片描述

C程序

#include<stdio.h>
#include<math.h>
#include<complex.h>
#define pi 3.1416
int main()
{
    double Wp = 2*pi*1000, Ws = 2*pi*2000, Ap = 1, As = 40;
    //确定滤波器阶数N
    int N = ceil(log10((pow(10,0.1*As)-1)/(pow(10,0.1*Ap)-1))/(2*log10(Ws/Wp)));
    //确定3dB截频Wc
    double Wc = Ws / (pow(pow(10,0.1*As)-1,1.0/(2*N)));
    int i;
    double complex s[100];
    //求系统函数的极点
    for(i=1; i<=N; i++)
        s[i] = Wc*(cexp(I*pi*(1.0/2+1.0*(2*i-1)/(2*N))));
    //求系统函数
    int w;
    for(w=0; w<=2*pi*3000; w++)
    {
	double complex H=1, t;
	for(i=1; i<=N; i++)
        {
	    t = (-s[i]) / (I*w-s[i]);
            H = H * t;
        }
        printf("%f\t%f\n", w/(2*pi), 20*log10(cabs(H)));
    }
}

gnuplot绘图

在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Visual Studio中使用C语言时,如果出现 "'gnuplot'不是内部或外部命令,也不是可运行的程序或批处理文件" 的错误提示,这通常是因为系统无法找到gnuplot命令。gnuplot是一个用于绘制图形的开源软件,如果你的项目中使用了gnuplot相关的代码或库,那么你需要确保gnuplot已经正确安装并配置。 解决这个问题的方法有以下几种: 1. 确认gnuplot已经正确安装:首先,你需要确保gnuplot已经正确安装在你的系统中。你可以在gnuplot官方网站(https://www.gnuplot.info/)下载并安装最新版本的gnuplot。 2. 配置环境变量:如果gnuplot已经正确安装,但系统仍然无法找到它,可能是因为系统的环境变量没有配置正确。你可以按照以下步骤进行配置: - 打开控制面板,进入系统和安全 -> 系统 -> 高级系统设置。 - 在弹出的窗口中,点击"环境变量"按钮。 - 在"系统变量"部分,找到名为"Path"的变量,并点击"编辑"按钮。 - 在弹出的窗口中,点击"新建"按钮,并输入gnuplot的安装路径(例如:C:\Program Files\gnuplot\bin)。 - 确认所有窗口,保存并关闭。 3. 检查项目配置:如果以上步骤都没有解决问题,你需要检查你的项目配置是否正确。在Visual Studio中,你可以打开项目属性,然后选择"配置属性" -> "调试" -> "环境",确保环境变量中包含gnuplot的安装路径。 希望以上方法能够帮助你解决问题!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值