Error 20023 “The following conditions must be met: 0 < f_low <= f_high <= fs/2.“

问题背景

在设计一款虚拟滤波器时,发生以下报错。滤波器项目结构为两个信号发生器VI,一个生成信号,一个生成噪声,通过全局变量将噪声与信号输入滤波器VI,在滤波器VI中使用FIR和IIR进行滤波。

报错详情

从报错提示上可以看到是输入频率不符合采样定律(2倍频率)与滤波器逻辑设计(带通、带阻低频率小于高频率),导致滤波器无法正常工作。
在这里插入图片描述

原因分析

  1. 首先想到的是滤波器前面板参数设置错误,尝试后无果。

  2. 正确原因:全局变量传递的是一个float型数据,因此将全局变量直接输入滤波器,也就是直接将一个浮点数输入滤波器,被滤波器看做一个波,因此无法进行滤波。

解决方法

将单个输入的一个个离散的数字信号Y值,使用build waveform函数建立一个模拟信号,再将模拟信号输入数字滤波器进行采样与滤波,最终输出结果。

解决用到的函数

https://zone.ni.com/reference/en-XX/help/371361R-01/lvwave/build_waveform/

解决代码截图

tips: delta t 表示读取Y值时的时间间隔,此处不能设置过大(尽量小),过大会导致生成的模拟波形拟合度差,也会出现同样的报错。
在这里插入图片描述

参考网址

https://forums.ni.com/t5/LabVIEW/Error-20023-quot-The-following-conditions-must-be-met-0-lt-f-low/td-p/3759425?profile.language=zh-CN

https://knowledge.ni.com/KnowledgeArticleDetails?id=kA00Z0000019KazSAE&l=zh-CN

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值