当前位置: 首页 > news >正文

《基于GNU-Radio和USRP的雷达通信系统的实现》文献阅读

文章目录

  • 前言
  • 一、摘要
  • 二、引言
  • 三、联合系统实施
    • 1、基本原理
    • 2、实验方案
  • 四、软件设置
    • 1、发射机
    • 2、接收机
  • 五、实验结果
    • 1、实验设置
    • 2、波形
    • 3、室内外对比
    • 4、不同参数的结果
  • 六、结论
  • 七、参考文献
  • 八、论文自取
  • 九、阅读收获


前言

在这里插入图片描述

本文记录《基于GNU-Radio和USRP的雷达通信系统的实现》(Implementation of Radar-Communication System based on GNU-Radio and USRP)文献阅读学习。

  • 作者及单位:刘宇,杜震,张富强,张增辉,余文先,上海交通大学上海市智能感知与识别重点实验室

  • 发表时间:2019 年

  • 论文类型:会议论文

  • 出版机构:IEEE(电气和电子工程师协会)


一、摘要

正交频分复用(OFDM)在无线通信中得到了广泛应用,其雷达性能最近也受到了很多关注。在本文中,我们建立了一个联合雷达-通信的软件定义无线电(SDR)平台,以 GNU-Radio 作为控制软件,以 USRP 作为其前端。我们使用不同的参数和实验环境进行了多组实验,同时也对获得的结果进行了比较和分析。

二、引言

\hspace{2em} 传统的雷达和通信系统在设计上是独立的,主要考虑到不同波形之间的干扰问题。由于多载波波形的成功应用,例如正交频分复用(OFDM),该技术已被广泛应用于几乎所有当前及即将到来的无线通信标准中【1】,因此 OFDM 波形的雷达探测性能引起了广泛关注。
\hspace{2em} 使用单一的 OFDM 波形实现雷达和通信功能有几个优势。从雷达中心的角度来看,雷达系统的距离(或延迟)分辨率与传输信号带宽成反比【2】。OFDM 调制系统的更宽频率扩展能够提升雷达测量性能。这种两种功能的融合能够实现协同效应,例如允许雷达系统与网络中的其他参与者通信,创建一个协作的雷达系统【3】,这在车辆系统中尤其有用。
\hspace{2em} 本文建立了一个雷达-通信系统,该系统由两个 USRP(通用软件无线电外设)作为硬件平台进行信号的发送和接收。系统由 GNU-Radio 作为命令软件控制。通过有意改变实验参数和环境(室内和室外),进行了多组实验。通信数据处理链使用 GNU-Radio 开发,雷达数据在 MATLAB 中处理,分别计算比特错误率和获得匹配滤波结果。比较和分析了雷达-通信系统在不同场景下的性能。
\hspace{2em} 本文的结构安排如下:第二部分介绍联合系统的基本原理和系统实施。第三部分展示实验设置并总结结果。最后,第四部分得出结论。
联合系统实施

三、联合系统实施

1、基本原理

\hspace{2em} OFDM 信号由并行的正交子载波组成,每个子载波都调制有数据【4】。一个OFDM符号表示为:
在这里插入图片描述
\hspace{2em} 其中, s [ m ] s[m] s[m] 表示被调制的原始数据, N N N 表示子载波数。对于理想的通信系统,接收端的信号为:
在这里插入图片描述
其中 h [ l ] h[l] h[l] 为信道影响, v [ n ] v[n] v[n] 为噪声。但在现实中,时延和载波频偏是不可避免的。实际接收到的信号将是:
在这里插入图片描述
式中 e j 2 π ε n e^{j2\pi \varepsilon n} ej2πεn 为载波频偏, D D D 为时延的影响。然后引入基于训练序列的相关性和周期性的 Schmidl-Cox算法【5】来估计这两个值,以校正偏差。
\hspace{2em} Schmidl-Cox 算法可以简单概括为:首先计算接收信号的相关性
在这里插入图片描述
\hspace{2em} 接收信号的平均功率等于:
在这里插入图片描述
\hspace{2em} 接下来,评估函数被建立如下:
在这里插入图片描述
\hspace{2em} 根据 M [ d ] M[d] M[d],时延参数可估计为
在这里插入图片描述
\hspace{2em} 频率偏移参数是
在这里插入图片描述
\hspace{2em} 与其他雷达系统一样,OFDM雷达通过发送信号并接收该信号从物体上的反射来工作。其主要区别在于,传输的信号原本不是为雷达目的设计的(如FMCW信号),而是用于传递信息【3】。
\hspace{2em} 雷达探测的性能可以通过匹配滤波结果来评估。由于目标信息与回声信号中的噪声混合,匹配滤波操作的实施是将预存的发送数据与接收数据的共轭进行互相关。
在这里插入图片描述
\hspace{2em} 其中 S t x S_{tx} Stx 表示发送序列, S r x S_{rx} Srx 表示接收序列。如果检测到目标,则在上述方程的输出中将出现一个尖峰。在我们的实验中,通过观察匹配的滤波结果和回波的频谱来表征雷达的探测性能。

2、实验方案

\hspace{2em} 采用两个 usrp 建立雷达通信系统。使用一台 USRP X310 作为发射机,配备 UBX-160 子板,可在最大 160MHz 带宽下工作。载波频率从 10MHz 到 6GHz 可调。另一个 USRP N310 作为接收器,它提供 4 个接收和 4 个发送通道同时工作。每个通道提供高达 100MHz 的瞬时带宽。
\hspace{2em} 两个 usrp 都配备了喇叭天线,具有定向模式,因此我们可以获得更强的回波信号。每个 usrp 通过以太网电缆连接到一台电脑。
\hspace{2em} GNU-Radio 是一个实现软件定义无线电的开源软件。在我们的实验中用于控制 usrp 的收发器流程图是基于 GNU-Radio 提供的信号处理模块开发的。完整的实验方案如图 1 所示,包括雷达-通信联合发射机、通信接收机、雷达接收机和目标。
在这里插入图片描述
\hspace{2em} 雷达探测实验必须在收发时间同步的条件下进行。设备间的同步是通过连接同一个外部时钟源来实现的。在相对空旷的情况下,我们接收和保存不同距离的回波信号。然后执行信号处理(例如匹配滤波器)以验证是否找到目标。将匹配滤波结果和回波信号频谱作为反映雷达性能的主要参考
\hspace{2em} 在通信实验中,我们观察了不同通信距离下接收信号的频谱通过比较传输数据和解调后的接收数据,计算误码率,评估不同实验参数下的通信性能

四、软件设置

1、发射机

\hspace{2em} 图 2 和图 3 给出了发射机的设置流程图,包括元数据的生成和 OFDM 调制。如图 2 所示,将数字数据流转换成数据包,并生成循环冗余校验(CRC)码,用于接收端错误检测。然后,在有效载荷位前面添加报头位,以标识打包数据的开始,然后进行星座映射。此时,数据以串行的复数形式呈现。
在这里插入图片描述
\hspace{2em} 我们将预定的导频符号分配给相应的导频载波,并应用串行到并行转换。导频符号用于报文同步。然后对并联的复数据进行 IFFT 运算,将频域数据转换为时域数据。在每个符号中插入循环前缀,就得到要发送的完整时域数据,如图 3 所示。
在这里插入图片描述
\hspace{2em} 发射器 USRP 将基带数据上转换为传输频率,并通过无线信道发送。

2、接收机

\hspace{2em} 图 4 和图 5 描述了接收器的处理链路,负责根据星座图方案转换接收到的数据,并从数据包中提取有效载荷比特。
\hspace{2em} 如图 4 所示,“UHD: USRP Source” 模块控制接收器 USRP 将接收到的信号下变频回基带。在通信实验中,然后应用 Schmidl-Cox 算法实现数据包同步和载波同步(频偏估计)。
在这里插入图片描述
\hspace{2em} 解调 OFDM 信号的第一步是进行 FFT 操作。之后,使用导频符号进行信道估计。然后得到复数数据,这些数据根据传输星座图进行解映射,详见图 5。
在这里插入图片描述

五、实验结果

\hspace{2em} 在通信实验中,我们利用 GNU-Radio 的发送数据和解调后的接收数据直接计算误码率。在雷达探测实验中,对同步发射信号和同步接收信号进行存储,并在 MATLAB 中进行匹配滤波。

1、实验设置

\hspace{2em} 传输的 qpsk 调制 OFDM 信号由 64 个子载波组成,其中 52 个子载波被用来调制数据。其中,4 个子载波用于放置导频符号,48 个子载波用于调制有效载荷位。发射机增益为 31.5dB 以满足最大发射功率 100mw,接收机增益设为 20dB。传输信号的带宽为10MHz。

\hspace{2em} 如前一节所述,我们的实验是在不同的参数和环境下进行的(见图6)。这些变量如下:

  • 中心频率:我们选择了三种不同的中心频率(2.6GHz/3.5GHz/4.9GHz)来满足 5G 通信的要求。
  • 距离:可选择 20米、30米、40米三种不同的检测距离。
  • 除了不同的参数外,我们在室内和室外场景下进行了多次实验。

在这里插入图片描述
\hspace{2em} 在实验中,由于角反射器散射特性强,我们将其作为目标,使接收到的回波更加明显。

2、波形

在这里插入图片描述

图 7 实验环境为室内,中心频率为 2.6 GHz,目标距离为 20m 时的波形图

\hspace{2em} GNU-Radio 提供的图形块可以用来显示波形的时域和频域。图 7(a) 的上半部分表示发射波形的时域(实、虚),下半部分表示频谱。图 7(b) 显示了接收到的波形频谱。接收到的波形与相对平坦的噪声波形明显不同,表明接收到有效回波。

3、室内外对比

\hspace{2em} 为了比较通信和雷达探测在不同场景下的性能,我们在室内和室外进行了多组实验。
\hspace{2em} 在通信系统中,由于接收端对数据包的识别是基于报头位,而解调时又使用CRC码进行检错,因此在室内和室外实验中都能获得相似的通信性能。
\hspace{2em} 然而,雷达探测性能在不同场景之间存在显著差异。如图 8 所示,在相同参数下,室内距离 20m 处接收到的回波频谱与室外距离 40m 处接收到的回波频谱相似(形状和振幅)。此外,室内接收到的回波受杂波影响,频谱抖动明显且不稳定。
在这里插入图片描述

图 8 不同实验环境下的回波频谱

\hspace{2em} 同样,匹配滤波器结果的旁瓣相似,都在 -15 dB 左右,如图 9 所示。
在这里插入图片描述

4、不同参数的结果

\hspace{2em} 表 1 和表 2 总结了多组结果。我们计算误码率并确定雷达是否找到目标(通过观察匹配滤波结果中的尖峰)。
在这里插入图片描述
在这里插入图片描述
\hspace{2em} 在通信性能方面,室内场景接近室外,但雷达性能不如室外。原因可能是室内实验环境较为复杂,会出现各种干扰:杂波、多径等,而室外场景相对空旷,干扰较少。
\hspace{2em} 在误码率可接受的情况下(实际通信中不高于0.1),雷达可探测到 40m 范围内的目标。

六、结论

\hspace{2em} 在这项工作中,我们描述了一个由两个 USRP 设备组成的联合雷达通信系统的实现细节。此外,我们还说明了使用 GNU-Radio 开发该系统的可行性。
\hspace{2em} 在我们的方案中,我们考虑单输入、单输出架构,通过不同的实验参数和场景进行多组实验。通过计算误码率来衡量通信质量,并对匹配的滤波结果进行处理来评估雷达探测性能。最后对这些结果进行了比较,并做了一些推论和总结。

七、参考文献

[1] R. M. Gutierrez, A. Herschfelt, H. Yu, H. Lee and D. W. Bliss, "Joint
radar-communications system implementation using software defined
radios: Feasibility and results," in 51st Asilomar Conference on
Signals, Systems, and Computers, Pacific Grove, CA, pp. 1127-1132,
2017
[2] J. Ellinger, Z. Zhang, M. Wicks and Z. Wu, "Multi-carrier radar
waveforms for communications and detection," in IET Radar, Sonar
& Navigation, vol. 11, no. 3, pp. 444-452, 3 2017.
[3] Braun, M., M. Muller, M. Fuhr, and F. K. Jondral, "A USRP-based
testbed for OFDM-based radar and communication systems," in
Proceedings of 22nd Virginia Tech. Symposium on Wireless
Communications, Blacksburg, Jun. 2012.
[4] Y. Leen, C. Sturm, L. Reichhardt, T. Zwick, and W. Wiesbeck, “The
OFDM joint radar-communication system: An overview,” in The
Third International Conference on Advances in Satellite and Space
Communications, 201 SPACOMM, 2011.
[5] T. M. Schmidl, D. C. Cox, "Robust frequency and timing
synchronization for OFDM," in IEEE Transactions on
Communications, vol. 45, no. 12, pp. 1613-1621, Dec. 1997.

八、论文自取

链接:Implementation of Radar-Communication System based on GNU-Radio and USRP

九、阅读收获

\hspace{2em} 首先,这篇会议论文提供了一种使用 GNU Radio 和 USRP 实现雷达通信一体化波形收发的方法,通过这种方法可以实现到目标的距离的测量及通信的功能,我认为可以在此基础上做以下改进会增加内容的可信度和工作量的丰满度:

  • 建议在上面的基础上实现测速功能;
  • 建议通信及测距的功能可以在线实现,而非离线采用 MATLAB 处理;
  • 匹配滤波测距的仿真图不够明显,图中未明显体现当前测距是 20m 还是 40m;
  • 文中有介绍在收发时间同步的条件下进行,设备间的同步是通过连接同一个外部时钟源来实现的,但是未介绍如何使用 MATLAB 对收到的数据处理再匹配滤波实现测距,建议此步骤可描述详细些例如加一些处理流程框图;

以上建议均是个人愚见,不喜勿喷~


我的qq:2442391036,欢迎交流!


相关文章:

《基于GNU-Radio和USRP的雷达通信系统的实现》文献阅读

文章目录 前言一、摘要二、引言三、联合系统实施1、基本原理2、实验方案 四、软件设置1、发射机2、接收机 五、实验结果1、实验设置2、波形3、室内外对比4、不同参数的结果 六、结论七、参考文献八、论文自取九、阅读收获 前言 本文记录《基于GNU-Radio和USRP的雷达通信系统的实…...

Sealos急速部署生产用k8s集群

最近一段时间部署k8s全部使用sealos了,整体使用感觉良好,基本没有什么坑。推荐给大家。 使用 Sealos,可以安装一个不包含任何组件的裸 Kubernetes 集群。 最大的好处是提供 99 年证书,用到我跑路是足够了。不用像之前kubeadm安装…...

VTK数据的读写--Vtk学习记录1--《VTK图形图像开发进阶》

读和写操作是VTK可视化管线两端相关的类--Reader和Writer类 Reader:将外部数据读入可视化管线,主要步骤如下 s1:实例化Reader对象 s2:指定所要读取的文件名 s3:调用Update()促使管线执行 对应的Writer: s1:实例化Writer对象 s2输入要写的数据以及指定写入的文…...

Vue3专栏项目 -- 一、第一个页面(下)

一、Dropdown 组件(下拉菜单组件)编码 1、基本功能:展示出下拉按钮和下拉菜单栏的样式 我们可以通过bootstrap来实现这个下拉框,需要注意它这个只是有样式,是没有行为的 然后这个下拉按钮的文字展示是根据用户名称展…...

一栈走天下:使用HBuilderX高效搭建Uni-App微信小程序开发环境

一栈走天下:使用HBuilderX高效搭建Uni-App微信小程序开发环境 Uni-App与HBuilderX简介Uni-App基础HBuilderX介绍 环境搭建步骤步骤1:安装HBuilderX步骤2:创建Uni-App项目步骤3:配置微信小程序平台步骤4:预览与发布 代码…...

docker安装Debian:11 freeswitch1.10.5

文章目录 一、生成一个镜像二、切换一个镜像源为阿里源三、安装一些相关依赖和freeswitch3.1第一步:安装freeswitch-mod和下载所需的依赖项3.2 设置密钥3.3 安装freeswitch所需的依赖项3.4 报错3.4.1 报错13.4.2 报错23.4.3 报错3 四、运行4.1 通话三十秒自动挂断 一…...

c3 笔记6 认识css样式表

<link>与import应该如何选择?事实上&#xff0c;使用link与import链接外部样式文件的效果看起来是一样的&#xff0c;区别在于<link>是HTML标记而import属于CSS语法。<link>标记有rel、type与href属性&#xff0c;可以指定CSS样式表的名称&#xff0c;这样就…...

基于springboot+mybatis+vue的项目实战之增删改查CRUD

目录结构 PeotController.java package com.example.controller;import com.example.pojo.Peot; import com.example.pojo.Result; import com.example.service.PeotService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web…...

字节跳动(社招)四面算法原题

TikTok 进展 又是一期定时汇报 TikTok 进展的推文。 上周&#xff0c;美国总统拜登签署了价值 950 亿美元的一揽子对外援助法案。 该法案涉及强制字节跳动剥离旗下应用 TikTok 美国业务&#xff0c;即 针对 TikTok 非卖即禁的"强抢行为"开始进入九个月&#xff08;27…...

车道线检测交通信号识别车辆实时检测

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录 系列文章目录前言车道线检测机器学习前言 认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长! 本文先对车道线检测&交通信号识别&…...

用正则表达式打造免费代理IP池

爬虫的过程中&#xff0c;当对方服务器发现你屡次爬取它&#xff0c;可能会遇到被封IP的苦痛&#xff0c;这时IP就应该换啦&#xff0c;打造IP池的意义十分重要&#xff0c;提供免费IP网站有很多&#xff0c;本次用的是西刺代理IP # -*- coding: utf-8 -*- """…...

【每日刷题】Day35

【每日刷题】Day35 &#x1f955;个人主页&#xff1a;开敲&#x1f349; &#x1f525;所属专栏&#xff1a;每日刷题&#x1f34d; &#x1f33c;文章目录&#x1f33c; 1. 844. 比较含退格的字符串 - 力扣&#xff08;LeetCode&#xff09; 2. 2487. 从链表中移除节点 - 力…...

Python数据清洗与可视化实践:国际旅游收入数据分析

文章目录 概要整体流程名词解释NumPyPandasMatplotlibre 技术细节数据清洗可视化 小结 概要 在本篇博客中&#xff0c;我们将通过一个实际的案例&#xff0c;演示如何使用Python进行数据清洗和可视化&#xff0c;以分析国际旅游收入数据。我们将使用Python中的Pandas库来进行数…...

前置知识储备

基本认知 什么是模式 在一定环境中解决一些问题的方案&#xff08;通俗来说&#xff1a;特定环境中用固定的套路解决问题&#xff09; 什么是设计模式 设计模式是一套反复被人使用&#xff0c;多数人知晓的&#xff0c;经过分类编目的代码设计经验的总结 设计模式最终的目…...

六月品牌互动营销方案的作用是什么

品牌需要借势营销&#xff0c;六月的六个节日热点&#xff0c;是企业商家不能错过的&#xff0c;如何运用合适的工具/方法借势也同样重要。 互动h5游戏/传单页面发挥不同效果&#xff0c;这份《六月品牌互动营销方案》看看有哪些内容吧~ 1、儿童节 宜&#xff1a;回忆欢乐营销…...

dummy_worker C++ 预占用部分比例cpu资源,人为创造cpu资源紧张

背景 有时候为了C测试程序在cpu资源紧张情况下是否正常&#xff0c;需要人为创造cpu资源紧张 编译方法 g -o dummp_worker dummp_worker.cpp -stdc11 -pthread 使用方法 ./dummp_worker 4 0.2 占用4个cpu核的20%比例的cpu资源 源码 // dummp_worker.cpp #include <c…...

电脑缺失opencl.dll怎么办,轻松解决opencl.dll的多种方法分享

当我们在操作电脑过程中遇到系统提示“由于找不到opencl.dll&#xff0c;无法继续执行代码”&#xff0c;这个错误会导致软件应用无法正常运行。OpenCL.dll作为一个与Open Computing Language&#xff08;开放计算语言&#xff09;相关的动态链接库文件&#xff0c;它在执行需要…...

el-select 点击按钮滚动到选择框顶部

主要代码是在visibleChange 在这个 popper 里面找到 .el-select-dropdown__list let popper ref.$refs.popper const ref this.$refs.select let dom popper.querySelector(.el-select-dropdown__list) setTimeout(() > { dom.scrollIntoView() }, 800) <templat…...

vue 钩子函数updated什么时候触发

触发时机 updated是Vue生命周期钩子函数之一&#xff0c;在组件的数据变化导致虚拟DOM重新渲染并应用到实际DOM之后触发。具体来说&#xff0c;updated会在以下几种情况下被触发&#xff1a; 初始渲染完成后&#xff1a;当组件首次渲染完成并将虚拟DOM渲染到实际DOM之后&#…...

消息队列使用常见问题

一、消息丢失的时机&#xff1f; 生产端消息丢失 问题&#xff1a;因为网络异常导致消息发送失败&#xff0c;此时可能会产生消息丢失的情况&#xff0c;重试后可能产生消息重复生产的情况。 解决&#xff1a;超时重试&#xff0c;并在消费端保证幂等性。 消息队列中消息丢失 …...

css实现圆环展示百分比,根据值动态展示所占比例

代码如下 <view class""><view class"circle-chart"><view v-if"!!num" class"pie-item" :style"{background: conic-gradient(var(--one-color) 0%,#E9E6F1 ${num}%),}"></view><view v-else …...

【入坑系列】TiDB 强制索引在不同库下不生效问题

文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...

解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八

现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet&#xff0c;点击确认后如下提示 最终上报fail 解决方法 内核升级导致&#xff0c;需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...

CocosCreator 之 JavaScript/TypeScript和Java的相互交互

引擎版本&#xff1a; 3.8.1 语言&#xff1a; JavaScript/TypeScript、C、Java 环境&#xff1a;Window 参考&#xff1a;Java原生反射机制 您好&#xff0c;我是鹤九日&#xff01; 回顾 在上篇文章中&#xff1a;CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...

JDK 17 新特性

#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持&#xff0c;不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的&#xff…...

python报错No module named ‘tensorflow.keras‘

是由于不同版本的tensorflow下的keras所在的路径不同&#xff0c;结合所安装的tensorflow的目录结构修改from语句即可。 原语句&#xff1a; from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后&#xff1a; from tensorflow.python.keras.lay…...

C/C++ 中附加包含目录、附加库目录与附加依赖项详解

在 C/C 编程的编译和链接过程中&#xff0c;附加包含目录、附加库目录和附加依赖项是三个至关重要的设置&#xff0c;它们相互配合&#xff0c;确保程序能够正确引用外部资源并顺利构建。虽然在学习过程中&#xff0c;这些概念容易让人混淆&#xff0c;但深入理解它们的作用和联…...

华为OD机考-机房布局

import java.util.*;public class DemoTest5 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseSystem.out.println(solve(in.nextLine()));}}priv…...

【网络安全】开源系统getshell漏洞挖掘

审计过程&#xff1a; 在入口文件admin/index.php中&#xff1a; 用户可以通过m,c,a等参数控制加载的文件和方法&#xff0c;在app/system/entrance.php中存在重点代码&#xff1a; 当M_TYPE system并且M_MODULE include时&#xff0c;会设置常量PATH_OWN_FILE为PATH_APP.M_T…...

C# 表达式和运算符(求值顺序)

求值顺序 表达式可以由许多嵌套的子表达式构成。子表达式的求值顺序可以使表达式的最终值发生 变化。 例如&#xff0c;已知表达式3*52&#xff0c;依照子表达式的求值顺序&#xff0c;有两种可能的结果&#xff0c;如图9-3所示。 如果乘法先执行&#xff0c;结果是17。如果5…...