基于matlab的fir滤波器的设计 一 实验目的: 1 语音信号的采集。 2 设计滤波器滤波。 3 滤波前后的信号波形、频谱比较、回访语音消息的比较。 4 GUI设计(选作)。 二 报告要求: 1 题目的意义,所做工作以及系统的主要功能。 2 滤波器的原理。 3 软件设计流程。 4 源程序。 5 各波形图、频谱图。 三 实验步骤: 1 采集语音信号,用windows自带录音机录制。T<2s 2 对语音信号的采样及频谱分析。 3 噪声的添加: a 录制带噪声的语音信号。 b 产生噪声信号叠加到语音信号。 4设计滤波器。 5对语音信号进行滤波。 6 对滤波前后的波形及频谱进行比较。 7 GUI界面(选作) 语音信号的读取 在matlab软件平台下,利用wavread函数对语音信号进行采样,记住采样频率和采样点数。通过使用wavread函数,理解采样频率、采样位数等概念。 wavread函数调用格式 y=wavread(file),读取file所规定的wav文件,返回采样值放在向量y中。 [y,fs,nbits]=wavread(‘C:\Users\Administrator\Desktop\dog.wav’),采样值放在向量y中,fs表示采样频率(hz),nbits表示采样位数。 y=wavread(file,N),读取钱N点的采样值放在向量y中。 y=wavread(file,[N1,N2]),读取从N1到N2点的采样值放在向量y中。 对语音信号“dog.wav”进行采样其程序如下: [y,fs,nbits]=wavread('dog.wav') 结果如下: 可知该语音信号的采样频率fs =11025Hz ,数据位nbits = 8Bit。 语音信号的频谱分析 首先画出语音信号的时域波形,然后对语音信号进行频谱分析。在Matlab 中可以利用函数fft 对信号行快速傅里叶变换,得到信号的频谱图 其程序如下: y=wavread('C:\Users\Administrator\Desktop\dog.wav'); sound(y,fs,nbits); %对加载的语音信号进行回放 Y=fft(y); %快速傅里叶变换 subplot(2 ,1 ,1),plot(y);title('原始信号波形'); subplot(2 ,1 ,2),plot(abs(Y));title('原始信号频谱'); 程序结果如下图 3: 噪声信号的构建 程序如下: N=length(y); %求出语音信号的长度 noise=randn(N,1)/20; %噪声信号的函数 z=fft(noise); %快速傅里叶变换 subplot(2 ,1 ,1),plot(noise);title('噪声信号波形'); subplot(2 ,1 ,2),plot(abs(z));title('噪声信号频谱'); sound(noise) 加入噪声的语音信号的频谱 matlab程序如下: y=wavread('C:\Users\Administrator\Desktop\dog.wav'); N=length(y); k=y+noi...