主要内容

Simulink中Adalm-Pluto收音机的频率校正万博1manbetx

此示例显示如何使用ADALM-PLUTO无线电接收器块的频率校正参数同步两个PLUTOSDR的基带采样率和中心频率。

Plutosdr的基带采样率和中心频率从相同的振荡器进行物理衍生。尽管每个Plutosdr都是工厂校准的,但是使用适当的PLL设置来数字地补偿振荡器的组件变化,因此由于量化效果和操作条件的变化(特别是温度),补偿是不完美的。因此,即使两个PLUTOSDRS的相应系统对象或类似的基带采样率和相同的中心频率,也将以稍微不同的基带采样速率和中心频率运行两个PLUTOSDR。万博1manbetx为了解决这个问题,可以使用adAlm-pluto无线电接收器块的频率校正参数。

频率校正参数指定基带采样率和中心频率的百万分之一变化。默认值为0,这意味着无线电将使用其工厂校准的PLL设置。在本例中,我们将发射机PlutoSDR视为具有准确基带采样率和中心频率的源.我们使用另一个PlutoSDR(接收器)接收的信号来估计接收器块的正确频率校正值,并表明当频率校正设置适当时,接收音调的频率将非常接近80 kHz,即发送音调的频率。

参考开始有关配置主机以使用PlutoSDR的详细信息的文档。

频率校正估计算法

考虑从一个plutosdr传输到另一个plutosdr的信号。让$f{c}$$f{s}$是发射机的中心频率和基带采样率。让$ f_ {c'} $$ f_ {s'} $是接收器的中心频率和基带采样率。假设发射器的振荡器没有漂移,并且接收器的振荡器已经被一个因素漂移$K$,即。$f{c'}=K*f{c}$$ f_ {s'} = k * f_ {s} $哪里$K$是一个非常接近1的数字。

基带频率的音调$f{ref}$在这种情况下,发送的信号将以基带频率的音调出现$ f_ {收到} $在接收器中,在哪里$f{received}={{f{ref}+(f{c}-K*f{c}}\over{K}$.期限$(f{c}-K*fc)$分子中的不匹配是由于中心频率的不匹配$K$分母的不匹配是由于基带采样率的不匹配。因此,我们可以解决$K$具有$f{ref}$,$ f_ {收到} $, 和$f_c$.$K={f_c+f_{ref}}\over{f_c+f_{received}}$.

为了消除发射机和接收机之间的频率偏移,我们需要将基带采样率和接收机的中心频率按$1\K以上$.让$p$是每百万百万的改变对基带采样率和接收器的中心频率。然后$1+{p\over 10^6}={1\over K}$因此$p={{f{ref}}-f{ref}}\over{f{c}+f{ref}}*10^6$.

设置发射器和接收器

我们使用一个PlutoSDR发送三个20、40和80 kHz的音调。80 kHz的音调用于估计接收机的频率校正值。20和40 kHz的音调仅用于帮助可视化频谱。

%设置参数和信号Samplere = 200e3;CenterFreq = 2.42E9;Fref = 80e3;s1 = exp(1j * 2 * pi * 20e3 * [0:10000-1]'/ samplerge);%20千赫s2=exp(1j*2*pi*40e3*[0:10000-1]'/采样器);%40千赫s3 = exp(1j * 2 * pi * fref * [0:10000-1]'/ samplege);%80千赫s=s1+s2+s3;s=0.6*s/max(abs(s));%缩放信号以避免在时域中的剪辑%设置发射器%将默认值0用于FrequencyCorrection,它对应于%出厂校准状态tx=sdrtx(“冥王星”,'镭射,'USB:1','中心罚款',centerFreq,...'BaseBandSamplerate',采样器,“收益”, 0,...“ShowAdvancedProperties”,对);%使用INFO方法来显示各种硬件相关的实际值%性质txradioinfo =信息(Tx)%发送信号DISP('以20、40和80 kHz的频率发送3个音调');传输(TX,S);%打开接收器模型Open_System('plutoradiofrequencycorrectionrx')%运行接收器。检测到的频率可能远离80 kHzDISP('运行接收器......');SIM('plutoradiofrequencycorrectionrx')disp(['检测到的频率为'num2str(peakFreq/1000)'khz。']);
##建立与硬件的连接。这个过程可能需要几秒钟。txradioinfo = struct with字段:状态:'全信息'中心频率:2.4200E + 09基带:20102300260902167028'增益:0 radiofirmwareversion:“0.30”的预期文件:“0.30”硬发行:“A0”频率粗糙:0发送3个音调在20,40和80 kHz ##时建立与硬件的连接。这个过程可能需要几秒钟。##波形传输已成功启动,无限期地重复。##调用释放方法来停止传输。运行接收器... ##建立与硬件的连接。这个过程可能需要几秒钟。检测到的频率为68.0386 kHz。

估计频率校正值

额外修正=(峰值频率-频率)/(中心频率+频率)*1e6;

应用频率校正值

自从$(1+ {p_1} / 10 ^ 6)*(1+ {p_2} / 10 ^ 6)= 1 +({p_1} + {p_2} + {p_1} * {p_2} * 10 ^ { -  6})/ 10 ^ 6 $,应用两个更改$p_1$$p_2$“连续”相当于应用一次$ {p_1} + {p_2} + {p_1} * {p_2} * 10 ^ { -  6} $关于工厂校准条件。

currentfrequencycorrection = str2double(...获取参数('plutheradiofrequencycorrectionrx / adalm-pluto无线电接收器',...“频率校正”))newFrequencyCorrection=当前频率校正+附加校正+...电流频率校正*附加校正*1e-6设置参数('plutheradiofrequencycorrectionrx / adalm-pluto无线电接收器',...“频率校正”,num2str(newfrequencycorrection,'%.12f')))
CurrentFrequencyCorrection = 0 NewFrequencyCorrection = -4.9426

验证结果

再次运行接收器。检测到的频率应接近80 kHz。

DISP('再次运行接收器…');SIM('plutoradiofrequencycorrectionrx')disp(['检测到的频率为'num2str(peakFreq/1000)'khz。']);%释放发射机无线电释放(tx);
再次运行接收器…##建立与硬件的连接。此过程可能需要几秒钟。检测到的频率为80.04 kHz。