我是GNU Radio的新手,我正在尝试使用它和USRP B210主板传输值。
我使用Matlab将值0.121
转换为wav格式,然后使用GNU Radio中的audio_to_file
示例将wav文件转换为.dat文件。
当我使用B210和GNU Radio传输.dat
文件时,我收到了一个wav文件但是当我使用matlab函数(audioread()
)读取wav时,我得到了不同的值。
P.S。
转换后的.dat文件的采样率为44100 Hz,每个样本16位。
接收器和发射器采样率为400K Hz。
我使用GNU Radio包中的fm_tx4.py
示例作为我的发射器。
我使用uhd_nbfm_receiver.grc
作为接收器。
答案 0 :(得分:0)
如果您想知道为什么接收到的信号与您发送的信号幅度不同,那么您就无法获得无线电通信的基本信息:因为您之间没有数字线路发射器和接收器,功率可以到达任何地方,接收器的数量取决于很多因素,包括增益,天线,距离,匹配...
RX侧会有更多不同于TX侧的东西:您的接收时间不同步,因此您可能会看到相移。你没有提到接收器是相同的,时钟同步的还是时钟独立的B210,这意味着你有一般情况,没有两个物理时钟可以相同(是的,这是不可能的) ,但你可以减少错误),所以你通常也会看到一些频率偏移。
我建议您阅读基本的无线电通信理论,我经常推荐GNU Radio的pictured introduction和GNU Radio的suggested Reading Page。 Michael Ossmann对他的课程也有一定的认可,所以你应该definitely have a look at them。
此外,您的所有数据 - > Wav->传输转换完全没有必要。 Matlabs fread
/ fwrite
函数可以读取/存储GNU Radio的file_sink
/ file_source
可以存储/读取的本机机器浮动格式。请参阅FAQ entry。