前面介绍了基于Matlab、矢量信号器或微相E316、HackRF One实现AM和FM调制解调,今天分享的内容是用微相E316、上位机和Matlab实现FM电台信号监听。注意本文仅用于科研和学习,私自搭建电台属于违法行为。
1.概述
微相E316、上位机和Matlab实现FM电台信号监听测试框图如1所示:
图1 微相E316实现FM信号监听框图
通过上位机设置要采集的FM电台的频率、采样率和采集长度,完成FM电台信号的采集,然后将采集的FM调制IQ数据导入Matlab后,通过Matlab软件完成FM信号解调和播放。微相E316的网口和USB口连接计算机,如图2所示:
图2 微相E316和计算机接线图
微相E316的天线接收口连接天线,如图3所示。
图3 微相E316和天线接线图
2.微相E316软件框架
FPGA_PL端软件框架如图4所示,FPGA_PL端接收部分完成将AD9361采集的射频数据进行混频、下变频和AGC,并将AGC后的IQ数据通过datamover模块传到PS端,FPGA_PS端将接收到的IQ数据传给上位机,上位机完成数据接收和存数据文件。
图4 FPGA_PL端软件框图
3.上位机采集FM电台信号
步骤一:打开基于Matlab的上位机软件“sdr_soft.exe”,如图5所示;
图5 上位机软件
步骤二:打开“超短波电台”,如图6所示;
图6 超短波电台上位机
步骤三:设置IP地址,微相E316 IP地址:192.168.0.103,调试计算机IP地址192.168.0.33,连接成功提示如图7所示;
图7 上位机连接微相E316成功提示
步骤四:设置采集FM电台频率88.4MHz,收到提示参数下发成功,如图8所示;
图8 上位机设置采集FM信号频率
步骤五:设置采样率0.064MHz和采集长度1024000,收到提示参数下发成功,如图9所示;
图9 上位机设置采样率和采集长度
步骤六:选中“存文件”选项,然后点击“信号采集”,如图10所示;
图10 上位机设置存文件和采集开始
步骤七:等待采集完成,如图11所示;
图11 采集完成
4.Matlab解调FM信号
首先,将上一节采集的FM调制IQ数据x和采样率fs导入Matlab。根据如下FM解调公式,得到我们需要的源基带信号。
具体matlab解调代码如下:
%%%%%%%%%%%%%FM解调%%%%%%%%%%%%%%%%%%%%%%
adc_i = real(x);
adc_q = imag(x);
subplot(2,1,1);
plot(adc_i); title('FMµ÷ÖÆÐźÅ');
fm = 64000;
%重新检测数据长度
c_len = length(adc_i);
cr = zeros(1,c_len);
cj = zeros(1,c_len);
for i = 2: c_len %必须从2开始,因为有I-1 cr(i) = adc_i(i)*adc_i(i) +adc_q(i)*adc_q(i);cj(i) = adc_i(i-1) * adc_q(i) - adc_i(i)* adc_q(i-1);%I(n-1)*Q(n) -I(n)*Q(n-1)
end
angle = zeros(1,c_len);
for i = 1:c_lenif cr(i) == 0angle(i) = 0;else angle(i) = (cj(i)/cr(i))*2 ^16; %FPGA 中没有小数,要进行量化end
endd_len = length(angle);
sum = 0;
cnt = 0;
demout = zeros(1,fix(d_len*(fm/fs)));
d_cnt = 1;
for i= 1:d_lensum = sum + angle(i);if cnt == fs/fm demout(d_cnt) = sum /cnt;d_cnt = d_cnt + 1;cnt = 0;sum= 0;endcnt = cnt + 1;
end
demout = 1*demout/max(abs(demout));
subplot(2,1,2);
plot(demout);title('FM解调后的信号');
sound(demout,fm);
FM信号和解调信号时域波形如图12所示。
图12 FM调制信号和解调信号
5.采样率0.32MHz采集FM电台信号
上位机修改采样率为0.32MHz,其他参数不变,采集完成提示如图13所示,在Matlab里完成FM信号解调,FM调制信号和解调信号时域波形如图14所示。
图13 上位机采集完成
图14 FM调制信号和解调信号
6.采样率0.64MHz采集FM电台信号
上位机修改采样率为0.64MHz,其他参数不变,采集完成提示如图15所示,在Matlab里完成FM信号解调,FM调制信号和解调信号时域波形如图16所示。
图15 上位机采集完成
图16 FM调制信号和解调信号
第4-6节,比较将上位机设置不同采样率采集的IQ数据导入Matlab后解调并播放,我们发现采样率64KHz时,由于带宽小,解调后的信号收听效果比较差,有明显杂音,而采样率320KHz和640KHz时,解调后的信号听起来比较清晰。