信号处理课程设计基于matlab的语音信号分析和处理内容摘要:

R DF FIR DF ( 1)相位一般是非线性的 ( 1)相位可以做到严格线性 ( 2)不一定稳定 ( 2)一定是稳定的 ( 3)不能用 FFT 作快速卷积 ( 3)信号通过系统可采用快速卷积 ( 4)一定是递归结构 ( 4)主要是非递归结构,也可含递归环节 ( 5)对频率分量的选择性好(零极点可同时起作用) ( 5)选择性差 ( 6)相同性能下阶次较低 ( 6)相同性能下阶次高 ( 7)有噪声反馈,噪声大 ( 7)噪声小 ( 8)运算误差大,有可能出现极限环振荡 ( 8)运算误差小,不会出现 极限环振荡 ( 9) H(z)设计有封闭形式的公式,一次完成 ( 9)没有封闭形式的设计公式,须靠经验与反复调试 7 ( 10)对计算手段的要求较低 ( 10)一般需用计算机计算 ( 11)主要用于设计分段常数的标准低通、高通、带通、带阻和全通滤波器 ( 11)还可设计正交变换器、微分器、线性预测器、回波抵消器、均衡器、线性调频器等各种网络,适用范围广 从上面的简单比较我们可以看到 IIR 与 FIR 滤波器各有所长,所以在实际应用时应该从多方面考虑来加以选择。 例如,从使用要求上来看,在对相位要求不敏感的场合,如语言通讯等, 选用 IIR 较为合适,这样可以充分发挥其经济高效的特点,而对于图像信号处理,数据传输等以波形携带信息的系统,则对线性相位要求较高,如果有条件,采用 FIR 滤波器较好,当然,在实际应用中应考虑经济上的要求以及计算工具的条件等多方面的因素。 整体来看, IIR 滤波器达到同样效果阶数少,延迟小,但是有稳定性问题,非线性相位; FIR 滤波器没有稳定性问题,线性相位,但阶数多,延迟大。 而不论是 IIR 滤波器还是 FIR 滤波器的设计都包括三个步骤: (1) 按照实际任务的要求,确定滤波器的性能指标。 (2) 用一个因果、稳定的离散 线性时不变系统的系统函数逼近性能要求。 根据系统的不同的要求可以考虑用 IIR 系统函数或 FIR 系统函数去逼近。 (3) 利用有限精度算法实现系统函数,包括结构选择、字长选择等。 但 IIR 滤波器和 FIR 滤波器的设计方法完全不同。 IIR 滤波器设计方法有间接法和直接法,间接法是借助于模拟滤波器的设计进行的。 其设计步骤是:先设计过渡模拟滤波器得到系统函数 H( s),然后将 H( s)按某种方法转换成数字滤波器的系统函数 H(z)。 FIR 滤波器比鞥采用间接法,常用的方法有窗函数法、频率采样发和切比雪夫等波纹逼近法。 对于线性相位滤 波器,经常采用 FIR 滤波器。 8 四、语音信号分析和滤波处理 语音信号的采集 把语音信号并保存为 .wav 文件,长度小于 50秒,并对语言信号进行采样;录制的软件可以使用 Windows 自带的录音机,或者也可以使用其它专业的录音软件,录制时需要配备录音硬件(如麦克风),为了方便比较,需要在安静、无噪音、干扰小的环境下录。 语音信号的读入与打开 在 MATLAB 中, [y,fs,bits]=wavread(39。 Blip39。 ,[N1 N2])。 用于读取语音,采样值放在向量 y中, fs 表示采样频率 (Hz), bits 表示采样位数。 [N1 N2]表示读取的值从 N1 点到 N2 点的值。 sound(y)。 用于对声音的回放。 向量 y 则就代表了一个信号,也即一个复杂的“函数表达式”,也可以说像处理一个信号的表达式一样处理这个声音信号。 下面是语音信号在 MATLAB 中的语言程序,它实现了语音的读入与打开,并绘出了语音信号的波形频谱图。 function [ output_args ] = yuying( input_args ) %UNTITLED Summary of this function goes here % Detailed explanation goes here [x,fs,bits]=wavread(39。 C:\Users\Administrator\Desktop\39。 )。 X=fft(x,4096)。 magX=abs(X)。 angX=angle(X)。 subplot(221)。 plot(x)。 title(39。 原始信号波形 39。 )。 subplot(222)。 plot(X)。 title(39。 原始信号频谱 39。 )。 subplot(223)。 plot(magX)。 title(39。 原始 信号幅值 39。 )。 subplot(224)。 plot(angX)。 title(39。 原始信号相位 39。 )。 end 9 图 41 语音信号的读入与打开 用 MATLAB 绘制出语音信号的时域波形图和原始语音信号的频率响应图和原始语音信号的 FFT 频谱图。 程序设计如下: function [ output_args ] = xinhao( input_args ) %UNTITLED Summary of this function goes here % Detailed explanation goes here fs=22050。 %语音信号采样频率为 22050 [x,fs,bits]=wavread(39。 C:\Users\Administrator\Desktop\39。 )。 %播放语音信号 y1=fft(x,4096)。 %对信号做 4096 点 FFT 变换 f=fs*(0:511)/1024。 figure(1) plot(x) %做原始语音信号的时域波形图 title(39。 原始语音信号时域图 39。 )。 xlabel(39。 time n39。 )。 ylabel(39。 fuzhi n39。 )。 figure(2) freqz(x) %绘制原始语音信号的频率响应图 title(39。 原始语音信号频率响应图 39。 ) 10 figure(3) plot(f,abs(y1(1:512)))。 title(39。 原始语音信号频谱图 39。 ) xlabel(39。 Hz39。 )。 ylabel(39。 fudu39。 )。 end 11 图 42语言信号分析 在 MATLAB 软 件平台下,给原始的语音信号叠加上噪声,噪声类型分为如下几种:( 1)单频噪色(正弦干扰);( 2)高斯随机噪声。 绘出加噪声后的语音信号时域和频谱图,在视觉上与原始语音信号图形对比,也可通过 Windows 播放软件从听觉上进行对比,分析并体会含噪语音信号频谱和时域波形的改变。 程序代码如下: function [ output_args ] = jiazao( input_args ) %UNTITLED Summary of this function goes here % Detailed explanation goes here fs=22050。 %语音信号采样频率为 22050 [x,fs,bits]=wavread(39。 C:\Users\Administrator\Desktop\39。 )。 t=0:1/22050:(size(x)1)/22050。 y1=fft(x,4096)。 %对信号做 4096 点 FFT 变换 f=fs*(0:511)/1024。 noise_mu=0。 noise_var=。 x0=randn(size(x)).*sqrt(noise_var)+noise_mu。 x1=x+x0。 ts=1/fs。 % 绘制在原始信号上加随机噪声的信号图 ta=(length(x)1)/fs。 12 t=0:ts:ta。 figure(1)。 subplot(2,1,1)。 plot(x)。 %做原始语音信号的时域图形 title(39。 原语音信号时域图 39。 ) xlabel(39。 t39。 )。 ylabel(39。 x39。 )。 subplot(2,1,2)。 plot(x1)。 title(39。 加随机噪声后语音信号时域图 39。 )。 xlabel(39。 t39。 )。 ylabel(39。 x139。 )。 grid on。 y2=fft(x1,1024)。 %对信号做 1024 点 FFT 变换 f=fs*(0:511)/1024。 figure(2) subplot(2,1,1)。 plot(abs(y1))。 title(39。 原始语音信号频谱 39。 )。 xlabel(39。 Hz39。 )。 ylabel(39。 fudu39。 )。 Subplot(2,1,2)。 %绘制原始语音信号的频率响应图 plot(f,abs(y2(1:512)))。 title(39。 加随机噪声后的语音信号频谱图 39。 ) xlabel(39。 Hz39。 )。 ylabel(39。 fudu39。 )。 grid on。 t=0:(size(x)1)。 %加入正弦噪音 Au=。 d=[Au*sin(6*pi*5000*t)]39。 x2=x+d。 figure(3) subplot(2,1,1)。 13 plot(x)。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。