问题描述
我刚开始使用 GNU Radio,我必须说我是个菜鸟,但我对 RF 相关的东西有一些背景。 事情是这样的: 我录制了一个文件,现在想通过我的 HackRF 和 GNU Radio 重复播放。
您看到的设置是随意的(因为我无法使其正常工作,所以我开始使用随机值进行测试)。 这是我得到的错误:
Executing: /usr/bin/python3 -u /home/scare/LAB/RadioFrequencies/GNU Radio/reply_433.py
gr-osmosdr 0.2.0.0 (0.2.0) gnuradio 3.8.2.0
built-in sink types: uhd hackrf bladerf soapy redpitaya file
[INFO] [UHD] linux; GNU C++ version 11.1.0; Boost_107600; UHD_4.0.0.0-0-unkNown
Using HackRF One with firmware 2017.02.1
Traceback (most recent call last):
File "/home/scare/LAB/RadioFrequencies/GNU Radio/reply_433.py",line 211,in <module>
main()
File "/home/scare/LAB/RadioFrequencies/GNU Radio/reply_433.py",line 187,in main
tb = top_block_cls()
File "/home/scare/LAB/RadioFrequencies/GNU Radio/reply_433.py",line 137,in __init__
firdes.high_pass(
File "/usr/lib/python3.9/site-packages/gnuradio/filter/filter_swig.py",line 124,in high_pass
return _filter_swig.firdes_high_pass(*args,**kwargs)
RuntimeError: firdes check Failed: 0 < fa <= sampling_freq / 2
Done (return code 1)
显然有趣的部分是 RuntimeError: firdes check Failed: 0
不幸的是,我不明白“fa”代表什么。
有什么想法吗?
干杯
解决方法
我刚刚解决了同样的错误。该错误是由滤波器的截止和转换参数设置不正确(在我的情况下太大)引起的。 GNU Radio 对每个块的变量“samp_rate”的处理方式不同,过滤器似乎将其解释为使过滤器居中的一个点(这是我的看法,所以不要引用我的话)。
我还查看了源代码,但在“fa”上找不到任何有用的信息
因此尝试将截止值调整为低于 samp_rate 的值,并使过渡宽度调整为 250e3。我使用 GUI 滑块来设置我喜欢的过滤器,我将在最终版本中永久保留这些。
Screen Cap of Settings Here Slider Settings For Both Sliders
Mike Ossmann 的“SDR with HackRF One,第 10 课 - 过滤器帮助”我在这里。如果您还没有遇到过 GNU 广播,那么这也是一个很棒的 SDR 讲座系列。 (只需确保使用 QT GUI)。
我希望这有帮助。我对 GNU 还是很陌生,如果解释有点不成熟,我很抱歉。