主要内容

接收器的频率偏移校正

这个例子展示了如何测量和校准的频率偏移的发射机和接收机之间的接收器使用MATLAB®和通信工具箱™。可以使用捕获实时信号或接收信号使用为RTL-SDR无线电通信工具箱支持包金宝app。接收器监测接收到的信号,计算发射机和接收机之间的频率偏移在MATLAB®命令窗口并显示它。

所需的硬件和软件

使用信号捕获运行这个例子,您需要以下软件:

实时接收信号,还需要以下硬件:

  • RTL-SDR广播

和下面的软件

完整列表的通信工具箱支持SDR平台,是指支持硬件部分金宝app软件定义无线电(SDR)发现页面

如果你选择接收信号实时使用收音机,你需要调整到一个已知广播导频音或提供与一个已知的中心频率信号源来建立一个基线。如果你没有一个信号发生器可用,您可以使用一个低成本的家庭广播服务对讲机作为源。注意,必须窄带信号源,用一个正弦波的理想来源。

背景

所有无线电接收器展览相比,发射机的频率偏移。在某些情况下,频率偏移可能超过接收机算法可以处理。因此,您可能需要调整你的接收机频率偏移量降到最低。

示例提供了以下的信息通信链接:

  • 赫兹的频率偏移的量化值和PPM

  • 定性的图形视图接收信号的信噪比水平

如果你有一个发射器,您可以使用它来生成一个窄带信号,比如一个基调。

如果你没有一个发射器,你可以使用一个广播信号。例如,在美国,电视的数字电视信号包括窄带射频载波的导频音。导频音通常309.440千赫以上的标称频率通道的底部边缘。如果这样的信号存在于你的区域,你可以预期的中心频率值设置为基调的频率。这个示例使用的导频音通道29日,也就是约560 e6 + 309.440 e3赫兹。频道数量和频率值的列表,看看北美电视频率

如果您正在使用一个RTL-SDR无线电接收机,指定显示PPM调整值作为FrequencyCorrection RTL-SDR接收机系统的属性对象™来补偿频率偏移。一定要在规范中使用的符号抵消。一旦你做到了,接收机的频谱分析仪系统的频谱显示对象应该有其最大振幅约为0 Hz。

运行示例

开始传输与已知的信号源。如果你在美国,你可以设定预期的中心频率附近的导频音数字电视发射机。然后,类型FrequencyOffsetCalibrationForReceiversExample在MATLAB命令窗口或点击“开放的例子”按钮打开并运行示例。

示例显示接收信号的频谱在-200赫兹到200赫兹的频率范围和输出频率偏移估计在赫兹和PPM命令窗口。所示,最大接收信号功率的频率大约是-35千赫。

示例代码

接收方要求用户输入并初始化变量。然后它调用信号源,直流阻断剂,粗调频率偏移估计量和频谱分析仪在一个循环中。广播时间的循环也跟踪使用帧持续时间。

%从命令行应用程序请求用户输入参数userInput = helperFrequencyCalibrationUserInput;%计算系统参数根据用户输入[fcParam, sigSrc] = helperFrequencyCalibrationConfig (userInput);%创建一个直流阻断剂系统对象删除的直流分量%接收信号,增加频率偏移估计的准确性。dcBlocker = dsp.DCBlocker (“算法”,“减的意思”);%创建一个粗频率偏移估计系统对象进行计算%的偏移量。系统对象执行其输入信号的FFT%找到最大功率的频率。这个量是频率%抵消。首席财务官= comm.CoarseFrequencyCompensator (“FrequencyResolution”25岁的“SampleRate”,fcParam.FrontEndSampleRate);%创建一个频谱分析仪来可视化信号频谱范围范围= dsp.SpectrumAnalyzer (“名字”,的实际频率偏移,“标题”,的实际频率偏移,“SpectrumType”,“权力”,“FrequencySpan”,“全部”,“SampleRate”fcParam.FrontEndSampleRate,“YLimits”[10]-40年,“SpectralAverages”,50岁,“FrequencySpan”,启动和停止的频率的,“StartFrequency”-200年e3,“StopFrequency”200年e3,“位置”figposition ([50 30 30 40]));

流处理

msgLength = 0;radioTime = 0;secondCounter = 1;radioTime < userInput。持续时间rxSig = sigSrc ();rxSig = dcBlocker (rxSig);[~,抵消]= CFO (rxSig);freqCorrection =(抵消/ fcParam.ExpectedFrequency) * fcParam.FrontEndSampleRate;%可视化频谱和打印结果范围(rxSig);如果radioTime > secondCounter流(repmat (“\ b”1、msgLength));味精= sprintf (['频率偏移= % f赫兹\ n”的频率调整值(Hz) = % f \ n '的频率调整值(PPM) = % f \ n '),偏移,偏移量,freqCorrection);流(味精);msgLength =元素个数(味精);secondCounter = secondCounter + 1;结束%更新广播时间radioTime = radioTime + fcParam.FrameDuration;结束%释放所有系统对象释放(sigSrc);释放(dcBlocker);释放(首席财务官);

结论

在本例中,您使用通信工具箱™系统对象建立一个接收器计算发射机和接收机之间的相对频率偏移。