# DSAP实验三 **Repository Path**: w4ther/dsap-experiment-3 ## Basic Information - **Project Name**: DSAP实验三 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-10-19 - **Last Updated**: 2026-10-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 实验三 多频信号采样与混叠 完整实验已在 MATLAB R2024b 执行并通过数值检查,包含四组基础场景、Task A/B、图表、CSV、MAT 数据和中文报告。 ## 运行准备 MATLAB 基础函数即可,无需额外工具箱或开发板。进入 src 后执行 cfg = experiment_config,读取全部参数和预测;调用 alias_frequency(f,Fs) 计算折叠频率。 基准信号为 cos(2π100t)+0.8cos(2π250t)+0.6cos(2π450t),三个初始相位均为零。参考采样率为 42000 Hz,记录时长为 2 s,FFT 频率间隔为 0.5 Hz。 ## 运行前预测表 已由FFT实测核对 | 场景 | Fs Hz | 奈奎斯特频率 Hz | 各输入分量的观察频率 Hz | 预期主要频率及幅值 | |---|---:|---:|---|---| | 基础1 | 2000 | 1000 | 100,250,450 | 100:1;250:0.8;450:0.6 | | 基础2 | 1000 | 500 | 100,250,450 | 100:1;250:0.8;450:0.6 | | 基础3 | 700 | 350 | 100,250,250 | 100:1;250:1.4 | | 基础4 | 500 | 250 | 100,250,50 | 50:0.6;100:1;250:0.8 | | Task A | 600 | 300 | 100,250,150 | 100:1;150:0.6;250:0.8 | | Task B 最高分量550Hz | 700 | 350 | 100,250,150 | 100:1;150:0.6;250:0.8 | ## 执行清单 - [x] 绘制高采样率参考波形与单边幅度谱。 - [x] 依次从参考序列每隔整数步长取点,完成 Fs=2000、1000、700、500 Hz 的采样与 FFT。 - [x] 保存各组短时波形、单边幅度谱、完整样本和频谱数据。 - [x] 在 Fs=700 Hz 下比较幅度同为0.6的450Hz、250Hz余弦,绘制前25点并记录全记录最大差值。 - [x] 测量700Hz采样时250Hz处的合成幅度,解释零相位条件下0.8+0.6=1.4。 - [x] 保存四组频谱对比图、450Hz分量频率折叠表和主要谱峰汇总表。 - [x] Task A:Fs=600 Hz,先预测,再测量频率与幅度。 - [x] Task B:Fs=700 Hz,最高分量改550 Hz且幅度仍为0.6;重新生成参考信号,再预测与验证。 - [x] 用直接公式生成的采样序列独立核对抽取结果,用预期合并幅度核对FFT结果。 - [x] 整理中文报告、运行日志和Git提交。 ## 实现注意事项 采用 N=T*Fs、t=(0:N-1)/Fs,避免重复包含终点T。单边谱先除以N,内部正频率点乘2,DC和偶数长度记录的Nyquist点不乘2。 本实验为观察混叠直接抽取参考点;不要使用会自动加入抗混叠滤波的 resample/decimate 代替采样过程。 42000Hz只是连续信号的高密度数值参考,并非模拟硬件测量。所有指定采样率均可整除参考采样率。 混叠改变采样数据所对应的频率;泄漏来自有限记录内非整周期等条件;FFT分辨间隔由记录时长决定。零填充不能恢复混叠丢失的信息。 原指导书选答题9提到Task C,但正文只定义Task A/B;不将这一引用视作新增必做任务。10道报告问题标为选答。 reference 仅保存本地教师资料,不上传。远程仓库:https://gitee.com/he-tianqi-0413/dsap-experiment-3.git ## 完整运行 在 MATLAB 中进入 src,执行 run_all 或 sampling_multitone_lab。所有输出写入 results。experiment_config.m 统一定义参数,alias_frequency.m 预测折叠频率,one_sided_spectrum.m 计算单边幅度谱,run_all.m 分节完成全部场景和验证。 results/peak_measurements.csv 包含预测与实测谱峰;frequency_mappings.csv 包含原频率和包裹数字频率;validation.csv 记录误差;report/实验三.md 包含图表和解释。