freqz之C实现例程
参考文章
- 绘制数字滤波器的频域响应
- 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实现例程相关推荐
- 汇编试验十五:安装新的int 9中断例程
安装新的int 9中断例程(按'A'键后显示满屏幕的'A') int 9 是外中断,同样,程序编写还是和其他中断例程类似,安装(复制),调用: 不同点是在于,他要从端口读取数据60h, Source ...
- 2018.5.29 Oracle连接到空闲例程
解决方法如下: 1.通过cmd命令窗启动Oracle:(最好是以管理员身份启动) C:\Users\Administrator>sqlplus /nolog SQL>conn /as sy ...
- 创建ASP.NET WEB自定义控件——例程2
本文通过一段完整的代码向读者介绍复合自定义控件的制作,包括:自定义属性.事件处理.控件间数据传递等方面的技术. 作者在http://damao.0538.org有一些控件和代码,并在更新中,有兴趣的读 ...
- 单片机如何使用?单片机只会用例程怎么办?
大家好,我是无际单片机编程徐工. "单片机"可以说是一个专业名词,只要做电子的,或者电子产品相关的人才会知道单片机,以及单片机是干什么的. 大学谈女朋友的时候,女朋友问我每天在实验 ...
- zw版【转发·台湾nvp系列Delphi例程】HALCON Histogram
zw版[转发·台湾nvp系列Delphi例程]HALCON Histogram unit Unit1; interface uses Windows, Messages, SysUtils, Vari ...
- 松翰松翰c语言编程指导,松翰C程序检单例程代码下载
标签: 松翰C程序检单例程 #include "define.h" #include "sn8p2501b.h" //--------------------- ...
- SAP MIGO 报错-在例程WERT_SIMULIEREN字段NEUER_PREIS中字段溢出-
SAP MIGO 报错-在例程WERT_SIMULIEREN字段NEUER_PREIS中字段溢出- 如下对采购订单 4100000586执行MIGO做收货, 过账之前的检查,没有问题.过账, 在例程W ...
- Writing a FilterUnloadCallback Routine for a Minifilter Driver 为一个微过滤驱动写一个过滤器卸载回调例程...
一个文件系统微过滤驱动能可选择的注册一个 PFLT_FILTER_UNLOAD_CALLBACK类型的例程 作为微过滤驱动的 FilterUnloadCallback 例程.这个回调例程也被称为微过 ...
- 在Developerkit开发板上运行blink例程
2019独角兽企业重金招聘Python工程师标准>>> 摘要: 本文将介绍怎么样在VScode环境下,将AliOS Tings提供的blink例程在Developerkit开发板上运 ...
- 【iCore4 双核心板_FPGA】例程八:乘法器实验——乘法器使用
实验现象: 程序运行时,绿色led闪烁(目前,具体的乘法器调用请参考iCore3乘法器例程) 核心代码: module multiplier_ctrl(input clk_25m,input rst_ ...
最新文章
- canvas arcTo()用法详解 – CodePlayer
- npm install 安装软件,出现 operation not permitted, mkdir 'C:\Program Files\nodejs\node_cache'...
- 最简便的Revit信息导出到数据库本地SQL SERVER
- java 检测表情符号_一个能在字符串中识别出 Emoji 的简单工具 (支持JavaScript和Java)...
- 联想r720内存频率_联想小新Pro 14 2021怎么样 联想小新Pro 14 2021全面评测
- 阶段3 3.SpringMVC·_04.SpringMVC返回值类型及响应数据类型_8 响应json数据之响应json格式数据...
- 我们该不该在Rust上做点投资?
- 奔图打印机linux驱动rpm,奔图P2500打印机驱动
- 图像质量评价方法介绍
- python抓取百度指数详解
- 量化专业术语——转自BigQuant
- Latex参考文献问题---参考文献条数不显示
- [转][火星帖][留档] 东京秋叶原电器街世风日下
- 谷歌浏览器查找页面内容快捷键
- 计算机软件水平考试什么题型,计算机软考考什么内容
- PyCharm中光标变粗的解决方法
- 女孩子有什么颜值高的蓝牙耳机推荐?双12五款高音质游戏蓝牙耳机分享
- 转:攻击JavaWeb应用[2]-CS交互安全
- sshpass和scp的使用
- [TJOI2017]可乐
热门文章
- oracle恢复表的数据到某个时间点
- html设置桌面背景win7,win7电脑桌面背景怎么设置_win7电脑桌面壁纸怎么设置-win7之家...
- xp系统无法从补丁服务器获取补丁,怎么获取到xp系统的微软补丁_微软补丁获取方法 - 驱动管家...
- WPS Office 2009 个人免费正版下载 【转载】
- 硬件检测软件---AIDA64
- Google Street View Data Set | 谷歌街景数据集 | 云盘分享 |
- 社区车辆信息管理系统
- 新能源专属车险可在线投保 80%车主基准保费下降
- “自由软件”已过时?
- 手机照片局部放大镜_拼音输入法哪个最好?百度手机输入法——最受年轻人喜爱...