数字信号处理.docx
- 文档编号:10010109
- 上传时间:2023-02-07
- 格式:DOCX
- 页数:42
- 大小:1.04MB
数字信号处理.docx
《数字信号处理.docx》由会员分享,可在线阅读,更多相关《数字信号处理.docx(42页珍藏版)》请在冰豆网上搜索。
数字信号处理
实验一信号、系统及系统响应
一、实验目的
1、熟悉理想采样的性质,了解信号采样前后的频谱变化,加深对采样定理的理解。
2、熟悉离散信号和系统的时域特性。
3、熟悉线性卷积的计算编程方法:
利用卷积的方法,观察、分析系统响应的时域特性。
4、掌握序列傅氏变换的计算机实现方法,利用序列的傅氏变换对离散信号、系统及系统响应进行频域分析。
二、实验原理
1、连续时间信号的采样
采样是从连续时间信号到离散时间信号的过渡桥梁,对采样过程的研究不仅可以了采样前后信号时域和频域特性发生的变化以及信号内容不丢失的条件,而且有助于加深对拉氏变化、傅氏变换、z变换和序列傅氏变换之间关系的理解。
对一个连续时间信号进行理想采样的过程可以表示为该信号的一个周期冲激脉冲的乘积,即
xˆa(t)=xa(t)M(t)(1-1)
其中xˆa(t)是连续信号xa(t)的理想采样,M(t)是周期冲激脉冲M(t)=
。
设Xa(s)是连续时间信号xa(t)的双边拉氏变换,即有:
Xa(s)=
(1-2)
作为拉氏变换的一种特例,信号理想采样的傅立叶变换
(1-3)
信号理想采样后的频谱是原信号频谱的周期延拓,其延拓周期等于采样频率。
根据Shannon取样定理,如果原信号是带限信号,且采样频率高于原信号最高频率分量的2倍,则采样以后不会发生频谱混淆现象。
2、有限长序列分析
一般来说,在计算机上不可能,也不必要处理连续的曲线X(ejω),通常,我们只要观察、分析X(ejω)在某些频率点上的值。
对于长度为N的有限长序列
(1-4)
一般只需要在0−2π之间均匀地取M个频率点,计算这些点上的序列傅立叶变换
(1-5)
其中,
,k=0,1,…M-1。
是一个复函数,它的模就是幅频特性曲线。
3、信号卷积
一个线性时不变离散系统的响应y(n)可以用它的单位冲激响应h(n)和输入信号x(n)的卷积来表示:
y(n)=x(n)*h(n
(1-6)
根据傅立叶变换和Z变换的性质,与式(1-6)对应应该有
(1-7)
(1-8)
式(1-6)告诉我们可以通过对两个序列的移位、相乘、累加计算信号响应;而式(1-8)告诉我们卷积运算也可以在频域上用乘积实现。
三、实验内容及步骤
1、分析理想采样信号序列的特性
产生理想采样信号序列
,使A=444.128,
,
(1)首先选用采样频率为1000Hz,T=1/1000,观察所得理想采样信号的幅频特性,在折叠频率以内和给定的理想幅频特性无明显差异,并做记录;
(2)改变采样频率为300Hz,T=1/300,观察所得到的频谱特性曲线的变化,并做记录;(3)进一步减小采样频率为200Hz,T=1/200,观察频谱“混淆”现象是否明显存在,说明原因,并记录这时候的幅频特性曲线。
2、离散信号、系统和系统响应的分析
(1)观察信号xb(n)和系统hb(n)的时域和幅频特性;利用线性卷积求信号通过系统以后的响应。
比较系统响应和系统hb(n)的时域及幅频特性。
注意它们之间有无差异,绘出图形。
(2)观察信号xc(n)和系统ha(n)的时域和幅频特性,利用线性卷积求系统响应。
判断响应序列图形及序列非零值长度是否与理论结果一致,说出一种定性判断响应序列图形正确与否的方法。
观察响应序列的幅频特性。
定性判断结果正确与否。
改变信号xc(n)的矩形宽度,使N=5,重复以上动作,观察变化,记录改变参数前后的差异。
(3)将实验步骤2-
(2)中的信号换为xa(n),其中A=1,
=0.4,
=2.0734,T=1。
重复实验2-
(2)各步骤,改变xa(n)的参数α=0.1再重复实验2-
(2)各步骤;改变参数
=1.2516,重复实验2-
(2)各步骤。
在实验中观察改变
和
对信号及系统响应的时域和幅频特性的影响,绘制相应的图形。
3、卷积定律的验证。
利用式(1-14)将xa(n)和系统ha(n)的傅氏变换相乘,直接求得
,将得到的幅频特性曲线和实验2-(3)中得到的曲线进行比较,观察二者有无差异。
验证卷积定律。
四、实验结果
1、理想采样信号序列
MATLAB程序如下:
n=0:
50;
A=444.128;
a=50*sqrt(2.0)*pi;
T=1/1000;
%T=1/300;
%T=1/200;
w0=50*sqrt(2.0)*pi;
x=A*exp(-a*n*T).*sin(w0*n*T);
closeall
subplot(3,1,1);stem(x);
title('理想采样信号序列');
k=-25:
25;
W=(pi/12.5)*k;
X=x*(exp(-j*pi/12.5)).^(n'*k);
magX=abs(X);
subplot(3,1,2);stem(magX);title('x(n)的幅度谱');
angX=angle(X);
subplot(3,1,3);stem(angX);title('x(n)的相位谱');
当采样率分别为1000Hz、300Hz、200Hz是的运行结果如图1所示:
(a)T=1000HzN=30(b)T=300HzN=30
(c)T=200HzN=30(d)T=200HzN=50
图1.1理想采样信号序列
1、单位脉冲序列和系统单位脉冲序列以及线性卷积
(1)程序如下
n=1:
10;
x=zeros(1,10);
x
(1)=1;closeall;
%subplot(3,1,1);
stem(x);title('单位脉冲序列x(n)');
m=1:
10;
h=zeros(1,10);
h
(1)=1;h
(2)=2.5;h(3)=2.5;h(4)=1;
closeall;
stem(h);title('系统h(m)');
图1.2x(n)与h(n)的时域图形
n=1:
10;
x=zeros(1,10);
x
(1)=1;closeall;
m=1:
10;
h=zeros(1,10);
h
(1)=1;h
(2)=2.5;h(3)=2.5;h(4)=1;
closeall;
y=conv(x,h);
k=-25:
25;
X=x*(exp(-j*pi/12.5)).^(n'*k);
magX=abs(X);
subplot(3,2,1);stem(magX);title('输入信号幅度谱');
angX=angle(X);
subplot(3,2,2);stem(angX);title('输入信号相位谱');
H=h*(exp(-j*pi/12.5)).^(n'*k);
magH=abs(H);
subplot(3,2,3);stem(magH);title('系统幅度谱');
angH=angle(H);
subplot(3,2,4);stem(angH);title('系统相位谱');
n=1:
19;k=1:
19;
Y=y*(exp(-j*pi/12.5)).^(n'*k);
magY=abs(Y);
subplot(3,2,5);stem(magY);title('输出信号幅度谱');
angY=angle(Y);
subplot(3,2,6);stem(angY);title('输出信号相位谱');
图1.3x(n)、h(n)与y(n)的幅频特性
(2)x(n)=h(n)=
程序如下:
n=1:
10;
x=sign(sign(10-n)+1);
closeall
%subplot(2,2,1);stem(x);title('矩形输入序列x(n)');
y=conv(x,x);
%subplot(2,2,2);stem(y);title('输出y(n)');
k=-25:
25;
X=x*(exp(-j*pi/12.5)).^(n'*k);
magX=abs(X);
subplot(2,2,1);stem(magX);title('输入信号幅度谱');
angX=angle(X);
subplot(2,2,2);stem(angX);title('输入信号相位谱');
n=1:
19;k=1:
19;
Y=y*(exp(-j*pi/12.5)).^(n'*k);
magY=abs(Y);
subplot(2,2,3);stem(magY);title('输出信号幅度谱');
angY=angle(Y);
subplot(2,2,4);stem(angY);title('输出信号相位谱');
图1.4x(n)与y(n)时域图
图1.5x(n)、h(n)与y(n)的幅频特性
(3)x(n)=h(n)
程序如下:
n=1:
10;
A=1;
a=0.4;
%a=0.1;
T=1;
w0=2.0734;
%w0=1.2516;
x=A*exp(-a*n*T).*sin(w0*n*T);
closeall
%subplot(1,2,1);stem(x);title('输入信号x(n)')
m=1:
10;
h=sign(sign(10-m)+1);
closeall
%subplot(2,2,1);stem(x);title('系统h(n)');
y=conv(x,h);
%subplot(2,2,2);stem(y);title('输出y(n)');
k=-15:
15;
X=x*(exp(-j*pi/12.5)).^(n'*k);
magX=abs(X);
subplot(2,2,1);stem(magX);title('输入信号幅度谱');
angX=angle(X);
subplot(2,2,2);stem(angX);title('输入信号相位谱');
n=1:
19;k=1:
19;
Y=y*(exp(-j*pi/12.5)).^(n'*k);
magY=abs(Y);
subplot(2,2,3);stem(magY);title('输出信号幅度谱');
angY=angle(Y);
subplot(2,2,4);stem(angY);title('输出信号相位谱');
图1.6A=1a=0.4w0=2.0734时的幅频特性
图1.7A=1a=0.1w0=2.0734时的幅频特性
图1.8A=1a=0.4w0=1.2516时的幅频特性
2、卷积定律的验证
n=1:
10;
A=1;
a=0.4;
T=1;
w0=1.2516;
x=A*exp(-a*n*T).*sin(w0*n*T);
closeall
m=1:
10;
h=sign(sign(10-m)+1);
closeall
y=conv(x,h);
k=-25:
25;
W=(pi/12.5)*k;
X=x*(exp(-j*pi/12.5)).^(n'*k);
H=h*(exp(-j*pi/12.5)).^(m'*k);
n=1:
19;k=1:
19;
Y=y*(exp(-j*pi/12.5)).^(n'*k);
XH=X.*H;
Subplot(2,1,1);stem(abs(XH));title('x的幅度谱与h的幅度谱的乘积');
Subplot(2,1,2);stem(magY);title('y的幅度谱');axis([0,60,0,8])
图1.9卷积定律的验证
五、实验总结
1、观察图1.1可以看到,当采样频率减小时,就会产生混叠现象。
这是因为我们由采样定律可知:
采样频率必须大于2倍的最大频率,否则就会产生混叠现象。
2、信号理想采样后的频谱图是原信号频谱的周期延拓,其延拓周期等于采样频率。
3、由图1.2可知,当输入信号序列和系统的长度分别为10时,经线性卷积得到的序列长度为20,符合两个长度分别为M和N的序列经线性卷积后输出序列长度为L=N+M-1。
4、观察和比较图1.6、图1.7和图1.8可得,衰减因子a和频率w0都将会影响信号和系统响应的时域和幅频特性。
5、比较图1.9和图1.8,可以看出,将输入信号和系统信号的傅里叶变换的乘积与输出信号的傅里叶变换相同。
即验证了卷积定律。
实验二应用FFT对信号进行频谱分析
一、实验目的
1、在理论学习的基础上,通过本次实验,加深对快速傅里叶变换的理解,熟悉FFT算法及其程序的编写。
2、熟悉应用FFT对典型信号进行频谱分析的方法。
3、了解应用FFT进行信号频谱分析过程中可能出现的问题,以便在实际中正确应用FFT。
二、实验原理
在各种信号序列中,有限长序列在数字信号处理中占有很重要的地位。
无限长的序列也往往可以用有限长序列来逼近。
对于有限长的序列我们可以使用离散傅立叶变换(DFT),这一变换可以很好地反应序列的频域特性,并且容易利用快速算法在计算机上实现当序列的长度是N时,我们定义离散傅立叶变换为:
(2-1)
其中
,它的反变换定义为:
(2-2)
令
,则有:
(2-3)
可以得到
,
是Z平面单位圆上幅角为
的点,就是将单位圆进行N等分以后第k个点。
所以,X(k)是z变换在单位圆上的等距采样,或者说是序列傅立叶变换的等距采样。
时域采样在满足Nyquist定理时,就不会发生频谱混淆;同样地,在频率域进行采样的时候,只要采样间隔足够小,也不会发生时域序列的混淆。
DFT是对序列傅立叶变换的等距采样,因此可以用于序列的频谱分析。
在运用DFT进行频谱分析的时候可能有三种误差,分析如下:
(1)混淆现象
从式(2-6)中可以看出,序列的频谱是采样信号频谱的周期延拓,周期是2π/T,因此当采样速率不满足Nyquist定理,即采样频率fs=1/T小于两倍的信号(这里指的是实信号)频率时,经过采样就会发生频谱混淆。
这导致采样后的信号序列频谱不能真实地反映原信号的频谱。
所以,在利用DFT分析连续信号频谱的时候,必须注意这一问题。
避免混淆现象的唯一方法是保证采样的速率足够高,使频谱交叠的现象不出现。
这就告诉我们,在确定信号的采样频率之前,需要对频谱的性质有所了解。
在一般的情况下,为了保证高于折叠频率的分量不会出现,在采样之前,先用低通模拟滤波器对信号进行滤波。
(2)泄漏现象
实际中的信号序列往往很长,甚至是无限长序列。
为了方便,我们往往用截短的序列来近似它们。
这样可以使用较短的DFT来对信号进行频谱分析。
这种截短等价于给原信号序列乘以一个矩形窗函数。
而矩形窗函数的频谱不是有限带宽的,从而它和原信号的频谱进行卷积以后会扩展原信号的频谱。
值得一提的是,泄漏是不能和混淆完全分离开的,因为泄露导致频谱的扩展,从而造成混淆。
为了减小泄漏的影响,可以选择适当的窗函数使频谱的扩散减到最小。
(3)栅栏效应
因为DFT是对单位圆上z变换的均匀采样,所以它不可能将频谱视为一个连续函数。
这样就产生了栅栏效应,从某种角度来看,用DFT来观看频谱就好像通过一个栅栏来观看一幅景象,只能在离散点上看到真实的频谱。
这样的话就会有一些频谱的峰点或谷点被“栅栏”挡住,不能被我们观察到。
减小栅栏效应的一个方法是在源序列的末端补一些零值,从而变动DFT的点数。
这种方法的实质是认为地改变了对真实频谱采样的点数和位置,相当于搬动了“栅栏”的位置,从而使得原来被挡住的一些频谱的峰点或谷点显露出来。
注意,这时候每根谱线多对应的频率和原来的已经不相同了。
从上面的分析过程可以看出,DFT可以用于信号的频谱分析,但必须注意可能产生的误差,在应用过程中要尽可能减小和消除这些误差的影响。
快速傅立叶变换FFT并不是与DFT不相同的另一种变换,而是为了减少DFT运算次数的一种快速算法。
它是对变换式(2-7)进行一次次的分解,使其成为若干小点数DFT的组合,从而减小运算量。
常用的FFT是以2为基数,其长度N=2M。
它的运算效率高,程序比较简单,使用也十分地方便。
当需要进行变换的序列的长度不是2的整数次方的时候,为了使用以2为基的FFT,可以用末尾补零的方法,使其长度延长至2的整数次方。
IFFT一般可以通过FFT程序来完成,比较式(2-7)和(2-8),只要对X(k)取共轭,进行FFT运
算,然后再取共轭,并乘以因子1/N,就可以完成IFFT。
三、实验内容及步骤
(一)编制实验用主程序及相应子程序
1、在实验之前,认真复习DFT和FFT有关的知识,阅读本实验原理与方法和实验附录部分中和本实验有关的子程序,掌握子程序的原理并学习调用方法。
2、编制信号产生子程序及本实验的频掊分析主程序。
实验中需要用到的基本信号包括:
(1)高斯序列:
(2)衰减正弦序列:
(3)三角波序列:
(4)反三角波序列:
(二)上机实验内容
1、观察高斯序列的时域和频域特性
①固定信号xa(n)中的参数p=8,改变q的值,使q分别等于2,4,8。
观察它们的时域和幅频特性,了解q取不同值的时候,对信号时域特性和幅频特性的影响。
②固定q=8,改变p,使p分别等于8,13,14,观察参数p变化对信号序列时域及幅频特性的影响。
注意p等于多少时,会发生明显的泄漏现象,混淆现象是否也随之出现?
记录实验中观察到的现象,绘制相应的时域序列和幅频特性曲线。
2、观察衰减正弦序列的时域和幅频特性
①令α=0.1并且f=0.0625,检查谱峰出现的位置是否正确,注意频谱的形状,绘制幅频特性曲线。
②改变f=0.4375,再变化f=0.5625,观察这两种情况下,频谱的形状和谱峰出现的位置,有无混淆和泄漏现象发生?
说明产生现象的原因。
3、观察三角波序列和反三角波序列的时域和幅频特性
①用8点FFT分析信号xc(n)和xd(n)的幅频特性,观察两者的序列形状和频谱曲线有什么异同?
(注意:
这时候的xd(n)可以看作是xc(n)经过圆周移位以后得到的)绘制两者的序列和幅频特性曲线。
②在的xc(n)和xd(n)末尾补零,用16点FFT分析这两个信号的幅频特性,观察幅频特性发生了什么变化?
两个信号之间的FFT频谱还有没有相同之处?
这些变化说明了什么?
四、实验结果
1、观察高斯序列的时域和频域特性
p=8,q分别为2、4和8时描绘高斯序列频谱图的程序如下所示:
n=0:
15;
p=8;q=2;x=exp(-1*(n-p).^2/q);
closeall;subplot(3,1,1);%stem(x);
stem(abs(fft(x)))
p=8;q=4;x=exp(-1*(n-p).^2/q);
subplot(3,1,2);%stem(x)
stem(abs(fft(x)))
p=8;q=8;x=exp(-1*(n-p).^2/q);
subplot(3,1,3);%stem(x)
stem(abs(fft(x)))
图2.1p=8,q=2、4、8时的高斯序列的时域图
图2.2p=8,q=2、4、8时的高斯序列的频谱图
q=8,p分别为8、13和14时描绘高斯序列频谱图的程序如下:
n=0:
15;
q=8;p=8;x=exp(-1*(n-p).^2/q);
closeall;subplot(3,1,1);%stem(abs(fft(x)))
stem(x);
q=8;p=13;x=exp(-1*(n-p).^2/q);
subplot(3,1,2);%stem(abs(fft(x)))
stem(x);
q=8;p=14;x=exp(-1*(n-p).^2/q);
subplot(3,1,3);%stem(abs(fft(x)))
stem(x);
图2.3q=8,p分别为8、13和14时的高斯序列的时域图
图2.4q=8,p分别为8、13和14时的高斯序列的频谱图
2、衰减正弦序列的时域和幅频特性
程序如下:
n=0:
15;
a=0.1;f=0.0625;x1=exp(-a*n).*sin(2*pi*f*n);
closeall;subplot(2,2,1);stem(x1);
subplot(2,2,2);stem(abs(fft(x1)))
n=0:
15;
a=0.1;f=0.4375;x2=exp(-a*n).*sin(2*pi*f*n);
closeall;subplot(2,2,1);stem(x2);
subplot(2,2,2);stem(abs(fft(x2)))
n=0:
15;
a=0.1;f=0.5625;x3=exp(-a*n).*sin(2*pi*f*n);
closeall;subplot(2,2,1);stem(x3);
subplot(2,2,2);stem(abs(fft(x3)))
(a)a=0.1f=0.0625
(b)a=0.1f=0.4375
(c)a=0.1f=0.5625
图2.5衰减正弦序列的时域和频域特性
3、三角波序列和反三角波序列时域和幅频特性
fori=1:
4
x(i)=i;
end
fori=5:
8
x(i)=9-i;
end
closeall;subplot(2,2,1);stem(x);
subplot(2,2,2);stem(abs(fft(x,8)))
subplot(2,2,3);stem(x)
subplot(2,2,4);stem(abs(fft(x,16)))
图2.6三角波序列的8点和16点FFT
fori=1:
4
x(i)=5-i;
end
fori=5:
8
x(i)=i-4;
end
closeall;subplot(2,2,1);stem(x);
subplot(2,2,2);stem(abs(fft(x,8)))
subplot(2,2,3);stem(x);
subplot(2,2,4);stem(abs(fft(x,16)))
图2.7反三角序列的8点和16点FFT
五、实验总结
1、对于高斯序列,由实验结果图2.1和图2.2可以看出随着q值的变大,其时域幅值衰减变大,频谱图也发生了变化。
由图2.3和2.4可知p的变化也会影响高斯序列的时域和频谱图。
当p为13时会发生明显的泄漏现象和混淆现象。
2、对于衰减正弦序列,由图2.5可知,当f为0.4375和0.5625,发生了泄漏现象和混淆现象。
3、对于三角序列和反三角序列,由图2.6可知,他们的8点FFT频谱图几乎相同,但是16点FFT频谱图有明显的不同,为此我们可以得出结论,点数越多越精确。
实验三用双线性变换法设计IIR滤波器
一、实验目的
1、了解两种工程上最常用的变换方法:
脉冲响应不变法和双线性变换法。
2、掌握双线性变换法设计IIR滤波器的原理及具体设计方法,熟悉用双线性设计法设计低通、带通和高通IIR数字滤波器的计算机程序。
3、观察用双线性变换法设计的滤波器的频域特性,并与脉冲响应不变法相比较,了解双线性变换法的特点。
4、熟悉用双线性变换法设计数字Butt
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字信号 处理