我使用RTL-SDR通用dongle接收Z波协议的帧.我用的是真正的Z波装置。我使用的是替罪羊无线电,我还下载了EZ-Wave。然而,它们中没有一个实现所有Z波数据速率、调制和编码的块.我已经收到了一些使用EZ-Wave的原始解决方案的帧,但是我假设我不能以所有的数据速率、编码和调制接收帧。现在,我尝试根据它们的块来实现解决方案,以实现所有这些块。
Z-Wave procotol使用这些调制、数据速率和编码:
9.6 kbps - FSK - Manchester
40 kbps - FSK - NRZ
100 kbps - GFSK - NRZ这些是我的实际积木(现在根本无法收回任何东西):

例如,我将解释我对用于接收
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解决方案),而是只打印数据包。
Looking for sync : 575555aa
Looking for sync : 565555aa
Looking for sync : aa5555aa根据曼彻斯特解码的C码,frame_shift_register,的值应该是多少(ZWave PacketSink 9.6)。我也看到过类似的帖子,不过这有点不同,老实说,我被困在这里了。
我将非常感谢您的帮助。
发布于 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.
发布于 2019-03-12 21:18:32
我很感激你的回答,我已经改变了我的样本价格。现在我还在研究9.6Kbps,FSK解调和曼彻斯特解码。目前,M&M时钟恢复的输出如下:

我想问你对这个信号有什么看法。正如我所说,它应该是FSK解调,然后我应该使用曼彻斯特解码。我还需要使用PCB块吗?初级,我必须做9.6kbps,FSK和曼彻斯特,所以我将看到100 left的GFSK NRZ,如果还会有一些时间。
发布于 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)。
我还上传了我当前的区块这里。
https://stackoverflow.com/questions/55088247
复制相似问题