数字信号处理实验2
- 格式:doc
- 大小:79.00 KB
- 文档页数:4
姓名:高铭遥 班级:16131701 学号:1120171450 成绩:实验二 DFT/FFT 的应用-利用FFT 实现快速卷积[实验目的]1.深刻理解DFT/FFT 的概念和性质,进一步掌握圆周卷积和线性卷积两者之间的关系。
2.掌握DFT/FFT 的应用。
理解FFT 在实现数字滤波(或快速卷积)中的重要作用,更好地利用FFT 进行数字信号处理。
[实验内容及要求]1.给定两个序列()[]2,1,1,2x n =,()[]1,1,1,1h n =--。
首先直接在时域计算两者的线性卷积;然后用FFT 快速计算二者的线性卷积,验证结果。
(1)线性卷积 程序代码:figure(1);N1=4; N2=4; xn=[2,1,1,2]; hn=[1,-1,-1,1];N=N1+N2-1;%卷积后的序列长度 yn=conv(xn,hn);%线性卷积 x=0:N-1;stem(x,yn);title('线性卷积'); 运行结果:(2)FFT 卷积快速卷积 程序代码: figure(1); n=0:1:3; m=0:1:3;N1=length(n);%xn 的序列长度 N2=length(m);%hn 的序列长度 xn=[2,1,1,2]; hn=[1,-1,-1,1];姓名:高铭遥 班级:16131701 学号:1120171450 成绩:N=N1+N2-1;%卷积后的序列长度XK=fft(xn,N);%xn 的离散傅里叶变换 HK=fft(hn,N);%hn 的离散傅里叶变换 YK=XK.*HK;yn=ifft(YK,N);%逆变换if all(imag(xn)==0)&&(all(imag(hn)==0))%实序列的循环卷积仍为实序列 yn=real(yn); endx=0:N-1;stem(x,yn);title('FFT 卷积'); 运行结果:结果分析:对比(1)和(2)直接线性卷积和FFT 快速卷积的结果可以验证,用FFT 线性卷积的结果是与直接卷积的结果相同的,FFT 可以实现快速卷积,提高运算速度。
数字信号处理实验报告设计数字低通IIR和FIR滤波器对语音信号进行滤波处理班级:物联网1104班学号:**********姓名:***指导老师:***一、实验内容1.选择一个.wav格式的语音信号作为分析的对象,对其进行频谱分析。
2.设计FIR和IIR数字滤波器,并对带噪语音信号进行滤波,分析滤波后信号的时域和频域特征。
二、实验目的1.学会使用Matlab来分析音频信号的时域和频域特性。
2.熟悉用双线性变换法设计IIR和FIR数字滤波器的原理与方法。
3.学会设计各种IIR数字滤波器,学会根据滤波需求确定滤波器指标参数。
4.掌握IIR\FIR数字滤波器的MATLAB实现方法。
5.通过观察滤波器输入输出信号的时域波形及其频谱,建立数字滤波的概念。
三、实验原理1.IIR滤波器:利用双线性变换设计IIR滤波器(只介绍巴特沃斯数字低通滤波器的设计),首先要设计出满足指标要求的模拟滤波器的传递函数,然后由通过双线性变换可得所要设计的IIR滤波器的系统函数。
如果给定的指标为数字滤波器的指标,则首先要转换成模拟滤波器的技术指标,这里主要是边界频率的转换,对指标不作变化。
边界频率的转换关系为。
接着,按照模拟低通滤波器的技术指标根据相应设计公式求出滤波器的阶数和截止频率;根据阶数查巴特沃斯归一化低通滤波器参数表,得到归一化传输函数;最后,将代入去归一,得到实际的模拟滤波器传输函数。
之后,通过双线性变换法转换公式,得到所要设计的IIR滤波器的系统函数。
2.FIR滤波器:如果所希望的滤波器的理想频率响应函数为(e )j d H ω,则其对应的单位脉冲响应为⎰-=πππdwe e Hn h jwn jw dd )(21)(窗函数设计法的基本原理是用有限长单位脉冲响应(n)h 逼近(n)d h 。
由于(n)d h 往往是无限长序列,且是非因果的,所以用窗函数(n)w 将(n)d h 截断,并进行加权处理,得到:)()()(n w n h n h d ⋅=(n)h 就作为实际设计的FIR 数字滤波器的单位脉冲响应序列,其频率响应函数(e )j d H ω为∑-=-=10)()(N n jwnjwe n h e H式中,N为所选窗函数(n)w 的长度。
实验2 信号卷积实验一、实验目的1. 理解卷积的概念及物理意义;2. 通过实验方法加深对卷积运算的图解方法及结果的理解。
二、卷积的概念及物理意义1、信号卷积实验的意义:是要验证和求解系统的零状态响应,也即是,不考虑系统初始储能状态的作用,由外部激励信号所产生的响应的实验。
2、卷积积分分析的基本原理:利用信号的分解原理,将连续信号分解为冲激信号组合,然后将这些冲激信号分别通过线性系统,将得到各个冲激信号对应的冲激响应,再将各冲激响应叠加就得到零状态响应。
这就是卷积积分分析的基本原理。
3、卷积积分的运算方法:就是将图形进行:反褶、位移、相乘、积分,这些基本步骤组合而成的。
4、卷积积分的图解方法与运算规律:见:《信号与系统》一书;段哲民,第三版,46、47页三、实验原理说明卷积积分的物理意义是将信号分解为冲激信号之和,借助系统的冲激响应,求解系统对任意激励信号的零状态响应。
设系统的激励信号为)t (x ,冲激响应为)t (h ,则系统的零状态响应为)(*)()(t h t x t y =⎰∞∞--=ττd t h t x )()(。
对于任意两个信号)t (f 1和)t (f 2,两者做卷积运算定义为⎰∞∞--=ττd t f t f t f )(2)(1)(=)t (f 1*)t (f 2=)t (f 2*)t (f 1。
1. 两个矩形脉冲信号的卷积过程图2-1 两矩形脉冲的卷积积分的运算过程与结果 两信号)t (x 与)t (h 都为矩形脉冲信号,如图2-1所示。
下面由图解的方法(图2-1)给出两个信号的卷积过程和结果,以便与实验结果进行比较。
2. 矩形脉冲信号与锯齿波信号的卷积信号)t (f 1为矩形脉冲信号,)t (f 2为锯齿波信号,如图2-2所示。
根据卷积积分的运算方法得到)t (f 1和)t (f 2的卷积积分结果)t (f ,如图2-2(c)所示。
)0≤<∞-t210≤≤t 1≤≤t 41≤≤t ∞<≤t 2124τ(b)(a)(c)(d)(e)(f)(g)(h)(i)2卷积结果图2-2 矩形脉冲信号与锯齿脉冲信号的卷积积分的结果3. 本实验进行的卷积运算的实现方法在本实验装置中采用了DSP 数字信号处理芯片,因此在处理模拟信号的卷积积分运算时,是先通过A/D 转换器把模拟信号转换为数字信号,利用所编写的相应程序控制DSP 芯片实现数字信号的卷积运算,再把运算结果通过D/A 转换为模拟信号输出。
实验二语音信号分析与处理学号姓名注:1)此次实验作为《数字信号处理》课程实验成绩的重要依据,请同学们认真、独立完成,不得抄袭。
2)请在授课教师规定的时间内完成;3)完成作业后,请以word格式保存,文件名为:学号+姓名4)请通读全文,依据第2及第3 两部分内容,认真填写第4部分所需的实验数据,并给出程序内容。
1. 实验目的(1) 学会MATLAB的使用,掌握MATLAB的程序设计方法(2) 掌握在windows环境下语音信号采集的方法(3) 掌握MATLAB设计FIR和IIR滤波器的方法及应用(4) 学会用MATLAB对语音信号的分析与处理方法2. 实验内容录制一段自己的语音信号,对录制的语音信号进行采样,画出采样后语音信号的时域波形和频谱图,确定语音信号的频带范围;使用MATLAB产生白噪声信号模拟语音信号在处理过程中的加性噪声并与语音信号进行叠加,画出受污染语音信号的时域波形和频谱图;采用双线性法设计出IIR滤波器和窗函数法设计出FIR滤波器,画出滤波器的频响特性图;用自己设计的这两种滤波器分别对受污染的语音信号进行滤波,画出滤波后语音信号的时域波形和频谱图;对滤波前后的语音信号进行时域波形和频谱图的对比,分析信号的变化;回放语音信号,感觉与原始语音的不同。
3. 实验步骤1)语音信号的采集与回放利用windous下的录音机或其他软件录制一段自己的语音(规定:语音内容为自己的名字,以wav格式保存,如wql.wav),时间控制再2秒之内,利用MATLAB提供的函数wavread 对语音信号进行采样,提供sound函数对语音信号进行回放。
[y,fs,nbits]=wavread(file),采样值放在向量y中,fs表示采样频率nbits表示采样位数。
Wavread的更多用法请使用help命令自行查询。
2)语音信号的频谱分析利用fft函数对信号进行频谱分析3)受白噪声干扰的语音信号的产生与频谱分析4)据语音信号的频带情况,设计FIR和IIR两种滤波器5)用滤波器对受污染语音信号进行滤波FIR滤波器fftfilt函数对信号进行滤波,IIR滤波器用filter函数对信号进行滤波6)比较滤波前后信号的波形与频谱7)回放滤波后的语音信号4. 实验数据及实验程序实验数据1)原始语音信号的时域波形和频谱图00.51 1.52 2.53 3.54 4.5x 104-0.2-0.15-0.1-0.0500.050.10.150.20.25声音波形图00.51 1.52 2.53 3.54 4.5x 104100200300400500600声音频谱图2)带限白噪声信号的时域波形和幅频特性00.51 1.52-1-0.500.511.5窄带噪声波形图00.51 1.52-1-0.50.511.5窄带噪声频谱图3)受污染语音信号的时域波形和频谱图0246x 104-0.2-0.15-0.1-0.0500.050.10.150.20.25混合信号波形图0246x 1040100200300400500600混合信号频谱图4)滤波器的频响特性图 FIR 滤波器的频响特性图00.10.20.30.40.50.60.70.80.91-8000-6000-4000-2000Normalized Frequency (⨯π rad/sample)P h a s e (d e g r e e s )0.10.20.30.40.50.60.70.80.91-300-200-1000100Normalized Frequency (⨯π rad/sample)M a g n i t u d e (d B )246x 104-0.3-0.2-0.100.10.20.30.40.50.60.70246x 1040.20.40.60.811.21.4IIR 滤波器的频响特性图0100200300400500600-300-250-200-150-100-5050低通滤波器幅度谱图5)滤波后语音信号的时域波形和频谱图00.51 1.52 2.53 3.54 4.5x 1041002003004005006000246x 104-0.1-0.050.050.10.15恢复信号波形图0246x 104100200300400500600恢复信号频谱图6)滤波前后的语音信号时域波形对比图和频谱对比图0246x 104-0.2-0.15-0.1-0.0500.050.10.150.20.25信号波形图0246x 104-0.1-0.0500.050.10.15恢复信号波形图0246x 104100200300400500600信号频谱图0246x 104100200300400500600恢复信号频谱图实验程序: 1)实验主程序 clc;clear;close%[x,fs,bits]=wavread('录音的名字'); [x,fs,bits]=wavread('录音的名字.wav'); %x=wavread('录音的名字'); sound(x,fs,bits);plot(x);title('声音波形图') figure(2)%y=fft(x,4096); y=fft(x);plot(abs(y));title('声音频谱图')fh=0.9;fl=0.25;n=1;length(x);y1=fh*sinc(fh*(n-5000))-fl*sinc(fl*(n-5000)); figure(5)subplot(1,2,1);plot(y1);title('窄带噪声波形图') y2=fft(y1);subplot(1,2,2);plot(abs(y2));title('窄带噪声频谱图') y3=y1+x; figure(6)subplot(1,2,1);plot(y1+x);title('混合信号波形图') y4=fft(y3);subplot(1,2,2);plot(abs(y4));title('混合信号频谱图')wp=0.5;ws=0.55; detaw=ws-wp; n=ceil(8*pi/detaw); wc=(wp+ws)/2;b1=fir1(n-1,wc/pi,hanning(n));freqz(b1,1,41856)f1=fftfilt(b1,y3);plot(f1)f2=fft(f1);plot(abs(f2))f11=filter (bz,az, y3);figure(8)subplot(1,2,1);plot(f11);title('恢复信号波形图')f22=fft(f11);subplot(1,2,2);plot(abs(f22));title('恢复信号频谱图') sound(f11,fs,bits);figure(9)subplot(1,2,1);plot(x);title('信号波形图')subplot(1,2,2);plot(f11);title('恢复信号波形图') figure(10)subplot(1,2,1);plot(abs(y));title('信号频谱图') subplot(1,2,2);plot(abs(f22));title('恢复信号频谱图') 2)FIR滤波器子程序fh=0.9;f1=0.25;n=1:length(x);h=fh*sinc(fh*(n-5000))-f1*sinc(f1*(n-5000));figure(4)subplot(1,2,1);plot(h);p=fft(h);subplot(1,2,2);plot(abs(p));3)IIR滤波器子程序fs=44100;rp=3;rs=20;wp1=0.5;wss1=0.55;op1=2*fs*tan(wp1/2);os1=2*fs*tan(wss1/2);[N,wc]=buttord(op1,os1,rp,rs,'s')[z,p,k]=buttap(N);[ba,aa]=zp2tf(z,p,k);[b,a]=lp2lp(ba,aa,wc);[bz,az]=bilinear(b,a,fs);H=freqz(bz,az);ma=20*log10(abs(H));figure(7)plot(ma);title('低通滤波器幅度谱图')。
实验二基于MATLAB数字滤波器的设计1.示例基于MATLAB的语音信号分析与处理1.1实验目的综合运用数字信号处理的理论知识进行频谱分析和滤波器设计,通过理论推导得出相应结论,再利用MATLAB作为编程工具进行计算机实现,从而加深对所学知识的理解,建立概念。
1.2 实验基本要求●掌握数字信号处理的基本概念、基本理论和基本方法●掌握MATLAB设计FIR和IIR数字滤波器的方法●学会用MATLAB对信号进行分析与处理●学会MATLAB的使用,掌握MATLAB的程序设计方法●掌握在Windows环境下语音信号采集的方法1.3 实验内容和要求录制一段自己的语音信号,并对录制的信号进行采样;画出采样后语音信号的时候波形和频谱图;给定滤波器的性能指标,采用窗函数法或双线性变换设计滤波器,并画出滤波器的频率响应;然后用自己设计的滤波器对采集的语音信号进行滤波,画出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化;回放语音信号。
1.4 实验实现步骤(1)语音信号的采集利用Windows下的录音机或其他软件,录制一段自己的话音,时间控制在1s左右;然后在MATLAB软件平台下,利用函数wavread对语音信号进行采样,记住采样频率和采样点数。
通过使用wavread 函数,理解采样频率,采样位数等概念。
wavread 函数调用格式如下。
y=wavread(file),读取file 所规定的wav 文件,返回采样值放在向量y 中。
[y,fs,nbits]=wavread(file),采样值放在向量y 中,fs 表示采样频率(Hz ),n bits 表示采样位数y=wavread(file ,N)读取前N 点的采样值放在向量y 中。
y=wavread(file ,[N 1,N 2]),读取从N 1点到 N 2点的采样值放在向量y 中 (2)语音信号的频谱分析要求首先画出语音信号的时域波形,然后对语音信号进行频域分析,在MATLAB 中可以利用函数fft 对信号进行快速的傅立叶变换,从而得到信号的频谱特性,从而加深对频谱特性的理解。
实验2:用FFT 对信号做频谱分析一、实验目的学习用FFT 对连续信号和时域离散信号进行谱分析的方法,了解可能出现的分析误差及其原因,以便正确应用FFT 。
二、实验原理用FFT 对信号作频谱分析是学习数字信号处理的重要内容。
经常需要进行谱分析的信号是模拟信号和时域离散信号。
对信号进行谱分析的重要问题是频谱分辨率D 和分析误差。
频谱分辨率直接和FFT 的变换区间N 有关,因为FFT 能够实现的频率分辨率是2π/N , 因此要求2π/N ≤D 。
可以根据此式选择FFT 的变换区间N 。
误差主要来自于用FFT 作频谱分析时,得到的是离散谱,而信号(周期信号除外)是连续谱,只有当N 较大时, 离散谱的包络才能逼近于连续谱,因此N 要适当选择大一些。
周期信号的频谱是离散谱,只有用整数倍周期的长度作FFT ,得到的离散谱才能代表周期信号的频谱。
如果不知道信号周期,可以尽量选择信号的观察时间长一些。
对模拟信号进行谱分析时,首先要按照采样定理将其变成时域离散信号。
如果是模拟周期信号,也应该选取整数倍周期的长度,经过采样后形成周期序列,按照周期序列的谱分析进行。
三、实验内容及步骤(1)对以下序列进行谱分析)()(41n R n x =⎪⎩⎪⎨⎧≤≤-≤≤+=n n nn n n x 其他0748301)(2 ⎪⎩⎪⎨⎧≤≤-≤≤-=nn n n n n x 其他0743304)(3 选择变换区间N=8和N=16进行谱分析,分别画出幅频特性曲线。
(2)对以下周期序列进行谱分析n n x 4cos )(1π=n n n x 8cos 4cos )(2ππ+= 选择FFT 的变换区间N 为8和16两种情况进行谱分析。
分别画出幅频特性曲线。
(3)对模拟周期信号进行谱分析t t t t x πππ20cos 16cos 8cos )(++=采样频率Hz F s 64=,变换区间N=16,32,64三种情况进行谱分析,并画出幅频特性曲线。
实验2 离散时间系统的时域分析
一、实验目的
(1)加深对时域信号抽样与恢复的基本原理的理解;
(2)掌握应用线性卷积求解离散时间系统响应的基本方法;
(3)掌握求解离散时间系统冲击响应和频率响应程序的编写方法,了解常用子函数。
二、实验内容
1. 已知一个连续时间信号()t
f t f t f 006sin 3
12sin ππ+
=,Hz f 10=,取最高有限带宽频率
05f f m =。
分别显示原连续时间信号波形和()()
m s m s m s m s m s f f f f f f f f f f =<==>2,
2,32三种情况下抽样信号波形,并尝试用内插公式重建原信号。
脚本文件如下: f0=1; fm=5*f0; t=0:0.01:5;
f=sin(2*pi*f0*t)+1/3*sin(6*pi*f0*t); subplot(7,1,1) figure(1) plot(t,f) for i=1:3 fs=i*fm; ts=1/fs; t1=0:ts:5;
f1=sin(2*pi*f0*t1)+1/3*sin(6*pi*f0*t1); subplot(7,1,i+1);
stem(t1,f1,'filled');
f1i=interp1(t1,f1,ti,'spline'); subplot(7,1,i+4) plot(ti,f1i) end
抽样图像及内插后图像:
2. 在MATLAB 中利用内部函数conv 来计算两个有限长序列的卷积。
给出两个序列,试求其卷积结果。
()[]()[]
()()()
n h n x n y n n h n n x *=≤≤-=≤≤--=519,14,11,20,5,7,181
38,6,3,9,5
脚本文件: n1=-3:1;
x=[5,9,3,6,-8]; n2=-1:5;
h=[18,7,5,20,11,14,9]; n=-4:6;
y=conv(x,h); stem(n,y);
3. 在MATLAB 中利用filter 函数在给定输入和差分方程时求差分方程的解。
给出如下差分方程:
()()()()n x n y n y n y =-+--25.019.0
(1)计算并画出冲击响应()5010,≤≤-n n h
(2)由此()n h 确定系统是否稳定。
(1)脚本文件: b=[1];
a=[1,-0.9,0.5]; n=-10:50;
x=[zeros(1,10),1,zeros(1,50)]; h=filter(b,a,x); stem(n,h) 图像如下:
(2)由此()n h 确定系统是稳定的。
4. 系统函数表达式如下,试分析系统的频率响应并画出图形。
(幅频、相频)
()⎪⎪⎭
⎫ ⎝⎛-⎪⎪⎭⎫ ⎝
⎛
-⎪⎪
⎭
⎫ ⎝⎛-⎪⎪⎭⎫ ⎝⎛
-=
------141
4
1212
8.018.0111z e z
e z e z e z H j j
j j
π
π
ππ
脚本文件:
b=[1,0,1];
a=[1,-0.8*sqrt(2),0.64];
[H,w]=freqz(b,a,'whole');
subplot(2,1,1)
plot(w,abs(H));
title('幅频特性')
subplot(2,1,2)
plot(w,angle(H))
title('相频特性')
图像如下:
三、思考题
2.1 奈奎斯特抽样定理的内容是什么?
奈奎斯特抽样定理:要从抽样信号中无失真地恢复原信号,抽样频率应大于原信号最高频谱分量的2倍。
2.2 什么是内插公式?在MATLAB中内插公式可以用什么函数来编写程序?
在MATLAB中内插公式可以用interp1(一维内插)函数、interpft(基于FFT内插)函数和interp2(二维内插)函数来编写程序。
2.3 离散线性时不变系统中的差分方程和系统函数有何联系?公式中的系数在编写程序时须注意什么问题?
系统函数H(Z)=Y(Z)/X(Z),对差分方程进行Z变换,由公式得系统函数。
由差分方程进行z变换可以求得系统函数。
公式中的系数应从低阶向高阶写,没有的项补零。
公式中的系数在编写程序时须注意:y(n)的系数必须为1,注意不要落下潜在的0系数。
2.4 MATLAB中提供的conv卷积子函数使用中须满足什么条件?如果条件不满足应如何处理?
conv中卷积的子函数n值是从零开始的,如果不满足此条件,需从新定义卷积结果的n值范围。