PlutoSDR matlab无线通信系统学习+实战——基于FM的语音传输(一)

上一篇文章介绍了基于单载波QPSK的无线图片传输系统,本章给大家分享一个基于FM调制的语音传输系统。

FM是模拟调制中的一种,也就是频率调制。就是把基带信号用载波的频率来承载。直接的表现方式是调角,也是一种非线性调制。FM调制解调的原理也非常的简单,并且网上的资料非常多,在本文中就不做过多的介绍,文章着重介绍系统的基本功能。

首先,该系统使用的是plutosdr软件无线电实现的FM的信号发送和接受,上图中展示了为该系统设计的UI界面,该界面中展示了系统的基本参数:系统支持自定义的语音文件进行下拉数据框的选择,为发送端选择需要发送的语音文件,语音文件是模拟信号。

在接收端进行FM解调,解调得到的语音信号会进行保存,在UI界面上支持对接收端的语音数据进行保存,保存下来的信号可以继续进行分析和回放。

下面介绍一下系统的配置参数:

%Pluto发送参数设置
sdrTransmitter = sdrtx(deviceNameSDR); % Transmitter properties
sdrTransmitter.RadioID = 'usb:0';
sdrTransmitter.BasebandSampleRate = fs;    %采样频率
sdrTransmitter.CenterFrequency = sim_options.carr_f*1e9;    %载波中心频率
sdrTransmitter.ShowAdvancedProperties = true;
sdrTransmitter.Gain = 0;
    
%Pluto接收端参数
sdrReceiver = sdrrx(deviceNameSDR);
sdrReceiver.RadioID = 'usb:0';
sdrReceiver.BasebandSampleRate = fs;    %采样频率
sdrReceiver.CenterFrequency = sim_options.carr_f*1e9;   %载波中心频率
sdrReceiver.Gain = 30;       %接收端增益

接收端和发送端的参数采用了UI界面动态参数配置和部分静态配置的方式。在UI界面中设置了信号的采用带宽和载波的中心频率。

参数配置完成后,对加载的信号进行播放,即听一下发送端的语音信号,然后将信号送入FM调制器,经过发送天线,信号发送出去。经过无线信道后,信号经过接收天线到达接收端,将接收的信号送入FM解调器,就得到了解调后的语音信号,将解调后的语音信号也进行播放,就可以和发送端的信号进行对比。将接收到的语音信号按照UI界面上的文件名进行保存,整个系统就完成了语音信号的发送和接收。系统收发完成后,会弹出信号收发完成的窗口。同时展示运行过程中记录的信号波形:

最终结果会显示接收端和发送端的音频信号对比:

接收端和发送端的语音信号对比并不相同,但是接收端和发送端的音频信号用人耳基本没有区别,因为FM采用的是模拟调制,解调的信号会包含噪音等。同时还会显示接收端和发送端的时域信号对比以及频域对比:

基于FM的图传系统的基本内容差不多就结束了,下面是对应的代码链接:

通过网盘分享的文件:链接: https://pan.baidu.com/s/1ej2QPOfbFo1ct9iD1gDPNw?pwd=jv5h 提取码: jv5h

https://m.tb.cn/h.6ihqjpA?tk=B2QSVY0Rluchttps://m.tb.cn/h.6ihqjpA?tk=B2QSVY0Rluc

本次介绍就到这里,下期再见!

上一篇:

PlutoSDR无线通信系统学习+实战——QPSK无线图片收发系统(一)-CSDN博客

下一篇文章:

PlutoSDR无线通信系统学习+实战——基于OFDM数字语音传输系统(一)-CSDN博客

PlutoSDR matlab无线通信系统学习+实战——提升数据传输速率,实现彩色图片收发-CSDN博客

### PlutoSDR 使用指南 #### 连接与初始化 当首次使用 PlutoSDR 设备时,需将其插入计算机的 USB 接口。对于 Windows 系统,操作系统可能会花费数分钟时间来识别硬件并自动安装所需的驱动程序[^2]。 #### 更改设备 IP 地址 如果默认的 IP 地址 `192.168.2.1` 无法正常工作,可能是由于本地网络中已有相同子网的存在(如 `192.168.2.x`),或者需要支持多台 PlutoSDR 同时运行,则可以通过修改配置文件实现自定义 IP 设置: 1. 插入 PlutoSDR 后,在主机上会挂载个名为 **PlutoSDR** 的虚拟 U盘。 2. 打开该磁盘中的 `config.txt` 文件,并手动输入新的静态 IP 地址。 3. 安全卸载这个虚拟 U盘(注意不要直接拔掉 PlutoSDR)。 4. 几秒后重新插拔 PlutoSDR 设备电源以应用更改。 5. 可再次打开 `config.txt` 来验证新设置是否生效[^1]。 #### 软件开发环境准备 为了更好地利用 PlutoSDR 开展信号处理实验,推荐参考 PySDR 教程学习如何借助 Python 编写脚本控制 SDR 并执行数字信号处理 (DSP) 功能。这通常涉及以下几个方面: - 安装 GNU Radio 框架及其配套组件; - 下载适用于 PlutoSDR 的 GRC 流图模板; - 利用 Matplotlib 库绘制频谱分析图表等可视化数据展示功能。 以下是基于 Python 实现简单扫描频率范围内 RSSI 值变化情况的个例子: ```python import adi import numpy as np from matplotlib import pyplot as plt sdr = adi.Pluto('ip:192.168.2.1') frequencies_to_check = range(2_400_000, 2_500_000, int(1e5)) rssi_values = [] for freq in frequencies_to_check: sdr.rx_lo = freq data = sdr.rx() rssi_val = 10 * np.log10(np.mean(data.real**2 + data.imag**2)) rssi_values.append(rssi_val) plt.plot(frequencies_to_check, rssi_values) plt.xlabel('Frequency (Hz)') plt.ylabel('RSSI Value') plt.title('Signal Strength Across Frequencies') plt.show() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值