语音信号预处理3——计算原始chirp信号与滤波后chirp信号的相关性
写在前面:仅作为个人学习笔记,便于以后查阅,如对你有帮助,荣幸之至,如有错误,欢迎评论指正
编程软件:matlab R2018b
系统: win10
系列文章目录
- chirp信号的生成与接收
- 对接收到的chirp信号进行滤波、分帧处理及端点检测
- 计算原始chirp信号与滤波后chirp信号的相关性
- 绘制接滤波后chirp信号的时域图和频域图
- 从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时,可认为该时段的声音信号为回声信号。
参考文献
- 宋知用.MATLAB语音信号分析与合成(第2版)[M].北京:北京航空航天大学出版社,2017.10.
语音信号预处理3——计算原始chirp信号与滤波后chirp信号的相关性相关推荐
- 超入门级-基于中值滤波处理ECG信号的基线漂移-Python-MIT-BIH数据集
中值滤波处理心电信号的基线漂移 距离上次发东西已经8个月,我已经本科毕业成为了一名研究生,但是我已经暂时弃硬从软,暂时开始做深度学习方向了,这篇文章就算一个我研究生学习的第一次笔记分享,我也会争取写的 ...
- python butter带通滤波器滤波出来的信号有NAN值或者分类效果极差
在使用scipy.signal.butter带通滤波器对信号滤波后,信号值全变为NAN,或者就算信号没有变为NAN,送入分类器的分类效果也极差 解决方法: 带通滤波器的阶数设置得太高了,需要设低一些
- matlab幅值解调,DSB解调后信号的幅值与信号的幅值为啥差别那么大
做了一个DSB调制和解调程序,在信号相干过滤波器的时候,我自己写了一个先将它们频域相乘再逆FFT得到滤波后的信号,但是它的幅度比我预期的小一半左右,然后我又使用filter函数,直接对时域信号进行滤波 ...
- matlab语音波形,MATLAB程序原始语音信号波形与加噪信号波形(最新整理)
<MATLAB程序原始语音信号波形与加噪信号波形(最新整理)>由会员分享,可在线阅读,更多相关<MATLAB程序原始语音信号波形与加噪信号波形(最新整理)(3页珍藏版)>请在人 ...
- 基于Matlab App Designer的语音信号分析与处理(二):IIR和FIR滤波器的设计,语音信号的滤波
接上文:https://blog.csdn.net/weixin_53877178/article/details/122470759 目录 一.课题的任务 二.内容.步骤和要求 (1)语音信号的采集 ...
- 语音短时能量计算——Python实现
介绍 刚开始学习计算机视听觉,第一个实验是端点检测算法.这个算法实现起来还是比较简单的,主要是该算法利用到的两个数据--语音短时能量和短时过零率.今天先分享一下我计算短时能量的方法. 语音短时能量,顾 ...
- 【通信】盖氏圆盘方法(GDE)计算均匀直线阵(ULA)中信号源个数附matlab代码
1 简介 信源数估计是空间谱估计中的关键技术,研究符合实际应用环境的稳健的信源数估计方法具有十分重要的现实意义.基于空间谱估计中用于估计信源数的传统盖氏圆盘法,该程序用于计算均匀直线阵(ULA)中信号 ...
- 领悟《信号与系统》之 信号与系统概论
信号与系统概论 一.信号与系统基本概念 0. 信息是什么? 1. 信号是什么? 2. 系统是什么? 3. 信号与系统学的什么? 二.常见的信号与系统实例 三.信号与系统分析的意义 在<信号与系统 ...
- MATLAB仿真噪声信号、单多音信号、LFM、2ASK、2FSK、BPSK、16QAM
文章目录 背景: 1.高斯白噪声 2.噪声调幅信号 3.噪声调频信号 4.单音信号 5.多音信号 6.线性扫频信号 7.2ASK信号 8.2FSK信号 9.BPSK信号 10.16QAM信号 缩略对照 ...
- 领悟《信号与系统》之 信号与系统的描述-上节
信号与系统的描述-上节 一.信号分类 1. 一维信号和多维信号 2. 确定信号和随机信号 3. 连续时间信号和离散时间信号 4. 周期信号和非周期信号 5. 能量信号和功率信号 二.常见工程信号 1. ...
最新文章
- 快速排序(快排)--->注释超详细
- Win64 驱动内核编程-15.回调监控注册表
- centerpoint 项目
- python numpy矩阵索引_python-为什么scipy csr矩阵的行索引比numpy数组...
- easyui datagrid 多表头数据错位_表格数据检索(二)
- 在微型计算机中vga的含义,1442、在微机中,VGA的含义是()。(5.0分)
- centos 开机启动java_Centos 7将java jar包自定义开机启动服务
- c语言如何查看内置函数,C中函数内部的函数
- 谷歌浏览器安卓版_谷歌Chrome Canary 82安卓版现可复制图片到剪贴板
- 懒癌晚期学图论的时候自己用C语言写了个求可达性矩阵的算法~
- flask-sqlalchemy 数据基本操作
- 牛客多校第五场 A digits 2 签到
- 博文视点大讲堂41期-SEO难点之网站内部链接结构
- 怎么定义int_「C语言更新」C语言中如何来定义一个指针,并且对其进行初始化...
- Python科学计算——Numpy知识点
- Excel-散点图(相关性及数据分布)分析
- 安装k8s - 阿里云镜像
- arbiter circuit(以Verilog FSM实现仲裁器)
- 《牛客解题》Fibonacci数列
- HDU 2209 翻纸牌游戏 模拟