MATLAB语音信号的时域分析

合集下载

实验二 利用MATLAB进行时域分析

实验二 利用MATLAB进行时域分析

实验二利用MATLAB进行时域分析本实验内容包含以下三个部分:基于MATLAB得线性系统稳定性分析、基于MATLAB得线性系统动态性能分析、与MATALB进行控制系统时域分析得一些其它实例。

一、基于MATLAB得线性系统稳定性分析线性系统稳定得充要条件就是系统得特征根均位于S平面得左半部分。

系统得零极点模型可以直接被用来判断系统得稳定性。

另外,MATLAB语言中提供了有关多项式得操作函数,也可以用于系统得分析与计算。

(1)直接求特征多项式得根设p为特征多项式得系数向量,则MATLAB函数roots()可以直接求出方程p=0在复数范围内得解v,该函数得调用格式为:v=roots(p) 例3、1 已知系统得特征多项式为:特征方程得解可由下面得MATLAB命令得出。

>> p=[1,0,3,2,1,1];v=roots(p)结果显示:v =0、3202 + 1、7042i0、3202 - 1、7042i-0、72090、0402 + 0、6780i0、0402 - 0、6780i利用多项式求根函数roots(),可以很方便得求出系统得零点与极点,然后根据零极点分析系统稳定性与其它性能。

(2)由根创建多项式如果已知多项式得因式分解式或特征根,可由MATLAB函数poly()直接得出特征多项式系数向量,其调用格式为:p=poly(v) 如上例中:v=[0、3202+1、7042i;0、3202-1、7042i;-0、7209;0、0402+0、6780i; 0、0402-0、6780i];>> p=poly(v)结果显示p =1、0000 0、0001 3、00002、0001 0、9998 0、9999由此可见,函数roots()与函数poly()就是互为逆运算得。

(3)多项式求值在MATLAB 中通过函数polyval()可以求得多项式在给定点得值,该函数得调用格式为: polyval(p,v)对于上例中得p值,求取多项式在x点得值,可输入如下命令:>> p=[1,0,3,2,1,1];x=1polyval(p,x)结果显示x =1ans =8(4)部分分式展开考虑下列传递函数:式中,但就是与中某些量可能为零。

Matlab中的时频分析与信号频谱分析

Matlab中的时频分析与信号频谱分析

Matlab中的时频分析与信号频谱分析一、引言信号分析是现代工程中不可或缺的一项技术。

它被广泛应用于通信、声音处理、图像处理等领域。

而时频分析与信号频谱分析作为信号分析的两个重要方面,在Matlab中有着强大的工具支持。

本文将重点介绍Matlab中的时频分析与信号频谱分析,并探讨它们在实际应用中的价值和意义。

二、时频分析时频分析是一种将信号的时域和频域特征结合起来进行分析的方法。

它主要用于分析非平稳信号中的瞬态特征,并揭示信号在时间和频率上的变化规律。

在Matlab中,时频分析可以通过多种工具实现,如短时傅里叶变换(Short-time Fourier Transform,STFT)、连续小波变换(Continuous Wavelet Transform,CWT)等。

1. 短时傅里叶变换(STFT)STFT是时频分析中最常用的方法之一。

它将信号分成若干个短时段,并对每个短时段应用傅里叶变换来得到瞬时频谱。

在Matlab中,可以使用stft函数来实现STFT。

通过调节窗函数的类型和窗长、重叠等参数,可以灵活地进行时频分析。

2. 连续小波变换(CWT)CWT是一种基于小波分析原理的时频分析方法。

它利用小波函数将信号分解成不同频率的成分,并计算每个时刻的频率特征。

在Matlab中,可以使用cwt函数来进行CWT。

通过选择合适的小波函数和尺度参数,可以获得更精确的时频信息。

三、信号频谱分析信号频谱分析是一种通过傅里叶变换等方法来分析信号的频域特征的方法。

它可以揭示信号中的频率成分、频谱密度等信息,对于理解信号的频率特性及其在系统中的传输和处理具有重要意义。

在Matlab中,信号频谱分析可以通过快速傅里叶变换(Fast Fourier Transform,FFT)等函数来实现。

1. 快速傅里叶变换(FFT)FFT是一种高效的傅里叶变换算法,能够快速计算信号的频谱。

在Matlab中,可以使用fft函数来进行FFT。

Matlab中的时频分析方法

Matlab中的时频分析方法

Matlab中的时频分析方法引言:时频分析是一种将信号在时间和频率两个维度上进行分析的方法,它能够揭示信号的瞬时频率变化以及频率成分的随时间的演变。

在实际应用中,时频分析常常被用于处理非平稳信号,如音频信号、地震信号等。

在Matlab中,有多种时频分析方法可以使用,本文将介绍其中一些主要的方法并进行比较和分析。

一、短时傅里叶变换(Short-Time Fourier Transform)短时傅里叶变换是最基本的时频分析方法之一,它将信号分成若干个小时间窗口,然后对每个时间窗口进行傅里叶变换得到频谱,从而获得信号在时间与频率上的变化信息。

Matlab中通过调用“spectrogram”函数可以实现短时傅里叶变换,该函数可以设置窗口长度、重叠率等参数,从而对不同信号进行合适的时频分析。

二、连续小波变换(Continuous Wavelet Transform)连续小波变换是一种将信号与连续小波函数进行卷积的方法,通过在时间和尺度上对小波函数进行变化来获得时频信息。

在Matlab中,可以通过调用“cwt”函数进行连续小波变换,该函数可以选择不同的小波基函数和尺度参数来实现不同的时频分析方法。

连续小波变换由于具有变尺度的特点,可以有效地分析信号的瞬时频率变化。

三、短时自相关函数(Short-Time Autocorrelation Function)短时自相关函数是通过在时间上对信号进行平移并与自身进行相关分析的方法,可以获得信号的瞬时自相似性。

在Matlab中,可以通过调用“xcorr”函数来计算信号的自相关函数,然后进行时频分析。

短时自相关函数能够在时域上提取信号的瞬时周期性信息,对于具有明显周期性变化的信号有着较好的适用性。

四、时变高阶谱(Time-Varying Higher-Order Spectra)时变高阶谱是一种通过对信号进行高阶统计分析来获取时频信息的方法,具有较好的时频分辨能力。

在Matlab中,可以通过调用“tfrpwv”函数进行时变高阶谱的计算,该函数可以设置不同的高阶统计参数来实现不同的时频分析。

实验二-MATLAB用于时域分析

实验二-MATLAB用于时域分析

实验二 MATLAB用于时域分析一、实验目的通过使用MATLAB完成系统的输出响应分析、稳定性分析、求动态性能指标以及稳态误差分析等工作。

二、实验原理在MATLAB中,可以通过单输入单输出系统的传递函数,进行系统的脉冲响应,阶跃响应以及一般输入响应等时域分析。

用到以下函数:单位阶跃响应 step(num,den,t)单位脉冲响应impluse(num,den,t)一般输入响应 y=Isim(num,den,u,t)时间t是事先定义的矢量,u为输入信号。

此外,还可以求出系统的超调量,调节时间以及稳态误差。

SIMULINK是MATLAB的一个附加组件,用来提供一个系统的建模、动态仿真及综合分析的工作平台。

SIMULINK模型可以用来模拟线性或非线性、连续或离散,或者两者混合的系统,即可用它来模拟几乎所有的动态系统。

三、实验内容通过MATLAB以及其中的SIMULINK完成系统的输出响应分析、稳定性分析、求动态性能指标以及稳态误差分析等工作。

四、实验代码1、一阶系统响应sys1=tf([100],[1 0]);sys2=tf([0.1],[1]);sys=feedback(sys1,sys2);step(sys)2、二阶系统响应wn=1t=0:0.1:12;num=[1];zeta1=0;den1=[1 2*zeta1 1];zeta3=0.3;den3=[1 2*zeta3 1];zeta5=0.5;den5=[1 2*zeta5 1];zeta7=0.7;den7=[1 2*zeta7 1];zeta9=1.0;den9=[1 2*zeta9 1];[y1,x,t]=step(num,den1,t);[y3,x,t]=step(num,den3,t);[y5,x,t]=step(num,den5,t);[y7,x,t]=step(num,den7,t);[y9,x,t]=step(num,den9,t);plot(t,y1,t,y3,t,y5,t,y7,t,y9)grid on;3、稳定性分析den=[1 1 2 24];roots(den)4、求动态性能指标t=0:0.01:2;num=[1000]';den=[1 34.5 1000];[y,x,t]=step(num,den,t);plot(t,y);maxy=max(y);yes=y(length(t));pos=100*(maxy-yes)/yesfor i=1:1:201if y(i)==maxy,n=i;endendtp=(n-1)*0.01for i=1:1:201if(y(i)<1.05&y(i)>0.95),n=i;endbreak;endts=(n-1)*0.015、稳态误差分析t=0:0.1:15;[num1,den1]=cloop([1],[1 1]);[num2,den2]=cloop([1],[1 1 0]);[num3,den3]=cloop([4 1],[1 1 0 0]);y1=impulse(num1,den1,t);y2=impulse(num2,den2,t);y3=impulse(num3,den3,t);subplot(311);plot(t,y1);subplot(312);plot(t,y2);subplot(313);plot(t,y3);er1=0-y1(length(t))er2=0-y2(length(t))er3=0-y3(length(t))6、求单位阶跃响应及其稳态误差t=0:0.1:20[num1,den1]=cloop([1],[1 1]);[num2,den2]=cloop([1],[1 1 0]);[num3,den3]=cloop([4 1],[1 1 0 0]);y1=step(num1,den1,t);y2=step(num2,den2,t);y3=step(num3,den3,t);subplot(311);plot(t,y1);subplot(312);plot(t,y2);subplot(313);plot(t,y3);er1=1-y1(length(t));er2=1-y2(length(t));er3=1-y3(length(t));7、求单位斜坡响应及其稳态误差t=0:0.1:20;t1=0:0.1:100;[num1,den1]=cloop([1],[1 1]);[num2,den2]=cloop([1],[1 1 0]);[num3,den3]=cloop([4 1],[1 1 0 0]);y1=step(num1,[den1 0],t1);y2=step(num2,[den2 0],t);y3=step(num3,[den3 0],t);subplot(311);plot(t1,y1,t1,t1);subplot(312);plot(t,y2,t,t);subplot(313);plot(t,y3,t,t);er1=t1(length(t1))-y1(length(t1))er2=t(length(t))-y2(length(t))er3=t(length(t))-y3(length(t))8、实例分析kp=[0.11 6];t=[0:0.01:1];num1=303.03*kp(1);den1=[0.00001 0.00633 0.20167 21.21*kp(1)+1];y1=step(num1,den1,t);num2=303.03*kp(2);den2=[0.00001 0.00633 0.20167 21.21*kp(2)+1];y2=step(num2,den2,t);subplot(211);plot(t,y1);subplot(212);plot(t,y2);gtext('kp=0.11');gtext('kp=6');9、SIMULINK用于系统仿真五、实验结果1、一阶系统响应2、二阶系统响应3、稳定性分析4、求动态性能指标5、稳态误差分析6、求单位阶跃响应及其稳态误差7、求单位斜坡响应及其稳态误差8、实例分析9、SIMULINK用于系统仿真六、实验总结通过本次实验实现了用MATLAB完成系统的输出响应分析、稳定性分析、求动态性能指标以及稳态误差分析等工作。

如何利用Matlab进行时频分析

如何利用Matlab进行时频分析

如何利用Matlab进行时频分析时频分析是一种在信号处理领域中常用的分析方法,能够揭示信号在时间和频率上的变化特征。

在工程领域和科学研究中,时频分析广泛应用于语音处理、图像处理、地震信号分析等领域。

而Matlab作为一种功能强大的科学计算软件,在时频分析方面有着丰富的工具和函数库,本文将介绍如何利用Matlab进行时频分析。

1. 时频分析的基本概念时频分析是通过研究信号在时间和频率上的变化特征来揭示信号内在结构的一种方法。

传统的频域分析方法如傅里叶变换只能提供信号在频率上的信息,而对于非稳态信号来说,时域分析方法如时域图谱亦无法全面反映信号的特征。

2. Matlab中的时频分析工具Matlab提供了多种时频分析工具,如短时傅里叶变换(Short-Time Fourier Transform,STFT)、连续小波变换(Continuous Wavelet Transform,CWT)等。

其中,STFT是最常用的一种时频分析方法。

3. 使用Matlab进行短时傅里叶变换短时傅里叶变换是时频分析中常用的一种方法,它通过将信号分割成短时段的小片段,然后对每个小片段进行傅里叶变换来获得信号在时频上的信息。

在Matlab中,可以使用stft函数来实现短时傅里叶变换。

4. 调整短时傅里叶变换参数在使用stft函数进行短时傅里叶变换时,可以通过调整一些参数来控制分析的精度和结果。

如时间窗口长度、频率窗口宽度等。

一般来说,时间窗口长度应根据信号的特性来选择,频率窗口宽度则影响分辨率。

5. 进一步分析时频图像通过进行短时傅里叶变换,我们可以得到信号的时频图像。

在Matlab中,可以使用imagesc函数来绘制时频图像,并对图像进行进一步分析。

如可以使用axis 函数来调整坐标轴的刻度和范围,colorbar函数来添加颜色刻度等。

6. MatLab中的连续小波变换除了短时傅里叶变换,Matlab还提供了连续小波变换的函数cwt。

实验三 利用MATLAB进行时域分析

实验三 利用MATLAB进行时域分析
系统显示的图形类似于上一个例子在命令窗口中显示了如下结果css5求阶跃响应的性能指标matlab提供了强大的绘图计算功能可以用多种方法求取系统的动态响应指标
实验三
一、实验目的
(1)学会使用MATLAB编程绘制控制系统的单位阶跃响应曲线;
(2)研究二阶控制系统中,、n对系统动态特性和时域指标的影响;
(3)掌握准确读取动态特性指标的方法;
lab2='zunibi = 0.25';text(0.3,1.5,lab2),
>> lab3='zunibi = 0.5';text(0.3,1.2,lab3),
lab4='zunibi = 0.75';text(0,3,1.05,lab4),
lab5='zunibi = 1';text(0,35,0.9,lab5),
den=[1,4,25];
step(num,den)
grid%绘制网格线。
title(¹Unit-Step Response of G(s)=25/(s^2+4s+25) ¹) %图像标题
图3-2MATLAB绘制的响应曲线
还可以用下面的语句来得出阶跃响应曲线
>> G=tf([0,0,25],[1,4,25]);
den = [1 2*sigma*10 100];
damp(den)
sys = tf(num,den);
i=i+1;
step(sys,2)
hold on
end
Eigenvalue Damping Freq. (rad/s)
0.00e+000 + 1.00e+001i 0.00e+000 1.00e+001

matlab对语音信号的处理及分析

matlab对语音信号的处理及分析

Matlab对语音信号的处理及分析摘要:Matlab语言是一种数据分析和处理功能十分强大的计算机应用软件,它可以将声音文件变换为离散的数据文件,然后利用其强大的矩阵运算能力处理数据,如数字滤波,时域和频谱分析等,他的信号处理与分析工具箱为语音信号的处理和分析提供了十分丰富的功能函数,利用这些函数可以快捷而又方便地完成语音信号的处理和分析。

关键词:Matlab、语音信号、数字滤波、信号处理Matlab for speech signal processing and analysisZhu hao(College of Physics and Electronic Engineering Information Wenzhou university)Abstract:Matlab language is a data analysis and processing functions are very powerful computer application software, sound files which can be transformed into discrete data files, then use its powerful ability to process the data matrix operations, such as digital filtering,when domain and frequency domain analysis and so on. Its signal processing and analysis toolkit for voice signal analysis provides a very rich feature function, use of these functions can be quick and convenient features complete voice signal processing and analysis.Keywords: Matlab,Voice Signal,Digital filtering,The signal processing正文:1.引言随着社会文化的进步和科学技术的发展,人类开始进入了信息化时代,用现代手段研究语音处理技术,使人们能更加有效地产生、传输、存储、和获取语音信息,这对于促进社会的发展具有十分重要的意义,因此,语音信号处理正越来越受到人们的关注和广泛的研究。

(完整word版)基于matlab的语音信号分析与处理

(完整word版)基于matlab的语音信号分析与处理

基于matlab的语音信号分析与处理摘要:滤波器设计在数字信号处理中占有极其重要的地位,FIR数字滤波器和IIR 滤波器是滤波器设计的重要组成部分。

Matlab功能强大、编程效率高, 特别是Matlab具有信号分析工具箱,不需具备很强的编程能力,就可以很方便地进行信号分析、处理和设计。

基于MATLAB有噪音语音信号处理的设计与实现,综合运用数字信号处理的理论知识对加噪声语音信号进行时域、频域分析和滤波。

使用窗函数法来设计FIR数字滤波器,用巴特沃斯、切比雪夫和双线性变法设计IIR 数字滤波器,并利用MATLAB作为辅助工具完成设计中的计算与图形的绘制。

关键词:数字滤波器;MATLAB;切比雪夫Abstract:Filter design in digital signal processing plays an extremely important role, FIR digital filters and IIR filter is an important part of filter design. Matlab is powerful, programming efficiency, Matlab also has a particular signal analysis toolbox, it need not have strong programming skills can be easily signal analysis, processing and design. MATLAB based on the noise issue speech signal processing design and implementation of digital signal processing integrated use of the theoretical knowledge of the speech signal plus noise, time domain, frequency domain analysis and filtering. The corresponding results obtained through theoretical derivation, and then use MATLAB as a programming tool for computer implementation.Implemented in the design process, using the windowfunction method to design FIR digital filters with Butterworth, Chebyshev and bilinear Reform IIR digital filter design and use of MATLAB as a supplementary tool to complete the calculation and graphic design Drawing.Keywords:digital filter; MATLAB; Chebyshev语音信号处理是研究用数字信号处理技术和语音学知识对语音信号进行处理的新兴的学科,是目前发展最为迅速的信息科学研究领域的核心技术之一。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

语音信号的时域与频域分析
一、用MATLAB实现语音信号的时域分析
1.MATLAB程序代码
(1)由麦克风采集语音数据,将采集的数据存成WAV文件(采样率为8000Hz),存在本人的文件夹中。

所用程序代码为:
clear;
close all;Fs=8000;
y=wavrecord(5*Fs,Fs,'double');wavwrite(y,'f:\\a');
soundview(y,Fs,'name')
(2)读取WAV文件,显示语音信号的波形。

所用程序代码为:
x=wavread('f:\\a.wav');
figure;plot(x);
axis([0,size(x,1),-0.35,0.3]);%坐标轴范围
title('语音信号时域波形');
xlabel('样点数');
ylabel('幅度');
(3)读取WAV文件,计算并显示语音的短时能量(窗函数为矩形窗,帧长为20)。

所用程序代码为:
x=wavread('f:\\a.wav');
x=double(x);
f=enframe(x,20,100);
energy=sum(abs(f),2);
subplot(2,2,1);plot(x);
axis([0,size(x,1),-0.7,0.9]);
title('语音信号时域波形');xlabel('样点数');
ylabel('幅度');subplot(2,2,2);plot(energy);
title('语音信号的短时能量');
legend('帧长LEN=20');
f=enframe(x,20,200);
energy=sum(abs(f),2);
subplot(2,2,3);plot(energy);
title('语音信号的短时能量');
legend('帧长LEN=100');f=enframe(x,20,400);energy=sum(abs(f),2); subplot(2,2,4);plot(energy);title('语音信号的短时能量');legend('帧长LEN=200');(4)读取WAV文件,计算并显示语音的短时过零率(窗函数为矩形窗,帧长为256,帧移为128),所用程序代码为:
x=wavread('f:\\a.wav');
x=double(x);
LEN=100;INC=100;
f=enframe(x,LEN,INC);%分帧%计算短时过零率
z=zeros(size(f,1),1);
difs=0.01;
for i=1:size(f,1)
s=f(i,:);
for j=1:(length(s)-1)
if s(j)*s(j+1)<0&abs(s(j)-s(j+1))>difs;
z(i)=z(i)+1;end end end
subplot(2,1,1);
plot(x);
axis([0,size(x,1),-0.35,0.3]);
title('语音信号时域波形');xlabel('样点数');ylabel('幅度');subplot(2,1,2);plot(z); title('语音信号的短时过零率');xlabel('帧数');ylabel('短时过零率');
(5)读取WAV文件,当窗函数为矩形窗、帧长为20时,计算一帧浊音的短时自相关函数所用的程序代码为:
x=wavread('f:\\a.wav');
x=double(x);LEN=100;INC=100;
f=enframe(x,LEN,INC);
ff=f(72,:);%选取一帧浊音信号
ff=ff'.*rectwin(length(ff));%计算短时自相关
N=LEN;
R=zeros(1,N);
for k=1:N
R(k)=sum(ff(k:N).*ff(1:N-k+1));
end
for k=1:N
R1(k)=R(k)/R(1);
End
subplot(2,1,1);plot(ff);
axis([0,N,-0.5,0.5])
title('加矩形窗的语音帧');xlabel('样点数');ylabel('幅度');
subplot(2,1,2);plot(R1);
axis([0,N,-1,1])
title('加矩形窗的短时自相关函数');xlabel('k');ylabel('R(k)');
2.图像及结论
(1)利用8000Hz的采样频率对输入的语音信号进行采样,采样点数为40000个,持续时间为4秒,存储格式为double。

之后将数字语音数据写入F盘的a.wav文件,这段波形是读音为’ke’的波形,并通过放音设备进行回放。

回放的GUI界面如图1所示,通过该界面可以观察采集的语音信号。

图1 用soundview函数显示的语音信号
(2)将a.wav文件读取出来,并显示文件中的语音信号波形,显示的波形如图2所示。

该波形是汉语拼音“ke”的时域波形。

从图2可以看出,[K]是清音,它的波形峰值较低;[e]是浊音,它的波形峰值较高。

图2语音“ke”的时域波形
(3)当帧长取不同值时计算语音信号的短时能量,如图3所示。

从图3可以看出,浊音短时能量大,短时平均幅度大,短时过零率低,浊音具有较强的能量值,音段内隐藏信息的能力高。

清音短时能量小,短时平均幅度小,能量值较低,音段内隐藏信息的能力较低;
图3不同帧长对应的短时能量
(4)读取a.wav中的语音数据,之后计算每一帧的短时过零率,最后将原始语音信号和短时过零率显示出来,如图4所示。

从图4可以看出,清音的过零率较高,浊音的过零率较低。

图4短时过零率
(5)读取a.wav中的语音数据,之后对数据进行分帧加窗处理,帧长为256,帧移为128。

选取其中的一帧浊音(第*帧)并计算这帧的短时自相关函数。

当窗函数分别为矩形窗和汉明窗时,截取的语音信号和短时自相关函数如图5和图6所示。

从图5和图6可以看出,矩形窗能够比汉明窗更明显的显示出第一个峰值。

当窗函数为矩形窗,不同帧长(帧移=帧长)的一帧浊音对应的短时自相关函数如图7和图8所示。

从图7和图8可以看出,帧长越长,越容易区分其最大值。

当窗函数为矩形窗,帧长为256,帧移为128,选取一帧清音,获得的短时自相关函数如图9所示。

从图5和图9可以看出,浊音具有明显的周期性,清音无明显周期。

图5加矩形窗的短时自相关函数图6加汉明窗的短时自相关函数。

相关文档
最新文档