参考文章

  • 绘制数字滤波器的频域响应
  • gnuplot

Octave

pkg load signalb=[+1.009874 -1.973835 +0.980993];
a=[+1.000000 -1.973835 +0.990867];Fs = 48000
for k=1:Fsw(k)=2*pi*(k-1)/(Fs - 1);z=exp(j*w(k));Z=[1 z^-1 z^-2];H_z(k)=sum(b.*Z)./sum(a.*Z);
end% Transfer from Rad to Hz.
fz = (w / (2 * pi)) * Fs;% mag2db
Hf_PEAK = 20*log10(abs(H_z));
Hx_PEAK = angle(H_z);figure(1);plot(fz(1:4000), Hf_PEAK(1:4000));
figure(2);plot(fz(1:4000), Hx_PEAK(1:4000));

Magnitude Vs Frequency

Phase Vs Frequency

C

安装gnuplot

  • msys2环境
pacman -S mingw-w64-x86_64-gnuplot

然后,进入gnuplot互交模式。

gnuplot

注意: 实测无法启动,可能是版本问题。

  • Octave
    gnuplot官网介绍来看,Octave也基于gnuplot绘图。所以可以直接调用Octave的软件包即可。Command Prompt下直接进入gnuplot互交模式。
E:\Ethan\NOTEs\dev\C\Effendi>d:\Octave\Octave-5.2.0\mingw64\bin\gnuplot.exe
int print_freqz(uint32_t frequency, uint32_t order, double a[], double b[])
{double H_z[2]   = {+0.0};double fenzi[2] = {+0,0};double fenmu[2] = {+0,0};double HzAmp  = +0.0;double HzAng  = +0.0;double tmp    = +0.0;double  w;double  hz;int     i;int     j;for (i = 0; i < frequency; i++) {w = (2.0 * M_PI * i) / frequency;fenzi[0] = +0.0;fenzi[1] = +0.0;fenmu[0] = +0.0;fenmu[1] = +0.0;for (j = 0; j <= order; j++) {fenzi[0] = fenzi[0] + b[j] * cos(-j * w); // realfenzi[1] = fenzi[1] + b[j] * sin(-j * w); // imagfenmu[0] = fenmu[0] + a[j] * cos(-j * w); // realfenmu[1] = fenmu[1] + a[j] * sin(-j * w); // imag}tmp = fenmu[0] * fenmu[0] + fenmu[1] * fenmu[1];H_z[0] = (fenzi[0] * fenmu[0] + fenzi[1] * fenmu[1]) / tmp;H_z[1] = (fenzi[1] * fenmu[0] - fenzi[0] * fenmu[1]) / tmp;HzAmp = sqrt(H_z[0] * H_z[0] + H_z[1] * H_z[1]);HzAng = atan(H_z[1] / H_z[0]);if(H_z[1] > 0 & H_z[ 0 ] < 0) HzAng = HzAng + M_PI;if(H_z[1] < 0 & H_z[ 0 ] < 0) HzAng = HzAng - M_PI;hz = (w / (2 * M_PI)) * frequency;printf("%e\t%e\t%e\n", hz, 20 * log10(HzAmp), HzAng);}return 0;
}
./Effendi.exe freqz -o 2 -f 48000 -c +1.000000:-1.973835:+0.990867:+1.009874:-1.973835:+0.980993 > freqz.tx

gnuplot互交模式下。

gnuplot> plot [0:4000] [-2:10] "freqz.txt" u 1:2 w l
gnuplot> plot [0:4000] [-0.8:0.8] "freqz.txt" u 1:3 w l

Magnitude Vs Frequency

Phase Vs Frequency

freqz之C实现例程相关推荐

  1. 汇编试验十五:安装新的int 9中断例程

    安装新的int 9中断例程(按'A'键后显示满屏幕的'A') int 9 是外中断,同样,程序编写还是和其他中断例程类似,安装(复制),调用: 不同点是在于,他要从端口读取数据60h, Source ...

  2. 2018.5.29 Oracle连接到空闲例程

    解决方法如下: 1.通过cmd命令窗启动Oracle:(最好是以管理员身份启动) C:\Users\Administrator>sqlplus /nolog SQL>conn /as sy ...

  3. 创建ASP.NET WEB自定义控件——例程2

    本文通过一段完整的代码向读者介绍复合自定义控件的制作,包括:自定义属性.事件处理.控件间数据传递等方面的技术. 作者在http://damao.0538.org有一些控件和代码,并在更新中,有兴趣的读 ...

  4. 单片机如何使用?单片机只会用例程怎么办?

    大家好,我是无际单片机编程徐工. "单片机"可以说是一个专业名词,只要做电子的,或者电子产品相关的人才会知道单片机,以及单片机是干什么的. 大学谈女朋友的时候,女朋友问我每天在实验 ...

  5. zw版【转发·台湾nvp系列Delphi例程】HALCON Histogram

    zw版[转发·台湾nvp系列Delphi例程]HALCON Histogram unit Unit1; interface uses Windows, Messages, SysUtils, Vari ...

  6. 松翰松翰c语言编程指导,松翰C程序检单例程代码下载

    标签: 松翰C程序检单例程 #include "define.h" #include "sn8p2501b.h" //--------------------- ...

  7. SAP MIGO 报错-在例程WERT_SIMULIEREN字段NEUER_PREIS中字段溢出-

    SAP MIGO 报错-在例程WERT_SIMULIEREN字段NEUER_PREIS中字段溢出- 如下对采购订单 4100000586执行MIGO做收货, 过账之前的检查,没有问题.过账, 在例程W ...

  8. Writing a FilterUnloadCallback Routine for a Minifilter Driver 为一个微过滤驱动写一个过滤器卸载回调例程...

    一个文件系统微过滤驱动能可选择的注册一个 PFLT_FILTER_UNLOAD_CALLBACK类型的例程 作为微过滤驱动的 FilterUnloadCallback  例程.这个回调例程也被称为微过 ...

  9. 在Developerkit开发板上运行blink例程

    2019独角兽企业重金招聘Python工程师标准>>> 摘要: 本文将介绍怎么样在VScode环境下,将AliOS Tings提供的blink例程在Developerkit开发板上运 ...

  10. 【iCore4 双核心板_FPGA】例程八:乘法器实验——乘法器使用

    实验现象: 程序运行时,绿色led闪烁(目前,具体的乘法器调用请参考iCore3乘法器例程) 核心代码: module multiplier_ctrl(input clk_25m,input rst_ ...

最新文章

  1. canvas arcTo()用法详解 – CodePlayer
  2. npm install 安装软件,出现 operation not permitted, mkdir 'C:\Program Files\nodejs\node_cache'...
  3. 最简便的Revit信息导出到数据库本地SQL SERVER
  4. java 检测表情符号_一个能在字符串中识别出 Emoji 的简单工具 (支持JavaScript和Java)...
  5. 联想r720内存频率_联想小新Pro 14 2021怎么样 联想小新Pro 14 2021全面评测
  6. 阶段3 3.SpringMVC·_04.SpringMVC返回值类型及响应数据类型_8 响应json数据之响应json格式数据...
  7. 我们该不该在Rust上做点投资?
  8. 奔图打印机linux驱动rpm,奔图P2500打印机驱动
  9. 图像质量评价方法介绍
  10. python抓取百度指数详解
  11. 量化专业术语——转自BigQuant
  12. Latex参考文献问题---参考文献条数不显示
  13. [转][火星帖][留档] 东京秋叶原电器街世风日下
  14. 谷歌浏览器查找页面内容快捷键
  15. 计算机软件水平考试什么题型,计算机软考考什么内容
  16. PyCharm中光标变粗的解决方法
  17. 女孩子有什么颜值高的蓝牙耳机推荐?双12五款高音质游戏蓝牙耳机分享
  18. 转:攻击JavaWeb应用[2]-CS交互安全
  19. sshpass和scp的使用
  20. [TJOI2017]可乐

热门文章

  1. oracle恢复表的数据到某个时间点
  2. html设置桌面背景win7,win7电脑桌面背景怎么设置_win7电脑桌面壁纸怎么设置-win7之家...
  3. xp系统无法从补丁服务器获取补丁,怎么获取到xp系统的微软补丁_微软补丁获取方法 - 驱动管家...
  4. WPS Office 2009 个人免费正版下载 【转载】
  5. 硬件检测软件---AIDA64
  6. Google Street View Data Set | 谷歌街景数据集 | 云盘分享 |
  7. 社区车辆信息管理系统
  8. 新能源专属车险可在线投保 80%车主基准保费下降
  9. “自由软件”已过时?
  10. 手机照片局部放大镜_拼音输入法哪个最好?百度手机输入法——最受年轻人喜爱...