语音信号预处理3——计算原始chirp信号与滤波后chirp信号的相关性

article/2025/10/4 0:16:40

写在前面:仅作为个人学习笔记,便于以后查阅,如对你有帮助,荣幸之至,如有错误,欢迎评论指正

编程软件:matlab R2018b
系统: win10

系列文章目录

  1. chirp信号的生成与接收
  2. 对接收到的chirp信号进行滤波、分帧处理及端点检测
  3. 计算原始chirp信号与滤波后chirp信号的相关性
  4. 绘制接滤波后chirp信号的时域图和频域图
  5. 从1-4完整走一遍

文章目录

      • 系列文章目录
      • 相关性计算
      • 参考文献

相关性计算

本案例计算发射的信号与接收到的回声的相关性,以此判断回声信号的哪些部分包含了我们的发射信号,换言之,我们采集的回声信号里除了环境杂音,还有我们自己发出的声音信号。
相关性计算的具体代码如下corr_compute.m

function corrSeq = corr_compute(data1, sampleSignal) %%%data initilization
sizeOfSample = length(sampleSignal); 
sizeOfData = length(data1); 
output = zeros(sizeOfData, 1); %%%Compute the correlation 
for i = 1 :1 : sizeOfData-sizeOfSampleoutput(i,1) = abs(dot(sampleSignal', data1(i:i+sizeOfSample-1, 1)));   
end%%%Return the final values
corrSeq = output; % figure
% t1 = 1:length( output );
% %t2 =  t1/samplingRate;
% plot(t1, output,'LineWidth',2,'Color','b');
% hold on;%%%Conduct the envelop detection 
window_size_for_envelope  = 30;  %%%The length of each frame%%%Count the number of windows we need 
counter=0;
for i=1:(window_size_for_envelope - 1) : (length(corrSeq) - window_size_for_envelope)counter=counter+1;
end
envelope_m=zeros(counter,1);%%%COmpute the values for each frame
counter=1;
for i=1:( window_size_for_envelope - 1 ) : (length(corrSeq) - window_size_for_envelope)current_window = corrSeq(i:i+window_size_for_envelope-1,:);min_value=min(current_window);max_value=max(current_window);envelope_m(counter,1) = max_value; %%upper part% envelope_m(counter,1) = min_value; %%lower partcounter=counter+1;
end%%%Conduct the interpolation 
x=1:( window_size_for_envelope - 1 ):(length(corrSeq) - window_size_for_envelope);  %%%The position of the sampled points
y=envelope_m;  %%%The value of sampled points
x_i=1:(length(corrSeq) - window_size_for_envelope); %%%The vector size after interpolationy_i = interp1(x,y,x_i,'spline');%%%Return the results
corrSeq = y_i;

发射的信号与接收到的回声的相关性如下图所示,纵轴代表归一化后的相关性强度,横轴代表样本点序列,纵轴值越大,两个信号的相关性越高。可以设置一个阈值a,当相关性的值超过阈值a时,可认为该时段的声音信号为回声信号。
回声的相关性

参考文献

  1. 宋知用.MATLAB语音信号分析与合成(第2版)[M].北京:北京航空航天大学出版社,2017.10.

http://chatgpt.dhexx.cn/article/QA81puXR.shtml

相关文章

MATLAB学习笔记之chirp信号的产生

chirp信号即线性调频信号,是指瞬时频率随时间呈线性变化的信号。 chirp信号的matlab程序实现方法如下: 1.可利用matlab自带的chirp函数生成。 chirp(t,f0,T,f1); T表示脉冲宽度&…

chirp信号频谱(三角波和锯齿波)

普通chirp信号 ​​​​​​​ 频谱 图中信号载波3.2GHz,采样率256MHz,带宽100MHz,脉宽64us %% --------仿真数据--------------- fs256e6; Nr16384; ts 1/fs; fc3.2e9; B10…

USB chirp信号测试

1 信号及原理分析 1.1 KJ信号说明 USBchirp信号分为K信号和J信号。根据USB速率将chirp信号做如下区别: USB速率 Chirp DP DM 空闲状态 Low Speed K 1 0 K J 0 1 Full Speed K 0 1 J J 1 0 High Speed K 0 1 SE0 J 1 0 SE0 0 0 1…

chirp信号相关

1、frft 基于分数阶傅里叶变换的chirp信号检测与参数估计(原理附代码)_非 常 道的博客-CSDN博客_chirp基 求相关性最好的阶数: 其中fs是采样频率,arccot这个在matlab中有相应的函数,B是chirp信号的带宽。 2、在实际工作…

基于分数阶傅里叶变换的chirp信号检测与参数估计(原理附代码)

线性调频信号(chirp信号) 顾名思义,该信号的频率随着时间线性变换,其复数表达形式如下: s ( t ) e 2 j π ( f 0 t 0.5 μ t 2 ) s(t)e^{2j\pi(f_0 t 0.5\mu t^2)} s(t)e2jπ(f0​t0.5μt2) 根据欧拉公式&#xff…

Chirp信号及其生成

Chirp信号是一个典型的非平稳信号,在通信、声纳、雷达等领域具有广泛的应用。 简介 Chirp译名:啁啾(读音:“周纠”),是通信技术有关编码脉冲技术中的一种术语,是指对脉冲进行编码时,其载频在脉冲…

什么是chirp信号

什么是chirp信号?(翻译自维基百科) 维基百科是这样说的: A chirp is a signal in which the frequency increases (up-chirp) or decreases (down-chirp) with time。 也就是说:是频率随着时间增加或减小的信号。 …

Chirp信号简单介绍

1.定义:chirp指的是频率随时间增加或减少的信号。它通常应用于声纳、雷达和激光系统,以及其他应用,如扩频通信。(大多数情况也可称为线性chirp信号,但其实chirp信号未必是线性的) 2.公式推导理解&#xff…

Chirp信号基础知识及matlab实现

Chirp信号的表达式如下: x ( t ) e x p ( j 2 π ( f 0 t 1 2 k t 2 ) ) x(t)exp(j2\pi (f_0t\frac{1}{2} kt^2)) x(t)exp(j2π(f0​t21​kt2)) 其中, f 0 f_0 f0​ 称作起始频率,k为调频率 对相位进行求导,得到角频率以及频率随时间的线…

项目通信之RPC调用——java简单实现

微服务项目通信方法很多,有像springcloud解决方案的http通信,还有像阿里Dubbo的RPC通信,这里简单实现RPC调用。一共2个端,客户端server和客户端client.项目demo很简单,就不多讲了,看代码好了。 下面是服务…

RabbitMQ消息队列之RPC调用

我们知道现在市面上的RPC框架很多,但是如何用我们的RabbitMQ去实现一个RPC调用呢?这就是我们这篇文章所要讲解的内容。 如果有阅读过我写的博客的大兄弟们,可能会知道,我有个习惯就是学习技术喜欢去看官方文档,同样对于…

rpc调用过程原理分析以及Dubbo、Feign调用过程

RPC简介 RPC是远程过程调用(Remote Procedure Call)的缩写形式。 RPC调用流程图 客户端方法:服务调用方所调用的接口 客户端代理:将接口封装成代理对象,并序列化请求参数、反序列化响应结果,使用远程传输…

SpringBoot+RabbitMQ 实现 RPC 调用

说到 RPC(Remote Procedure Call Protocol 远程过程调用协议),小伙伴们脑海里蹦出的估计都是 RESTful API、Dubbo、WebService、Java RMI、CORBA 等。 其实,RabbitMQ 也给我们提供了 RPC 功能,并且使用起来很简单。 …

消息中间件RabbitMQ(五)——实现RPC调用

文章目录 1. RPC2. 实现原理3. 代码实现3.1 客户端实现3.2 服务端实现3.3 测试 4. 小结 1. RPC 对于微服务开发者,对于 RPC(Remote Procedure Call Protocol 远程过程调用协议)并不会陌生吧, RESTful API、Dubbo、WebService等都…

springcloud 远程rpc调用接口

springcloud 如果想要从注册中心中调用已经注册的接口,需要用如下方法。 我们现在已经将一个微服务注册到了注册中心。端口是8083的那个 并且里面有个member的RequestMapping 首先,创建一个微服务,将需要的依赖放入pom.xml和配置好apppli…

浅谈RPC调用过程

RPC(Remote Procedure Call) - 远程过程调用,是一个计算机通信协议,它允许运行于一台计算机的程序调用另一台计算机的子程序,而无需额外地为这个交互作用编程。RPC主要应用在分布式系统架构中不同的系统之间的远程通信和相互调用。 举个例子…

远程RPC调用用于js逆向

这里只是记录于学习,资源来自于大佬的github,有十分详细的介绍,我仅仅拿来一用。https://github.com/jxhczhl/JsRpc。(注RPC在某些网站会被检测到) 在右侧下载适合自己系统的exe文件,双击打开 练习对象是某…

使用 webservice 实现 RPC 调用

WebService 介绍 Web service 是一个平台独立的,低耦合的 web 的应用程序用于开发分布式的互操作的应用程序。Web Service 技术, 能使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件, 就可相互交换数据或集成。 SO…

RPC调用链通信方法

RPC调用链可以将远程过程调用变成一个有效的堆栈。 当我们编写应用程序时,我们中的许多人认为REST是服务间通信的一个通用标准。然而,还有许多其他形式的通信,RPC就是其中之一。值得注意的是,通信方式的选择取决于许多因素&#…

使用Dubbo实现简单的RPC调用(Spring配置文件版)

更多文章和资源欢迎访问:SuperCoder Blog 文章目录 更多文章和资源欢迎访问:[SuperCoder Blog](https://supercoder.com.cn)前言一、Dubbo架构二、安装zookeeper三、代码实战1. 创建服务提供方2. 创建服务消费方 四、服务调用 前言 Dubbo是阿里巴巴公司…