社区
非技术类
帖子详情
请问如何用vb实现数字滤波器的程序
wgr
2002-03-11 08:19:59
具体公式为滑动平均法,本滤波器用于消除随机扰动。
...全文
140
回复
打赏
收藏
请问如何用vb实现数字滤波器的程序
具体公式为滑动平均法,本滤波器用于消除随机扰动。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
四种IIR
数字
滤波器
设计的核心
程序
(
VB
程序
).pdf
巴特沃兹
滤波器
的
vb
.net
程序
。 ' 使用双线性变换法的 Butterworth 型 IIR
数字
滤波器
设计
程序
' ' 形参说明如下 : ' ' PbType ----------- 输入整型量 ,
滤波器
通带类型 : ' PbType = 0 : 低通
滤波器
; ' PbType = 1 : 高通
滤波器
; 2 ' PbType = 2 : 带通
滤波器
; ' PbType = 3 : 带阻
滤波器
. ' fp1 ----------- 输入双精度量 , 低通或高通
滤波器
的通带边界频率 ( Hz ); 带通或带阻
滤波器
的通带低端边 ‘ 界频率 ( Hz ). ' fp2 ----------- 输入双精度量 , 带通或带阻
滤波器
的通带低端边界频率 ( Hz ). ' Apass ----------- 输入双精度量 , 通带衰减 ( dB ). ' fs1 ----------- 输入双精度量 , 低通或高通
滤波器
的阻带边界频率 ( Hz ); 带通或带阻
滤波器
的阻带高端边 ‘ 界频率 ( Hz ). ' fs2 ----------- 输入双精度量 , 带通或带阻
滤波器
的阻带高端边界频率 ( Hz ). ' Astop ----------- 输入双精度量 , 阻带衰减 ( dB ). ' fsamp ----------- 输入双精度量 , 采样频率 ( Hz ). ' points ----------- 输入整型量 , 幅频特性计算点数 . ' ord ----------- 输入整型量 ,
滤波器
阶数 . ' NumSec( ) -------- 输出双精度量 , 转移函数二阶节的分子多项式系数二维数组 . ' 元素 NumSec( k, i ) 中 , ' k : 二阶节序号 ; ' i : 多项式系数 , i = 0 相应于常数项 . ' DenSec( ) -------- 输出双精度量 转移函数二阶节的分母多项式系数二维数组 . ' 元素 DenSec( k, i ) 中 , ' k : 二阶节序号 ; ' i : 多项式系数 , i = 0 相应于常数项 . ' NumSec_Z( ) ------ 输出双精度量 系统函数二阶节的分子多项式系数二维数组 . ' 元素 NumSec_Z( k, i ) 中 , ' k : 二阶节序号 ; ' i : 多项式系数 , i = 0 相应于常数项 . ' DenSec_Z( ) ------ 输出双精度量 系统函数二阶节的分母多项式系数二维数组 . ' 元素 DenSec_Z( k, i ) 中, ' k : 二阶节序号 ; ' i : 多项式系数 , i = 0 相应于常数项 . ' AR( ) ------------ 输出双精度量 ,
滤波器
的幅频特性数组 . ' Sub Butterworth(PbType As Integer, fp1 As Double, fp2 As Double, Apass As Double, fs1 As Double, fs2 As Double, Astop As Double, fsamp As Double, points As Integer, ord As Integer, NumSec() As Double, DenSec() As Double, NumSec_Z() As Double, DenSec_Z() As Double, AR() As Double) Dim i%, j%, k%, ord_t% Dim angle#, emp1#, temp2#, temp3# Dim ratio(0 To 50) As Double '''''''''''''''''''' If PbType = 0 Then ' 低通
滤波器
; wpass = 2# * Pi * fpass / fsamp: wstop = 2# * Pi * fstop / fsamp ' 通带、阻带边界频率 omikaP = Tan(wpass / 2#): omikaS = Tan(wstop / 2#) epass = epson(Apass): estop = epson(Astop) ' 根据对幅频特性的技术要求 ,计算模拟
滤波器
的阶数 orde = Ne_B(estop, epass, omikaS, omikaP) ord = Fix(orde) + 1 omk0 = omika0(omikaP, epass, ord) ' 调用 Fz_LP 子
程序
, 将低通模拟
滤波器
的转移函数变量 s 映射为低通
数字
滤波器
的系统函数变量 z Call Fz_LP(F1(), F2(), ord_t) ' End If '''''''''''''''''''' If PbType = 1 Then ' 高通
滤波器
; wpass = 2# * Pi * fpass / fsamp: wstop = 2# * Pi * fstop / fsamp ' 通带、阻带边界频率 3 omikaP = 1# / Tan(wpass / 2#): omikaS = 1# / Tan(wstop / 2#) epass = epson(Apass): estop = epson(Astop) ' 根据对幅频特性的技术要求 ,计算模拟
滤波器
的阶数 orde = Ne_B(estop, epass, omikaS, omikaP) ord = Fix(orde) + 1 omk0 = omika0(omikaP, epass, ord) ' 调用 Fz_HP 子
程序
,将高通模拟
滤波器
的转移函数变量 s 映射为高通
数字
滤波器
的系统函数变量 z Call Fz_HP(F1(), F2(), ord_t) End If '''''''''''''''''''' If PbType = 2 Then ' 带通
滤波器
; wp1 = 2# * Pi * fp1 / fsamp: wp2 = 2# * Pi * fp2 / fsamp ' 通带上下边界频率 ws1 = 2# * Pi * fs1 / fsamp: ws2 = 2# * Pi * fs2 / fsamp ' 阻带上下边界频率 Ci = BpC(wp1, wp2) omikaP = Abs((Ci - Cos(wp2)) / Sin(wp2)) omikaS1 = Abs((Ci - Cos(ws1)) / Sin(ws1)) omikaS2 = Abs((Ci - Cos(ws2)) / Sin(ws2)) If omikaS1 <= omikaS2 Then omikaS = omikaS1 Else omikaS = omikaS2 End If epass = epson(Apass): estop = epson(Astop) ' 根据对幅频特性的技术要求 ,计算模拟
滤波器
的阶数 orde = Ne_B(estop, epass, omikaS, omikaP) ord = Fix(orde) + 1 omk0 = omika0(omikaP, epass, ord) ' 调用 Fz_BP 子
程序
,将带通模拟
滤波器
的转移函数变量 s 映射为带通
数字
滤波器
的系统函数变量 z Call Fz_BP(fp1, fp2, fsamp, F1(), F2(), ord_t) End If
ff.rar_
VB
数字
滤波_
VB
滤波器
_digital filter
vb
_
数字
滤波_滤波
实例稿件:一个用
VB
语言设计
数字
滤波器
,运行环境:Visual Basic6.0
FIR IIR
滤波器
的
VB
.NET
实现
非常详细的
VB
.net代码
实现
FIR IIR
滤波器
采用
VB
与MATLAB混合编程的
数字
滤波器
设计.pdf
采用
VB
与MATLAB混合编程的
数字
滤波器
设计.pdf
一种基于
VB
的虚拟
数字
滤波器
的设计
本文介绍的是一种基于
VB
的虚拟
数字
滤波器
的设计
非技术类
743
社区成员
26,912
社区内容
发帖
与我相关
我的任务
非技术类
VB 版八卦、闲侃,联络感情地盘,禁广告帖、作业帖
复制链接
扫一扫
分享
社区描述
VB 版八卦、闲侃,联络感情地盘,禁广告帖、作业帖
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章