使用FM收音机发送.dat文件时接收正确的值

时间:2015-02-24 02:13:03

标签: matlab audio gnuradio usrp software-defined-radio

我是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作为接收器。

1 个答案:

答案 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