信号相干性

关注、星标公众号,精彩内容每日送达
来源:网络素材

相干就是信号相似的程度,下图最上方波形与下面三个的相关性,主要考察频率的相似性,如下图所示

e73dabc9b8a35df519e9ad1ca1b9ad59.png

d3b076d6fcbca248a49b7c2037373a08.png

如下图所示,第二个波形最相似

ca09a180e38d09592bdad5bb8ca70161.png

8befb9b47edd90afb6407a13acac0ea2.png

相干性判断:

1)相乘,正正得正,负负得正,正负得负

2)正负相加抵消(绝对值变小)

3)上述伪代码

sum = 0;

for(i=0;i<size;i++)

{

    sum += wave_1[i]*wave_2[i];

}

总结,通过判断累加和幅度得大小,累加和越大,理想波形与采样波形的相关性越大

### Matlab 中的信号相干性计算 #### 基础知识回顾 MATLAB 提供了一个强大的平台用于执行复杂的数学运算和数据分析,特别是对于信号处理领域。为了有效地进行信号频域相干分析,在开始之前应当熟悉 MATLAB 的基本操作以及信号处理工具箱的功能[^1]。 #### 频域转换与预处理 在进入具体相干性的讨论前,通常先要把时间序列数据变换到频率空间里去。这可以通过快速傅立叶变换 (FFT) 来完成。一旦获得了频谱表示形式的数据,则可以进一步探索其特性并实施各种类型的频域内分析技术。 #### 相干函数的应用 MATLAB 内置有专门用来评估两组或多组输入之间线性依赖关系强度的 `mscohere` 函数。此命令能够估计给定时间段内的平均交叉光谱密度,并据此得出相应的相位差角及幅度平方一致性指标——即所谓的“相干”。 下面是一个简单的例子来展示如何利用该功能: ```matlab % 加载测试音频文件作为示例信号 [x,Fs] = audioread('example_audio_file.wav'); % 创建一个稍微失真的副本以模拟第二个通道 y = filter([1 -0.9], 1, x); % 定义窗口大小和其他参数 windowSize = round(length(x)/8); overlapRatio = 0.75; nfft = windowSize; % 使用 mscohere 计算两个信号间的相干值 [Cxy,f] = mscoherence(x,y,hamming(windowSize),round(overlapRatio*windowSize),nfft,Fs); % 绘制结果图 subplot(2,1,1) plot(f,Cxy) title('Coherence between Channels') xlabel('Frequency (Hz)') ylabel('Magnitude squared coherence') % 同时绘制原始波形对比 subplot(2,1,2) t = (0:length(x)-1)/Fs; plot(t,x,t,y) legend({'Original Signal','Distorted Copy'}) ``` 这段脚本首先读取一段声音片段,并制造了一些人为干扰形成第二条路径;接着定义了几个必要的配置选项如窗宽、重叠比例等;最后调用了 `mscoherence()` 对这两个版本进行了比较,并把所得连贯程度绘制成图表显示出来。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值