随机信号自相关与功率谱密度分析系统
项目介绍
本系统是一个基于 MATLAB 开发的综合性仿真平台,专门用于离散时间随机信号的生成与统计特性分析。通过集成的算法模块,用户可以深入研究随机序列在时域中的相关特性以及在频域中的能量分布规律。该系统不仅提供了高斯分布和均匀分布信号的生成能力,还能够执行精确的统计参数计算,并利用周期图法和维纳-辛钦定理进行功率谱密度(PSD)估计,为随机过程的研究提供了量化的分析工具。
功能特性
- 灵活的随机信号生成:支持自定义生成高斯白噪声和均匀分布随机序列,允许用户精确设定信号的长度、采样频率、期望均值以及功率(方差)。
- 多指标统计特征分析:系统能自动对比设定参数与实际生成信号的统计偏差,计算并在控制台输出均值、方差、均方根(RMS)和峰峰值。
- 深度时域自相关分析:采用离散自相关算法计算序列的无偏估计。通过减去均值的去趋势处理,进一步计算归一化自相关系数,用于识别信号的延迟相关性和内部周期性。
- 双重频域分析方法:
*
周期图法(直接法):基于快速傅里叶变换(FFT)直接计算信号的单边功率谱密度。
*
维纳-辛钦法(间接法):通过对自相关函数进行傅里叶变换获得功率谱估计,并进行物理单位的对准。
- 增强的可视化效果:通过三段式图表直观展示信号的时域波形、归一化自相关关系以及功率谱密度。功率谱展示中还加入了滑动平均平滑处理,以便更清晰地观察功率分布趋势。
系统要求
- 运行环境:MATLAB R2016b 或更高版本。
- 工具箱需求:建议安装 Signal Processing Toolbox(信号处理工具箱)以支持 xcorr 函数,但程序核心逻辑通过内置数学运算实现。
详细功能实现逻辑
1. 信号合成逻辑
系统根据用户选择的分布类型执行不同的数学模型:
- 高斯分布:利用期望均值与方差的平方根(标准差)对标准正态分布序列进行线性变换。
- 均匀分布:根据方差公式 $Var = (b-a)^2 / 12$ 反向推导分布边界 [a, b],确保生成的信号精准符合用户的统计要求。
2. 统计特征提取
系统内部定义了专用的计算函数:
- 均方根(RMS):通过计算信号平方均值的平方根得到,反映信号的平均有效功率。
- 峰峰值:通过计算信号最大值与最小值的差值,反映信号的动态摆幅。
- 偏差对比:在控制台中将用户设定的理论值与生成的实际测量值进行比对,验证随机过程的平稳性。
3. 时域相关性分析
核心算法采用离散卷积原理的自相关估计:
- 无偏估计:利用 xcorr 函数的 'unbiased' 模式,消除由于观察窗口有限而导致的幅值衰减。
- 相关系数归一化:在分析动态相关特性时,系统先对信号执行去均值预处理,将自相关峰值归一化至 [-1, 1] 范围内,从而更清晰地显示不同延迟下的线性相关度。
4. 功率谱密度(PSD)估计逻辑
系统实现了基于两种理论脉络的频域分析:
- 直接法实现:对时域信号进行 FFT,取幅值的平方并根据采样频率和信号长度进行能量归一化。为了保持总能量守恒,信号被转换为单边谱,并对正频率分量进行了 2 倍的幅值补偿。
- 间接法实现:基于维纳-辛钦定理,对计算得到的自相关序列进行傅里叶变换,并将结果映射到物理频率轴上。
- 平滑优化:为解决周期图法估计方差较大的问题,系统对单边谱使用了 movmean 算子进行滑动平均平滑,生成频率响应的趋势线。
使用方法
- 启动 MATLAB 软件。
- 在程序主脚本中修改“参数设置阶段”的变量,如 $N$(长度)、$Fs$(采样率)、$meanVal$(均值)、$varVal$(方差)以及 $distType$(分布类型)。
- 运行程序,系统将首先在命令行窗口输出详细统计报告。
- 在弹出的图形窗口中观察三个子图:
*
顶层图:观察信号的随时间波形起伏。
*
中层图:观察信号的自相关特性(正心位置相关性最强,两侧衰减情况反映了信号的白噪化程度)。
*
底层图:观察信号功率随频率的分布,绿色曲线为原始估计,黑色曲线为平滑后的趋势。
核心算法细节
- 频率轴映射:程序通过 $(0:N-1) times (Fs/N)$ 的线性转换,将 FFT 变换后的离散点映射到真实的赫兹(Hz)单位。
- 去趋势处理:在计算相关系数前执行
u - mean(u),消除了直流分量对相关性分析的干扰,确保分析聚焦于信号的动态波动特性。 - 能量补偿:在单边谱计算中,通过
2 * P_single(2:end-1) 操作,确保了离散信号在频域内总功率与时域方差的一致性。