首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于RTL的Z波GNURadio伴生块

基于RTL的Z波GNURadio伴生块
EN

Stack Overflow用户
提问于 2019-03-10 13:37:13
回答 4查看 1.4K关注 0票数 2

我使用RTL-SDR通用dongle接收Z波协议的帧.我用的是真正的Z波装置。我使用的是替罪羊无线电,我还下载了EZ-Wave。然而,它们中没有一个实现所有Z波数据速率、调制和编码的块.我已经收到了一些使用EZ-Wave的原始解决方案的帧,但是我假设我不能以所有的数据速率、编码和调制接收帧。现在,我尝试根据它们的块来实现解决方案,以实现所有这些块。

Z-Wave procotol使用这些调制、数据速率和编码:

代码语言:javascript
复制
9.6 kbps - FSK - Manchester 
40 kbps - FSK - NRZ
100 kbps - GFSK - NRZ

这些是我的实际积木(现在根本无法收回任何东西):

例如,我将解释我对用于接收

代码语言:javascript
复制
9.6 kbps - FSK - Manchester 

RTL-SDR源

变量center_freq = 869500000

变量r1_freq_offset = 800e3

Ch0:频率:中心_freq_3-R1_freq_偏移,所以我在RTL源块上有868.7 Mhz。

频率调制FIR滤波器

中心频率=-800 Mhz,频率为868.95 Mhz(欧洲)。老实说,我不知道我为什么这么做,我需要一个解释。我正在尝试根据EZ-Wave实现40 kbps-FSK-NRZ块来实现这些块(正如我所假设的)。他们使用采样率2M和不同的配置,这我不明白。

Taps = firdes.low_pass(1,samp_rate_1,samp_rate_1/2,5e3,firdes.WIN_HAMMING)。我不明白,什么应该是过渡体重(在我的例子中是5e3)

采样率= 19.2e3,由于数据速率/波特率为9.6Kbps,根据Nyquist抽样定理,采样率应至少是数据速率的两倍,因此2*9.6=19.2。因此,我试图将默认的200万美元从源代码重命名为19.2Kbps。

简单压缩

我使用默认值(-40),我不确定是否应该更改这个值。

正交模

应该做的FSK解调和我使用默认值的增益。我不确定这是否是一个正确的方式进行FSK解调。

增益= 2(samp_rate_1)/(2*math.pi*20e3/8.0)*

低通滤波器

采样率= 19.2k以使用相同的新采样率

截止Freq = 9.6k,我假设这是根据receiver.html

过渡宽度= 4.8,也是抽样率/2

时钟恢复MM

大多数参数都是默认的。

Omega = 2,因为samp_rate/baud

二进制Slicer

用于获取信号的二进制代码。

Zwave PacketSink 9.6

曼彻斯特的解码。

我想问,我应该改变在我的块上实现正确接收Z波帧在所有数据速率,调制和编码。当我开始接收时,我能够在FFT接收器和瀑布水槽看到来自我的设备的消息。消息调试不打印数据包(比如最初的EZ-Wave解决方案),而是只打印数据包。

代码语言:javascript
复制
Looking for sync : 575555aa
Looking for sync : 565555aa
Looking for sync : aa5555aa

根据曼彻斯特解码的C码,frame_shift_register,的值应该是多少(ZWave PacketSink 9.6)。我也看到过类似的帖子,不过这有点不同,老实说,我被困在这里了。

我将非常感谢您的帮助。

EN

回答 4

Stack Overflow用户

发布于 2019-03-11 10:06:15

让我们看看GFSK的案子。首先,RTL源2M波特的采样率相当高。对于最大的数据速率,100 kbps - GFSK,一个400 ~500 kbps的采样率就行了。也有电源堵塞块。这个块阻止低于某一阈值的信号通过。这并不好,因为它过滤可能包含信息的低功耗信号。在低通滤波器和MM时钟恢复块之间也存在采样率问题。符号恢复块的输出应为100 should (因为对于GFSK,采样率=符号速率)。使用omega值2并向后工作,MM块的输入应为200 should。但是,低通滤波器产生的样品在2 2Mbaud,是预期的10倍。你必须做适当的抽取。

我为我们的CubeSat实现了一次GFSK接收器。定时恢复由PFB块完成,比MM块更可靠。你可以在这里找到论文:sgd%5Bncwor%5D=0

关于接收器的更多细节也可以在这里找到:基于GNU无线电和USRP的GFSK调制解调

M.

票数 1
EN

Stack Overflow用户

发布于 2019-03-12 21:18:32

我很感激你的回答,我已经改变了我的样本价格。现在我还在研究9.6Kbps,FSK解调和曼彻斯特解码。目前,M&M时钟恢复的输出如下:

我想问你对这个信号有什么看法。正如我所说,它应该是FSK解调,然后我应该使用曼彻斯特解码。我还需要使用PCB块吗?初级,我必须做9.6kbps,FSK和曼彻斯特,所以我将看到100 left的GFSK NRZ,如果还会有一些时间。

票数 1
EN

Stack Overflow用户

发布于 2019-03-13 11:39:06

由于RTL限制(225001 ~ 300000和900001 ~ 3200000),采样率为1M。

当前区块:

我不明白:

调频FIR滤波器的抽头 firdes.low_pass(1,samp_rate_1,40e3,20e3,firdes.WIN_HAMMING)

截止频率与低通滤波器的过渡宽度

时钟恢复M&M也是如此,因此考虑它的值“随机”。

ClockRecovery输出:

根据你在的工作,我试图使用PCB块。然而,我没有成功,因为我仍然不理解时钟恢复背后的所有科学。

进行两次低通滤波是因为来自替罪羊-无线电的原始Z波块为40 40Kbps,FSK和NRZ编码是这样的(而且它可以工作):

所以我想我只会改变一些参数和解码器(Zwave PacketSink9.6)。

我还上传了我当前的区块这里

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55088247

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档