
简介本资源是一套面向雷达信号处理与遥感图像分析方向的MATLAB实践系统适用于高校研究生、科研人员及SAR图像处理初学者聚焦SAR成像仿真建模与海面舰船目标自动检测两大核心任务。压缩包共12个文件3.64MB含6个核心MATLAB函数脚本如f_multilooking.m、f_kde.m等实现多视处理、核密度估计与半参数建模、3个备份文件.zbak、1个实测SAR数据集radarsat2-tj.mat、1个说明文档README.md及1个嵌套ZIP备份覆盖从电磁散射仿真、相干斑抑制、特征提取到深度学习候选区生成的完整技术链。已有67人学习下载资源提供可直接运行的模块化代码结构包含Log-normal混合模型拟合、梯度/纹理/轮廓多维特征构建、以及适配SAR图像特性的检测流程封装显著降低算法复现门槛助力海洋监视、航运监管等实际应用场景的技术验证与快速原型开发。 SAR成像仿真和舰船检测这件事最早我是被一个很具体的问题逼着做的算法在十几幅实测图像上跑得挺好但一到新场景就露馅而且你根本不知道漏检到底是算法问题还是图像质量问题。实测数据里没有“标准答案”你没法定量说检测率提升了几个点。后来我把思路反过来——先用MATLAB把SAR成像仿真做扎实让回波数据能精确控制再在生成的图像上开发和验证舰船检测算法最后再用公开实测数据做交叉验证。这条路走通之后整个系统的可靠性和可解释性完全不一样了。这篇文章就是把这套从“回波模拟”到“成像处理”再到“舰船检测”的完整链路拆开来讲适合正在做SAR相关课题的研究生、需要快速搭建验证平台的工程师以及准备把MATLAB作业做出真实项目深度的同学。核心思路不依赖特定工具箱但我会用MATLAB的Phased Array System Toolbox和信号处理常规函数来落地方便你直接复现。1. 为什么要把SAR成像仿真和舰船检测放在同一个系统里1.1 检测算法验证对仿真数据的需求舰船检测的主流方法是恒虚警率CFAR检测本质是在海杂波背景里找出幅度异常高的像素簇。这类算法的性能评估极度依赖“有标注的测试集”——也就是你知道图像里哪个像素确实是船哪个只是杂波尖峰。实测SAR图像的最大问题是标注成本极高需要光学遥感影像或者AIS船舶轨迹数据做参考而且同一艘船在不同入射角、不同极化方式下呈现的散射特征差异很大标注边界很难保持一致。仿真数据恰好能解决这个问题。在回波模拟阶段你放在场景里的每一个目标位置都精确已知。生成SAR图像之后这些位置就是天然的标注真值。于是你可以放心地把检测结果和真值做逐像素比对算出检测概率、虚警率、漏检率这些硬指标。这一点是我后来做算法调优时最受益的地方有了真值你才能判断一个参数改对了还是改错了。当然仿真数据也有天花板。目标散射模型如果过于简化仿真图像和实测图像的纹理差异会很大导致在仿真上调好的参数拿到实测数据上失效。所以这个系统设计从一开始就不是“只用仿真”而是“仿真快速迭代、实测验证兜底”的双轨思路。1.2 系统整体架构与模块划分整个系统我用MATLAB实现分成三个层次。底层是信号模拟层负责生成点目标或简单面目标的SAR原始回波数据包含距离向和方位向的完整相位历史。中间层是成像处理层实现距离压缩、距离徙动校正RCMC和方位压缩也就是经典的距离多普勒RD成像算法。上层是目标检测层对成像结果做预处理、CFAR检测、聚类和几何特征筛选最终输出舰船目标的位置和像素级标注。用MATLAB的原因其实很实在第一信号处理相关工具箱成熟phased.LinearFMWaveform、phased.FreeSpace、phased.RadarTarget这些系统对象能大大减少底层实现工作量第二矩阵运算和可视化一体从回波数据到图像到检测结果可以在一个脚本里闭环不需要跨语言搬运数据第三MATLAB的调试体验对算法验证更友好。代价是运行速度不如C或GPU实现但对于教学验证和算法预研来说完全够用。2. SAR回波模拟的数学基础与MATLAB实现2.1 线性调频信号与回波模型SAR成像仿真的第一步是模拟雷达发射和接收的电磁波过程。几乎所有星载和机载SAR系统都使用线性调频LFM信号作为发射波形原因很单纯LFM信号可以通过匹配滤波获得很高的距离分辨率同时对发射峰值功率的要求相对较低。发射信号形式为s(t) rect(t / Tp) · exp(j2π(fc·t 0.5·Kr·t²))其中Tp是脉冲宽度fc是载频Kr是调频率。接收到的点目标回波在基带可以写成s_r(t, η) A · rect((t - 2R(η)/c) / Tp) · exp(jπKr(t - 2R(η)/c)²) · exp(-j4πR(η)/λ)这里有两点很容易被初学者忽略。第一距离向快时间t和方位向慢时间η是两个独立的维度SAR原始数据本来就存在一个二维矩阵里距离向是每一行方位向是每一列行数等于距离向采样点数列数等于方位向脉冲数。第二斜距R(η)是随时间变化的因为雷达平台在运动。这个随时间变化的斜距正是合成孔径能够提高方位分辨率的物理根源也是成像算法需要处理的核心问题。在MATLAB里模拟回波我习惯按“场景驱动”的方式写先定义平台轨迹和场景目标坐标再逐脉冲计算每个目标的时延和相位最后叠加所有目标贡献并加入噪声。这种方式比直接生成理想化回波矩阵更接近实测数据的产生过程后续想加入运动误差、噪声干扰也都方便。2.2 MATLAB中构建回波数据的核心步骤以星载SAR参数为例我常用的一组仿真参数如下参数值说明载频5.4 GHzC波段与常见星载SAR接近信号带宽60 MHz决定距离向分辨率约2.5 m脉冲宽度20 μs需要结合发射功率考虑脉冲重复频率1500 Hz需满足方位向采样要求平台速度7000 m/s典型低轨卫星速度轨道高度600 km近地轨道典型高度场景中心斜距约850 km由高度和入射角共同得到用phased.LinearFMWaveform对象可以很方便地生成发射波形但回波模拟的核心工作量在几何计算上。对每个方位向脉冲需要计算雷达当前位置与每个目标之间的瞬时斜距然后换算成时延和相位。多目标场景下这一步是循环密集的建议用矩阵运算向量化能快一个数量级。这里给一个点目标回波生成的骨架代码方便理解整体流程% 场景与系统参数 c 3e8; fc 5.4e9; lambda c / fc; Tp 20e-6; % 脉宽 Br 60e6; % 带宽 Kr Br / Tp; % 调频率 Fs 80e6; % 距离向采样率 prf 1500; % 脉冲重复频率 v 7000; % 平台速度 H 600e3; % 轨道高度 R0 850e3; % 场景中心斜距 % 目标坐标场景坐标系方位向x距离向y targetPos [0, 0, 0]; % 场景中心一个点目标 % 方位向时间轴 Na 2048; % 方位向脉冲数 ta (0:Na-1) / prf; ta ta - mean(ta); % 距离向时间轴 Nr 2048; tr (0:Nr-1) / Fs; tr tr 2 * R0 / c - Tp / 2; % 距离窗起始对齐 % 发射信号参考 t_ref (0:round(Tp*Fs)-1) / Fs - Tp/2; s_ref exp(1j * pi * Kr * t_ref.^2); rawData zeros(Na, Nr); for i 1:Na x_radar v * ta(i); % 平台方位向位置 R sqrt((x_radar - targetPos(1))^2 R0^2); tau 2 * R / c; % 双程时延 n0 round((tau - 2*R0/c) * Fs); % 相对时延采样点 if n0 0 n0 Nr - length(s_ref) phase exp(-1j * 4 * pi * R / lambda); rawData(i, n01:n0length(s_ref)) s_ref * phase; end end rawData rawData 0.01 * (randn(size(rawData)) 1j*randn(size(rawData)));这段是单点目标的模拟实际做多点目标或简单面目标时只需要在外层循环目标数量把不同目标的回波叠加起来。值得注意的是这里我直接用基带形式存数据没有做正交解调过程这是SAR仿真里常见的简化——直接从基带出发减少一步变换对算法验证没有影响。3. 距离多普勒成像算法落地从一维压缩到二维聚焦3.1 距离压缩与距离徙动校正SAR原始回波不能直接看它每个目标的信息都散布在整个二维矩阵里。第一步要做距离压缩把能量在距离向聚焦成一条线。原理就是匹配滤波发射LFM信号接收端用发射信号的共轭反转作为匹配滤波器输出就是压缩后的窄脉冲。MATLAB里用matchfilter或者手动FFT实现都可以。手动实现时标准做法是把距离向参考信号变换到频域乘以回波的距离向FFT再做逆FFT。加窗是必须的不加窗时距离向脉冲旁瓣太高后续CFAR检测会把旁瓣误检成目标。我习惯加汉明窗旁瓣能被压到-40dB以下代价是距离分辨率比不加窗时损失约1.4倍。仿真参数设计时就要把这个余量算进去否则最终图像分辨率会低于预期。距离压缩之后每个目标在距离-方位图上是一条沿方位向弯曲的轨迹这个弯曲就是距离徙动。它的物理来源是当平台飞过目标正上方之前和之后目标斜距不断变化最近时斜距最小对应回波时延最小于是目标的能量在距离向上会形成一个抛物线状的轨迹。如果直接做方位压缩相当于把不同距离单元的信号强行叠加结果就是图像散焦方位向分辨率恶化。距离徙动校正常用两种方式时域插值法和频域相位补偿法。RD算法里最经典的是在距离多普勒域做插值校正。流程是距离压缩后沿方位向做FFT把信号变换到距离多普勒域在这个域里距离徙动量和多普勒频率有明确的解析关系可以逐距离单元计算徙动曲线然后用sinc插值把能量重新搬回正确的距离单元。MATLAB中sinc插值可以自己写也可以用interpft做频域插值。我建议别用线性插值距离徙动校正对插值精度要求高线性插值会引起图像幅度调制和相位误差聚焦质量明显变差。自己写一个基于sinc核的插值函数并不难内核对齐到亚像素精度就行。3.2 方位压缩与成像质量评估距离徙动校正后的数据每个目标的能量已经落在一条直线上。接下来方位压缩和距离压缩在原理上完全对称方位向信号也是一个LFM信号只是调频率的方向和距离向不同匹配滤波的方式一模一样。方位压缩的参考函数可以由多普勒调频率导出多普勒调频率的理论值为Ka 2v² / (λ·R0)这个公式非常有用。它把方位向调频率和平台速度、波长、斜距直接挂钩。在仿真中我们用精确已知的速度和斜距所以Ka是准确的但在实测数据处理中Ka往往存在误差需要从数据本身估计就是所谓的自聚焦这就是另一套复杂度了。方位压缩后点目标在距离-方位平面上会聚焦成一个二维的明亮像素。评判聚焦质量不能靠“看起来亮不亮”需要用定量指标。我通常计算三个值峰值旁瓣比PSLR、积分旁瓣比ISLR、冲激响应宽度IRW。在仿真环境里这些值可以精确计算并与理论值对比如果偏差大说明处理链路里有问题。以PSLR为例加窗后理论值约-43dB汉明窗如果实测值只有-20dB基本可以断定距离徙动校正没有做对或者方位向参考函数有相位误差。我调试的时候经常用这个指标反向定位问题比用眼睛看图高效得多。方位压缩的核心代码片段如下% 在距离多普勒域做RCMCsinc插值 data_rd fftshift(fft(data_rangeCompressed, Na, 1), 1); f_doppler (-Na/2:Na/2-1) * prf / Na; % 对每个多普勒频率计算距离徙动量 R_rd R0 ./ sqrt(1 - (lambda * f_doppler / (2*v)).^2); deltaR R_rd - R0; for i 1:Na % 每个脉冲对应一个距离徙动量用sinc插值重采样 shift_pix deltaR(i) * Fs / c * 2; % 换算成距离向采样点 data_rd(i, :) sincInterp(data_rd(i, :), shift_pix); end % 方位向匹配滤波 Ka 2 * v^2 / (lambda * R0); H_az exp(-1j * pi * f_doppler.^2 / Ka); data_rd data_rd .* H_az.; % 注意广播维度 % 逆FFT回到时域 sarImage abs(ifft(ifftshift(data_rd, 1), Na, 1));这里deltaR的表达式是从几何关系推出来的在多普勒频率为0时徙动量最大等于0偏离中心越大徙动量越大。实际代码里如果目标偏离场景中心比较远deltaR的计算还要考虑斜距展开的高阶项但对仿真验证来说这个一阶近似已经足够。4. 舰船检测模块设计CFAR检测器与图像预处理4.1 海杂波背景下的CFAR检测原理SAR图像上的舰船检测最实用的方法就是CFAR。为什么不用简单的全局阈值因为海杂波的强度在空间上是变化的——开阔海域杂波较弱近岸和风浪区杂波较强全局阈值切出来不是漏检就是虚警泛滥。CFAR的思路很直白对每个待检测像素用其周围一定范围的像素估计局部背景统计特性再根据这个局部背景计算检测门限。最常见的单元平均CFARCA-CFAR假设背景服从高斯分布用参考单元的均值估计背景功率门限为T α · P_bg其中P_bg是参考单元平均功率α由虚警概率和参考单元数共同决定。这个方案在均匀背景下最简单有效但海杂波SAR图像有很强的纹理特性并不服从高斯分布。幅度域上K分布或韦布尔分布更常见对应的是两参数CFAR需要同时估计形状参数和尺度参数。在工程实现上我的做法是先用一个滑窗统计参考单元的均值和标准差基于“均值 系数 × 标准差”构建门限。这个形式对应的是两参数CFAR的近似实现对海杂波的适应性比纯均值CFAR好不少。系数k的选择与虚警概率相关实测中常用k在4到6之间对应每百万像素量级的虚警水平。这比严格推导的K分布CFAR更容易实现和调试代价是理论上不够严谨但工程效果很稳。CFAR检测前还有一个经常被忽略的步骤——对数变换。SAR图像动态范围很大直接在线性幅度域做CFAR强目标周围的旁瓣和背景的小波动会被门限的尺度放大或压扁。把幅度图像变换到dB域后统计分布更接近对称CFAR门限的估计也更稳健。我一般会在CFAR之前做一个20·log10变换处理后检测结果稳定性明显提升。4.2 检测器参数设计与MATLAB实现CFAR参数设计是检测性能的关键。主要参数有四个参考窗大小、保护窗大小、虚警概率、背景统计模型参数。这几个参数的物理意义必须想清楚保护窗紧贴待检测像素的内层窗口。它的作用是防止目标自身能量泄漏到参考单元里。窗口大小应该略大于目标的最大像素尺寸。舰船在SAR图像上的尺寸随分辨率和船型差异很大10米分辨率的图像里大型货轮可能占据几百个像素3米分辨率下一艘渔船可能只有十几个像素。保护窗太小目标能量污染参考背景门限被抬高弱目标直接漏检保护窗太大检测分辨率下降两个接近的目标会被合并。参考窗用来统计背景特性的外层窗口。它需要足够大才能获得稳定的统计量但太大又可能跨越不同杂波区域。我的经验是参考窗至少要有保护窗4-6倍的面积并且包含不少于100个独立样本。实际参数调试时我通常会设置一组候选参数在仿真图像上做扫描画出检测率和虚警率随参数变化的曲线从中选一个平衡点。这个过程可以用MATLAB的parfor并行加速因为每个参数组合的检测是相互独立的。MATLAB中CFAR检测的骨架代码如下function detMap cfarDetect(imgDb, guardSize, refSize, k) [Na, Nr] size(imgDb); detMap false(Na, Nr); halfGuard floor(guardSize / 2); halfRef floor(refSize / 2); for i halfRef1 : Na-halfRef for j halfRef1 : Nr-halfRef % 提取参考区域和保护区域 refRegion imgDb(i-halfRef:ihalfRef, j-halfRef:jhalfRef); [gr, gc] meshgrid(i-halfGuard:ihalfGuard, j-halfGuard:jhalfGuard); guardIdx (gr(:) i-halfGuard gr(:) ihalfGuard ... gc(:) j-halfGuard gc(:) jhalfGuard); % 去掉保护窗内的像素 mask true(size(refRegion)); mask(gr, gc) false; bgPixels refRegion(mask); bgMean mean(bgPixels); bgStd std(bgPixels); threshold bgMean k * bgStd; if imgDb(i, j) threshold detMap(i, j) true; end end end end注意这个双重循环在图像尺寸较大时非常慢实际使用必须改写成列操作或者用nlfilter、自定义mex函数来加速。速度优化这块后面单独说。CFAR检测后的结果是一个二值图像里面除了船还有孤立的杂波尖峰和噪声。接下来要做连通域分析把相邻的检测像素聚合成目标。MATLAB里bwlabel和regionprops可以直接用然后根据目标的面积、长宽比、主轴方向等信息剔除明显不是船的检测结果。这一步对虚警率的影响非常大甚至超过CFAR门限本身。舰船目标的典型特征是面积在几十到几万像素之间长宽比通常在2到8之间方向沿海面不一定固定但像素簇不会呈现一个像素宽度的大长条。5. 系统联调与实测数据验证5.1 仿真端到端联调流程模块单独跑通后联调才是真正考验系统一致性的环节。我的联调步骤分四步走第一步用单点目标验证成像链路。场景里只放一个点目标成像后检查它的PSLR、IRW是否符合理论预期。这步过了说明距离压缩、RCMC、方位压缩的核心处理都是对的。第二步用多点目标验证检测链路。在场景里随机放十几个不同幅度的点目标分别代表不同雷达散射截面RCS的舰船成像后跑CFAR检测看能否把设定目标全部检出。这一步能暴露CFAR参数设置是否合理尤其是弱目标会不会被强目标旁瓣压制。第三步加入背景杂波和噪声验证稳健性。在回波模拟阶段给数据加一个服从某种分布的背景散射再把信杂比调低这是最接近真实海况的仿真场景。我之前用均匀高斯噪声当背景检测结果好得离谱换成K分布杂波后虚警率立刻上来了逼着我改了CFAR的背景模型。第四步批量测试。生成不同入射角、不同海况、不同目标分布的100组仿真数据跑完整链路统计平均检测率和虚警率。这一步的目的是确认系统不是“只对某一张图有效”参数泛化能力必须靠批量数据来验证。联调中最容易出错的地方在于坐标系的转换。回波模拟用的目标坐标、成像后图像的行列坐标、CFAR检测输出的像素坐标这三者如果不对齐检出的目标位置和真实位置对不上后面做精度评估就全部白搭。我的做法是在成像之后立刻做一个几何定标已知场景中心的位置和像素间距把像素坐标转换回地面坐标在每一级处理中都保留这个转换关系。5.2 公开实测数据的验证结果对比仿真调通后必须拿实测数据做一次“体检”。我用的是公开的星载SAR数据产品这类数据在各大遥感数据平台都能获取格式通常是GeoTIFF附带轨道参数和成像参数。实测数据和仿真数据有一个本质差异实测数据经过了系统的辐射定标和几何校正像素值已经是归一化的后向散射系数而仿真图像直接输出的是信号幅度两者不在同一个量纲上。检测模块要做适配。最直接的办法是检测前统计图像的整体幅度分布把像素值归一化到均值为0、标准差为1的z-score空间再做CFAR这样仿真和实测数据的检测门限相对统一。我实测下来这个归一化步骤比任何复杂杂波模型都更实用。在实测数据上我得到过一个很重要的对比结论仿真数据上检测率可以达到95%以上虚警率控制在每百万像素个位数但换成实测数据同一组参数检测率往往掉到80%左右虚警率上升一个数量级。原因主要是实测图像的杂波纹理更重海面目标附近经常有尾流和旁瓣干扰。这说明仿真数据适合做算法开发和参数初选但最终参数必须用实测数据微调。这也印证了双轨验证策略的价值。实测数据验证时还需要注意一个采样问题星载SAR的入射角在不同数据条带之间有差异同一目标的雷达截面积会随入射角变化。如果拿来的实测数据是不同入射角拼起来的检测门限需要分块处理不能全局一刀切。6. 工程实践中的坑与调优经验6.1 成像质量相关的高频坑做成像仿真的过程中我踩过的坑可以列一个清单每一个都曾浪费过大量时间。第一个是距离徙动校正的插值方向搞反。RCMC是在距离多普勒域沿距离向插值方向应该是把弯曲的目标轨迹“拉直”。如果把插值方向搞反图像不仅不聚焦还会出现双峰看起来像两个目标实际是一个目标被拆成了两半。第二个是方位向参考函数没有考虑平台速度随纬度的变化。星载SAR在纬度不同时地面速度不同Ka的实际值是随时间变化的。如果仿真里只用恒定速度成像质量在场景边缘会明显下降。解决方法是把每个脉冲的实际速度都记录下来逐脉冲计算Ka而不是取一个固定值。第三个是距离向采样率刚好等于信号带宽时不加过采样匹配滤波的峰值会有失真。我一开始为了省内存把Fs设成恰好等于Br结果距离向冲激响应出现了明显的栅瓣。后来把采样率提高到带宽的1.2-1.5倍问题立刻消失。第四个坑更隐蔽用FFT做匹配滤波时参考信号没有做正确的循环移位。匹配滤波要求参考信号在时域翻转但FFT实现时往往直接做频域相乘此时必须保证参考信号的频域形式是共轭的发射信号。有的教材代码里直接两个FFT相乘不做共轭输出的波形是相关的而非卷积图像看起来“差不多”但是位置全偏移了。这个我排查了很久才发现。6.2 检测性能相关的调参经验CFAR检测的参数调优心得单独拿出来说值得写一整节。保护窗大小是影响检测率最直接的参数。在3米分辨率的仿真图像上我测试了不同船型后发现保护窗取15×15像素是一个比较稳的起点。小于这个值大型货船的能量会泄漏进参考单元门限抬高导致同一场景里本来可检测的中型船只漏检大于这个值两个距离很近的小目标会被合并成一个检测结果看起来像漏了一个。如果你处理的是高分辨率图像1米级保护窗要对应放大到25×25左右。参考窗大小的选择跟杂波均匀性有关。在开阔海域参考窗可以设大一点统计更稳定在近岸区域参考窗太大会把陆地像素也统计进去门限完全失真。我的做法是在预处理阶段先做一个简单的陆地掩膜把陆地像素从参考统计里剔除掉。这个掩膜可以用公开的海陆边界数据生成也可以简单地用幅度阈值粗分割——陆地区域的后向散射一般远高于海面拿一个保守阈值先切掉高亮区域再在剩余区域做CFAR。虚警概率k值的选择我的经验是“宁可留漏检不要大量虚警”。因为虚警可以在聚类阶段通过几何特征滤掉漏检则是直接丢失目标无法挽救。仿真默认k5配合后续像素簇筛选整体效果不错。如果某个场景虚警太多优先调连通域筛选条件而不是急着抬高k值。最后一个经验是关于对数变换的时机。我是在做完多视处理之后做对数变换再做CFAR。多视处理降低斑点噪声的同时会降低空间分辨率两者需要平衡。检测大目标时可以接受更多视数检测小目标时则要减少视数甚至不做多视。这个取舍没有标准答案只能根据任务需求决定。6.3 性能优化和脚本化的工程细节MATLAB跑SAR成像仿真最痛的问题是慢。一张2048×2048像素的图像全链路跑下来可能要几分钟批量测试时这几乎不可接受。我试过几个方向效果差别很大。最简单的优化是减少循环改用矩阵运算和arrayfun。回波模拟那段逐脉冲循环用矩阵化重写后能提速5到10倍。具体做法是把所有脉冲的回波一次性构造成矩阵时延和相位计算全部向量化。第二个优化是用parfor并行。CFAR检测里各个像素的处理是独立的天然适合并行。在我的四核笔记本上parfor替代for之后检测时间缩短到原来的三分之一左右。不过要注意parfor循环里的变量管理有坑尤其是共享大矩阵时会因为数据切片通信拖慢速度最好是每个worker都持有完整图像的副本。第三个优化是数据精度的选择。SAR原始回波一般用单精度浮点single存成像中间过程可以用双精度但回波模拟阶段数据量最大的部分用single能省一半内存、提高缓存命中率。实测精度损失几乎可以忽略。第四个建议是把整个系统脚本化。我用一个主配置脚本管理所有参数每个模块是独立的函数用结构体struct传递参数和数据。这样批量测试时只需要改配置脚本里的参数所有模块自动适配。调参效率比起在每个函数里手动改参数提升了太多。7. 一些后话整套系统从零搭完最大的体会是SAR成像仿真和舰船检测分开做都不算太难难的是把它们组合成一个能批量运行、参数可控、结果可量化的统一系统。仿真数据提供了完美的调试环境实测数据才是检验算法真实水平的试金石。愿这套“先仿真、后实测、再迭代”的流程能帮你少走点弯路。本文还有配套的精品资源点击获取