音频信号处理频谱混叠滤波

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

2016-2017学年(1)学期

信号与系统综合训练项目报告1

班级电气14-5

姓名___王怡然史晓玉

学号14050405201405040514

指导教师李楠

信号与系统综合训练项目一

声音信号的频谱分析与处理

1目的

1.加深对信号频域分析基本概念、基本理论和基本方法的理解和掌握

2.初步学会使用matlab以及音频工具进行声音信号的分析。

3.通过观察声音信号的频谱,加深对实际信号分析问题的认识和理解,学会运用fft等理论工具分析信号频谱。

4.使用低筒滤波器对音频信号进行处理,并听取处理后音频效果,与之前信号进行对比,得出结论。

5.利用matlab将该音频信号产生带回音的音频信号,消除带回音的音频信号,掌握系统以及信号处理技术在声音信号处理中的应用。

2原始信号的时域波形,FFT频谱分析

1.1原始声音打开

在MATLAB中,[x,fs,bits]=wavread('2014102419-15-33.wav');用于读取语音,sound(x,fs,bits);用于对声音的回放。

gequnn.wav

2.1相关程序

在MATLAB中,[y,fs,bits]=wavread('Blip',[N1N2]);用于读取语音,采样值放在向量y中,fs表示采样频率(Hz),bits表示采样位数。[N1N2]表示读取从N1点到N2点的值(若只有一个N的点则表示读取前N点的采样值)。sound(x,fs,bits);用于对声音的回放。向量y则就代表了一个信号(也即一个复杂的“函数表达式”)也就是说可以像处理一个信号表达式一样处理这个声音信号。利用函数fft对信号行快速傅里叶变换,得到信号的频谱特性,从而加深对频谱特性的理解。n=length(y),求出语音信号的长度。Y=fft(y,n),快速傅里叶变换。grid添加网络。subplot把画图区域划分。

程序如下:

[x,fs,bits]=wavread('C:\Users\ER01604261154\Desktop\g equnn.wav');

sound(x,fs,bits);

n=length(x);

figure(1);

subplot(3,1,1);

plot(x);grid on;

xlabel('时间');ylabel('幅值');title('原始信号时域波形');

subplot(3,1,2);

wx=fft(x);

plot(abs(wx));grid on;

xlabel('频率');ylabel('幅值');title('幅频特性');

subplot(3,1,3);

plot(angle(wx));grid on;

xlabel('频率');ylabel('相位');title('相频特性');

2.1.1频谱分析:

3白噪声的产生

白噪声就是频谱为常数,协方差函数在delay=0时不为0,在delay不为0时等于0,即样本点互不相关。当随机的从高斯分布中获取采样值时,采样点所组成的随机过程就是“高斯白噪声”。而MATLAB中函数y=randn(1,length(t))是一个产生length(t)个随机数的函数,即从高斯分布中获取样值并集合采样点

的随机过程,所以它可以用来产生高斯白噪声。将高斯白噪声叠加到原始的音频信号上。

3.1加噪声程序:

[y,fs,nbits]=wavread('C:\Users\ER01604261154\Desktop\ gequnn.wav');

n=length(y);

Noise=0.2*randn(n,2);

s=y+Noise;

sound(s,fs,nbits);

figure(1);

subplot(2,1,1);

plot(s);

title('加噪语音信号的波形')

grid;

S=fft(s);

subplot(2,1,2);

plot(abs(S));

title('加噪语音信号的频谱波形')

grid;

3.1.1加噪声后的频谱分析

IIR滤波器原理

IIR是无限冲激响应滤波器,原理是进行卷积计算,即对输入信号进行卷积计算。冲激响应不变法是使数字滤波器在时域上模拟滤波器,但是它们的缺点是产生频率响应的混叠失真,这是由于从s平面到z平面是多值的映射关系所造成的。

双线性变换法是使数字滤波器的频率响应与模拟滤波器的频率响应相似的一种变换方法。为了克服多值映射这一缺点,我们首先把整个s平面压缩变换到某一中介的s1平面的一条横带里,再通过变换关系将此横带变换到整个z平面上去,这样就使得s平面与z平面是一一对应的关系,消除了多值变换性,也就消除了频谱混叠现象。

双线性法设计IIR数字滤波器的步骤:

1)将数字滤波器的频率指标{k}由Wk=(2/T)*tan(wk),转换为模拟滤波器的频率指标{k}.

2)由模拟滤波器的指标设计由H(s)转换为H(z)。

3.2去噪声程序

[y,fs,nbits]=wavread('C:\Users\ER01604261154\Desktop\ gequnn.wav');

n=length(y);

Noise=randn(n,2);

s=y+0.2*Noise;

S=fft(s);

fs=22000;

Ts=1/fs;R1=10;

wp=2*pi*1000/fs;%通带截止频率

ws=2*pi*1200/fs;%阻带截止频率

Rp=1;%通带衰减

Rl=100;%阻带衰减

wp1=2/Ts*tan(wp/2);%将模拟指标转换成数字指标ws1=2/Ts*tan(ws/2);

ws1=2/Ts*tan(ws/2);

[N,Wn]=buttord(wp1,ws1,Rp,R1,'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;

相关文档
最新文档