语音信号的分析
我没有用MATLAB做过实时的分析,也不了解添加analoginput对象后怎么样,但是我想说的是语音处理的一般步骤是的先对模拟信号进行采样(这个咱都知道),然后得对其进行端点识别,就是判断出语音的起点和终点(网上有MATLAB的程序),然后进行预加重(抬高高频分量),之后再分帧加窗,一般来说一阵的时间在10ms-20ms较合适,然后对每一帧单独进行FFT,并且前后帧之间还得有一部分的重叠。你说的要出动态图,得考虑一个计算速度的问题,PC的速度是非常快的,对于FFT来说,用时极少,所以你的程序得加延时,如果你学习过DSP的话可以考虑用DSP来做
第二种,记得要改73行声音路径
% % 程序1:用MATLAB对原始语音信号进行分析,画出它的时域波形和频谱
% clear all
% close all
% clc
% fs=8000; %语音信号采样频率为8000
% x1=wavread('I:\2010教案\2010数字信号处理afarin_8k.wav',[1 4*5120]);
% t=(0:length(x1)-1)/8000;
% y1=fft(x1,2048); %对信号做2048点FFT变换
% f=fs*(0:1023)/2048;
% figure(1)
% plot(t,x1) %做原始语音信号的时域图形
% grid on; axis tight;
% title('原始语音信号');
% xlabel('time(s)');
% ylabel('幅度');
% figure(2)
% plot(f,abs(y1(1:1024))) %做原始语音信号的FFT频谱图
% grid on; axis tight;
% title('原始语音信号FFT频谱')
% xlabel('Hz');
% ylabel('幅度');
% sound(x1)
% %
% % **************************************************************************************************************************
%
% % % 程序2:给原始的语音信号加上一个高频余弦噪声,频率为3.8kHz。
% % 画出加噪后的语音信号时域和频谱图,与原始信号对比,可以很明显的看出区别。
% clear all;
% close all
% clc;
% fs=8000;
% x1=wavread('I:\2010教案\2010数字信号处理afarin_8k.wav',[1 4*5120]);
% t=(0:length(x1)-1)/8000;
% f=fs*(0:1023)/2048;
% Au=0.5;
% % d=[Au*cos(2*pi*3800*t)]'; %噪声为3.8kHz的余弦信号
% d=0.25*rand(1,length(x1))'; %随机噪声
% x2=x1+d;
% y1=fft(x1,2048);
% y2=fft(x2,2048);
% figure(1)
% subplot(2,1,1);
% plot(t,x1)
% grid on; axis tight;
% title('原始语音信号');
% xlabel('time(s)');
% ylabel('幅度');
% subplot(2,1,2);
% plot(t,x2)
% grid on; axis tight;
% title('加噪后的信号');
% xlabel('time(s)');
% ylabel('幅度');
% figure(2)
% subplot(2,1,1);
% plot(f,abs(y1(1:1024))); grid on; axis tight;
% title('原始语音信号频谱');
% xlabel('Hz'); ylabel('幅度');
% subplot(2,1,2);
% plot(f,abs(y2(1:1024)));grid on;axis tight;
% title('加噪语音信号频谱');
% xlabel('Hz');ylabel('幅度');
% sound(x2)
%
% **********************************************************************************************************************
%
% 程序3: 双线性变换法设计Butterworth滤波器
clear all;
close all
clc;
fs=8000;
x1=wavread('I:\2010教案\2010数字信号处理afarin_8k.wav',[1 4*5120]);
t=(0:length(x1)-1)/8000;
f=fs*(0:1023)/2048;
A1=0.05; A2=0.10;
d=[A1*cos(2*pi*3800*t)+A2*sin(2*pi*3600*t)]';
% d=0.25*rand(1,length(x1))'; %随机噪声
x2=x1+d;
wp=0.8*pi;
ws=0.85*pi;
Rp=1;
Rs=15;
Fs=8000;
Ts=1/Fs;
wp1=2/Ts*tan(wp/2); %将模拟指标转换成数字指标
ws1=2/Ts*tan(ws/2);
[N,Wn]=buttord(wp1,ws1,Rp,Rs,'s'); %选择滤波器的最小阶数
[Z,P,K]=buttap(N); %创建butterworth模拟滤波器
[Bap,Aap]=zp2tf(Z,P,K);
[b,a]=lp2lp(Bap,Aap,Wn);
[bz,az]=bilinear(b,a,Fs); %用双线性变换法实现模拟滤波器到数字滤波器的转换
[H,W]=freqz(bz,az); %绘制频率响应曲线
figure(1)
plot(W*Fs/(2*pi),abs(H))
grid on;axis tight;
xlabel('频率(Hz)'); ylabel('频率响应')
title('Butterworth')
f1=filter(bz,az,x2); % 滤波
figure(2)
subplot(2,1,1)
plot(t,x2) %画出滤波前的时域图
grid on; axis tight;
title('滤波前的时域波形');
subplot(2,1,2)
plot(t,f1); %画出滤波后的时域图
grid on; axis tight;
title('滤波后的时域波形');
y3=fft(f1,2048);
figure(3)
y2=fft(x2,2048);
subplot(2,1,1);
plot(f,abs(y2(1:1024))); %画出滤波前的频谱图
grid on; axis tight;
title('滤波前的频谱')
xlabel('Hz');
ylabel('幅度');
subplot(2,1,2)
plot(f,abs(y3(1:1024))); %画出滤波后的频谱图
grid on; axis tight;
title('滤波后的频谱')
xlabel('Hz');
ylabel('幅度');
sound(x2,8000);
sound(f1,8000);
% %
% % ********************************************************************************************************************
% %
% 程序4:窗函数法设计滤波器:
% clear all;
% clc;
% fs=8000;
% x1=wavread('I:\2010教案\2010数字信号处理afarin_8k.wav',[1 4*5120]);
% t=(0:length(x1)-1)/8000;
% f=fs*(0:2047)/4096;
% A1=0.05;A2=0.10;
% d=[A1*cos(2*pi*3600*t)+A2*sin(2*pi*3800*t)]';
% x2=x1+d;
% wp=0.8*pi;
% ws=0.85*pi;
% wdelta=ws-wp;
% N=ceil(6.6*pi/wdelta); %取整
% wn=(0.8+0.85)*pi/2;
% [bz,az]=fir1(N,wn/pi,hamming(N+1)); %选择窗函数,并归一化截止频率
% figure(1)
% freqz(bz,az);
% grid on; axis tight;
% f2=filter(bz,az,x2);
% figure(2)
% subplot(2,1,1)
% plot(t,x2);
% grid on;axis tight;
% title('滤波前的时域波形');
% subplot(2,1,2)
% plot(t,f2);
% grid on; axis tight;
% title('滤波后的时域波形');
% y3=fft(f2,4096);
% f=fs*(0:2047)/4096;
% figure(3)
% y2=fft(x2,4096);
% subplot(2,1,1);
% plot(f,abs(y2(1:2048)));
% grid on; axis tight;
% title('滤波前的频谱')
% xlabel('Hz');
% ylabel('幅度');
% subplot(2,1,2)
% plot(f,abs(y3(1:2048)));
% grid on; axis tight;
% title('滤波后的频谱')
% xlabel('Hz');
% ylabel('幅度');
% sound(f2,8000);
%
% % ***********************************************************************************************************************
% %
% % 程序5: 补零,提高分辨率。
% clear all; close all;
% t=0:0.01:3;
% s=sin(2*pi*5*t)+2*sin(2*pi*15*t);
% w=abs(fft(s));
% w2=abs(fft(s,4*301)); % 补零
% figure;
% subplot(211); plot(w);
% grid on; axis tight;
% subplot(212); plot(w2);
% grid on; axis tight;
%
% % ——理想滤波器——***************************************************************************
% %
% % 程序6: 理想低通滤波器
% clear all;close all;
% X=[ones(1,51) zeros(1,60) ones(1,50)]; % Frequency response of an ideal low-pass filter
% x=ifft(X); % IDFT of X with the same number of points
% Y=fft(x,483); % IDFT of X after it is padded with zeros
% stem([1:161]/161-0.5,abs(fftshift(X))); % figure 1
% axis([-0.5,0.5,0,1.5]);
% figure;
% stem(real(x)); % figure 2
% figure;
% stem([1:483]/483-0.5,abs(fftshift(Y))); % figure 3
% axis([-0.5,0.5,0,1.5]);
% figure;
% stem([1:161]/161-0.5,abs(fftshift(Y(1:3:481)))); % figure 4
% axis([-0.5,0.5,0,1.5]);
% % **********************************************************************************************************************
% % 程序7:理想带阻滤波器
% clear all;
% clc
% wp=0.8*pi;
% ws=0.85*pi;
% wdelta=ws-wp;
% N=ceil(6.6*pi/wdelta);
% wn=(0.8+0.85)*pi/2;
% [bz,az]=fir1(N,wn/pi,hamming(N+1));
% w=abs(fft(bz));w2=abs(fft(bz,399));
% figure;
% subplot(211);plot(w);grid on; axis tight;
% subplot(212);plot(w2);grid on; axis tight;
% h(1:201)=1;h(22:181)=0;
% x1=ones(1,17); x2=ones(1,11);
% w1=fft(x1,32); w2=fft(x2,32);
% w3=w1.*w2; x3=ifft(w3); plot(x3);
%
以上结论来自如下分析:
1.老人家太贪心了!
2.老人家太贪心了!
3.老人家太贪心了!
4.老人家太贪心了!
...
建议:
将上述问题分解为50-100个小问题(每个问题涉及的概念不要超过3个)
总结:
不要总奢望能有人替你完成所有的事。即便有人可以做,也需要你付出相应的代价。
在语音信号处理参数分析前为什么要进行预处理
一般性的时频分析:短时傅里叶分析,小波分析 针对人的听觉特性的:Mel频率倒谱系数分析(MFCC),属于倒谱域的分析, 其它的属于时域分析。
语音信号倒谱的应用
首先,语音信号的倒谱分析在语音识别中有重要应用。在语音识别系统中,通常需要将输入的语音信号转换为一种更易于分析和比较的形式。倒谱分析就是一种实现这一目标的有效方法。倒谱是将语音信号的频谱进行反变换,得到的新的时间序列。这种反变换过程可以凸显出语音信号的一些重要特征,比如音素的起始和结束...
语音信号处理中怎么理解分帧,为什么?
前面说过,口型的变化是导致信号不平稳的原因,所以在一帧的期间内口型不能有明显变化,即一帧的长度应当小于一个音素的长度。正常语速下,音素的持续时间大约是 50~200 毫秒,所以帧长一般取为小于 50 毫秒。从微观上来看,它又必须包括足够多的振动周期,因为傅里叶变换是要分析频率的,只有重复足够...
基频是什么意思
关于“基频是什么意思”如下:基频在音乐和声音处理领域是一个重要的概念,它指的是一个周期性声音信号的最低频率。在音乐中,基频也被称为“基音”,它决定了音高和音调的基本特征。在声音信号的分析和处理中,基频是指声音信号中最低的频率成分。这个频率是声音信号中最基础的振动频率,其他所有的频率...
语音信号提取声学特征时,MFCC和PLP的区别是什么?
相比之下,PLP采用线性预测分析,其核心思想是通过p阶的线性组合来近似原始信号,以最小化均方误差。其中,自回归AR模型是最常用的策略,但当遇到摩擦音这类同时包含极点和零点的复杂信号时,PLP的处理能力更为出色,因为它能更好地适应这类信号的特性。在具体技术细节上,MFCC和PLP的主要区别体现在:频...
matlab怎样分析语音信号的频谱
因为在进行下一个滤波器分析时的噪声与上一个滤波器分析时的噪声完全不一样,这种情况唯有选择实时频谱分析仪器分析才有意义。2、 实时,它的简单涵义就是“即时”,也就是“立即”的意思。3、实时频谱分析仪器采用数字信号处理办法,将模拟信号变换成数字信号,边 测量边进行频谱分析,速度非常快,立即...
测试声音频率的元器件有哪些?
测试声音频率的元器件主要包括以下几种:1. 音频信号发生器:音频信号发生器可以产生不同频率的正弦波、方波、三角波等信号,用于测试音频电路的频率响应和失真等性能。2. 音频功放:音频功放可以放大音频信号,用于测试音频电路的输出功率和失真等性能。3. 音频分析仪:音频分析仪可以对音频信号进行分析和...
4、简述语音信号的频谱和功率谱的作用
频谱是对动态信号在频率域内进行分析对动态信号在频率域内进行分析对动态信号在频率域内进行分析对动态信号在频率域内进行分析,分析的结果是以频率为横坐标的各种物理量的谱线和曲线,即各种幅值以频率为变量的频谱函数Fω。
f0值的介绍
通过分析音频信号的波形和频谱,可以得到基频的相关信息。同时,对于复杂的音频信号,还需要结合其他音频特征参数进行分析,以得到更准确的结果。在实际应用中,还可以通过比较不同人的语音样本的基频变化来研究个体差异和变化规律。随着科技的发展,未来可能会涌现出更多先进的分析技术和算法,用于更准确快速地...
1.音频信号处理的基本问题
答:主要是分析信号的频率的组成成分。答:首先看离散fft的基本转换公式:答:有高斯白噪声和粉红噪声。高斯白噪声可以在matlab中使用randn函数来产生,而粉红噪声就可以在高斯白噪声的基础上加一个滤波器,这样就可以达到效果了。信号分为确定性信号和随机信号,随机信号常用统计量来描述。最常用统计量有...
矣法心脑: 语音信号被matlab导入以后,就是一个向量,他代表了语音信号的波形. 如 waveread 函数,就可以实现wav格式的语音信号导入. 然后可以设计各种滤波器,对语音信号进行处理.同样可以用fft对语音信号进行频谱分析.
古浪县18927343044: 为什么要对语音信号短时分析? - ?
矣法心脑: 语音信号的时域参数: 短时能量: 短时平均幅度: 短时过零率: 短时自相关函数: 短时平均幅度差函数:要求: (1) 采集一段语音信号,采样率为8KHZ,量化精度为16比特线性码; (2) 分析帧长30ms(或10ms~50ms); (3) 利用...
古浪县18927343044: 基于MATLAB采集语音信号分析与处理 - ?
矣法心脑: 语音信号的采集和频谱分析: [y,fs,bits]=wavread('voice'); %读取音频信息(双声道,16位,频率44100Hz) sound(y,fs,bits); %回放该音频 Y=fft(y,4096); %进行傅立叶变换 subplot(211); plot(y); title('声音信号的波形'); subplot(212) plot(abs...
古浪县18927343044: 应用Matlab对含噪声的语音信号进行频谱分析及滤波 - ?
矣法心脑: 实时频谱仪的应用: 1、 在噪声频谱分析中通常使用的是模拟滤波器,这种滤波器使用时都要一个滤波器接一个滤波器依次进行频谱测量分析.由于滤波器以及检波电路都有一定时间常数,通常需要几秒钟才能达到稳定.因此,如果使用1/1倍...
古浪县18927343044: 4、语音信号的短时频域分析可以用哪几种方式解释 - 上学吧普法考试?
矣法心脑: 很多领域都有时域分析和频域分析的概念,我是从自动控制原理的方面来说的.时域分析比较直观,参数都是直接反映系统响应的,比如上升时间,调节时间,超调量这些,但是时域数据有时比较难以获得.频域分析不如时域直观,频域参数无法直接反映系
古浪县18927343044: 求论文(语音识别) - ?
矣法心脑: 试读结束,如需阅读或下载,请点击购买> 原发布者:吴泽琼 语音信号的分析与处理 摘要:本文针对语音信号时域、频域参数进行了系统详尽的分析,并在MATLAB环境下实现了基于DTW算法的特定人孤立词语音信号的识别.关键词:语音信...
古浪县18927343044: 基于matlab的语音信号分析与处理 - ?
矣法心脑: 使用help wavread 就有MATLAB自带的一个例子的~ wavread 函数就能读入西要的 .wav 的语音信号的采样率 和比特率了
古浪县18927343044: 高分求 语音信号分析与处理及其MATLAB实现 的课程设计! - ?
矣法心脑: 在MATLAB软件平台进行频谱分析;并对所采集的语音信号加入干扰噪声,对加入噪声的信号进行频谱分析,设计合适的滤波器滤除噪声,恢复原信号. 这部分我有程序 其他就帮补上了
古浪县18927343044: 语音信号的傅里叶变换(FFT)目的是什么 - ?
矣法心脑: 语音无非就是声波的一种,属于机械波,而机械波的两个重要的属性就是振幅和频率,对应声波的音长和音调; 而傅里叶变换的主要目的就是分析频谱,由此可见语音信号的傅里叶变换的目的就是分析语音信号的音调. 个人以为不同事物所能发出的音调应该是稳定的或是在一定的范围内浮动,所以通过语音信号的傅里叶变换可间接实现对语音源的分析和推断.