080330000DSP实验报告.docx
《080330000DSP实验报告.docx》由会员分享,可在线阅读,更多相关《080330000DSP实验报告.docx(22页珍藏版)》请在冰豆网上搜索。
![080330000DSP实验报告.docx](https://file1.bdocx.com/fileroot1/2023-1/30/90f48310-b649-4f1a-a2fd-a204f7b85446/90f48310-b649-4f1a-a2fd-a204f7b854461.gif)
080330000DSP实验报告
信息学院
数字信号处理实验报告
姓 名:
班级学号:
专业:
指导教师:
一.实验目的2
二.实验原理和方法2
三.实验内容4
信号、系统及系统响应4
实验结论13
用FFT做谱分析13
实验结论20
四.思考题20
一.实验目的
1.熟悉连续信号经过理想抽样前后的频谱变化关系,加深对时域抽样定理的理解。
2.熟悉时域离散系统的时域特性。
3.利用卷积方法观察分析系统的时域特性。
4.掌握序列傅里叶变换的计算机实验方法,利用序列的傅里叶变换对连续信号、离散信号及系统响应进行频域分析。
5.进一步加深DFT算法原理和基本性质的理解(因为FFT只是DFT的一种快速算法,所以FFT的运算结果必然满足DFT的基本性质)。
6.熟悉FFT算法原理和FFT子程序的应用。
7.学习用FFT对连续信号和时域离散信号进行谱分析的方法,了解可能出现的分析误差及其原因,以便在实际中正确应用FFT。
二.实验原理和方法
抽样是连续信号数字处理的第一个关键环节。
对抽样过程的研究不仅可以了解抽样前后信号时域和频域特性发生的变化以及信号信息不丢失的条件,而且可以加深对傅里叶变换、Z变换和序列傅里叶变换之间关系式的理解。
我们知道,对一个连续信号xa(t)进行理想抽样的过程可用(1.1)式表示。
=
δT(t)——(1.1)
其中
为xa(t)的理想抽样,δT(t)为周期冲激脉冲,即
——(1.2)
的傅里叶变换
为
=
——(1.3)
(1.3)式表明
为
的周期延拓,其延拓周期为抽样角频率(Ωs=2π/T)。
抽样前后信号的频谱示意图见“参考教材图1-29”。
只有满足抽样定理时,才不会发生频率混叠失真。
在计算机上用高级语言编程直接按(1.3)式计算理想抽样
的频谱
很不方便。
下面导出用序列的傅里叶变换来计算
的公式。
将(1.2)式代入(1.1)式并进行傅里叶变换,
=
=
=
=
——(1.4)
式中的xa(nT)就是采样后得到的序列x(n),即
x(n)=xa(nT)
x(n)的序列傅里叶变换为
X(ejω)=
——(1.5)
比较(1.5)和(1.4)可知
=X(ejω)|ω=ΩT——(1.6)
这说明两者之间只在频率度量上差一个常数因子T。
实验过程中应注意这一差别。
离散信号和系统在时域均可用序列来表示。
序列图形给人以形象直观的印象,它可加深我们对信号和系统的时域特征的理解。
本实验还将观察分析几种信号及系统的时域特性。
为了在数字计算机上观察分析各种序列的频域特性,通常对X(ejω)在[0,2π]上进行M点采样来观察分析。
对长度为N的有限长序列x(n),有
——(1.7)
其中
k=0,1,…,M-1
通常M应取得大一些,以便观察谱的细节变化。
取模|
|可绘出幅频待性曲线。
一个时域离散线性非移变系统的输入/输出关系为
y(n)=x(n)*h(n)=
——(1.8)
这里,y(n)为系统的输出序列,x(n)为输入序列。
h(n)、x(n)可以是无限长,也可以是有限长。
为了计算机绘图观察方便,主要讨论有限长情况。
如果h(n)和x(n)的长度分别为N和M,则y(n)的长度为L=N+M-1。
这样,(1.8)式所描述的卷积运算就是序列移位、相乘和累加的过程,所以编程十分简单。
上述卷积运算也可以在频域实现(即卷积定理:
时域卷积,频域相乘。
)
Y(ejω)=X(ejω)H(ejω)——(1.9)
(1.9)式右边的相乘是在各频点{ωk}上的频谱值相乘。
三.实验内容
信号、系统及系统响应
1.单边指数脉冲;xa(t)=10*exp(-5t)
连续信号
源程序
Dt=0.0001;
t=0:
Dt:
0.5;
x=exp(-10*t);
Wmax=2*pi*200;
K=500;k=-K:
1:
K;W=k*Wmax/K;
X=x*exp(-j*t'*W)*Dt;
X=abs(X);
figure
(1);
subplot(2,1,1);plot(t,x,'b');grid;
xlabel('t/s');ylabel('x(t)')
title('连续信号')
subplot(2,1,2);plot(W/(2*pi),X,'b');
xlabel('f/HZ');ylabel('X(jf)');
tltle('连续时间信号的傅里叶变换');
离散信号:
fs=50
T=1/fs
t=0:
T:
0.5
x=exp(-10*t);
Wmax=2*pi*200;
K=500;k=-K:
1:
K;W=k*Wmax/K;
X=x*exp(-j*t'*W)*Dt;
X=abs(X);
figure
(1);
subplot(2,1,1);stem(t,x,'b');grid;
xlabel('t/s');ylabel('x(t)')
title('离散信号')
subplot(2,1,2);plot(W/(2*pi),X,'b');
xlabel('f/HZ');ylabel('X(jf)');
title('离散时间信号的傅里叶变换')
;
2双边指数脉冲;xa(t)=5*exp(-5*abs(t))
连续信号
Dt=0.01;
t=-3*pi:
Dt:
3*pi;
x=5*exp(-5*abs(t));
Wmax=2*pi*200;
K=500;k=-K:
1:
K;W=k*Wmax/K;
X=x*exp(-j*t'*W)*Dt;
X=abs(X);
figure
(1);
subplot(2,1,1);plot(t,x,'b');grid;
xlabel('t/s');ylabel('x(t)')
title('连续信号')
subplot(2,1,2);plot(W/(2*pi),X,'b');
xlabel('f/HZ');ylabel('X(jf)');
title('连续时间信号的傅里叶变换')
离散信号:
fs=5
T=1/fs
t=-3*pi:
T*pi:
3*pi;
x=5*exp(-5*abs(t));
Wmax=2*pi*50;
K=500;k=-K:
1:
K;W=k*Wmax/K;
X=x*exp(-j*t'*W)*Dt;
X=abs(X);
figure
(1);
subplot(2,1,1);stem(t,x,'b');grid;
xlabel('t/s');ylabel('x(t)')
title('离散信号')
subplot(2,1,2);plot(W/(2*pi),X,'b');
xlabel('f/HZ');ylabel('X(jf)');
title('离散时间信号的傅里叶变换')
3抽样脉冲;Sa(t)
Dt=0.01
t=-10:
Dt:
10;
x=sinc(t/pi);
plot(x,t);grid;
Wmax=2*pi*200;
K=500;k=-K:
1:
K;W=k*Wmax/K;
X=x*exp(-j*t'*W)*Dt;
X=abs(X);
figure
(1);
subplot(2,1,1);plot(t,x,'b');grid;
xlabel('t/s');ylabel('x(t)')
title('连续信号')
subplot(2,1,2);plot(W/(2*pi),X,'b');
xlabel('f/HZ');ylabel('X(jf)');
title('连续时间信号的傅里叶变换')
离散信号:
fs=100
T=1/fs
Dt=2
t=-10:
Dt:
10;
x=sinc(t/pi);
Wmax=1*pi*10;
K=500;k=-K:
1:
K;W=k*Wmax/K;
X=x*exp(-j*t'*W)*Dt;
X=abs(X);
figure
(1);
subplot(2,1,1);stem(t,x,'b');grid;
xlabel('t/s');ylabel('x(t)')
title('离散信号')
subplot(2,1,2);plot(W/(2*pi),X,'b');
xlabel('f/HZ');ylabel('X(jf)');
title('离散时间信号的傅里叶变换')
4.信号相加:
;
源程序
Dt=0.3
t=-5*pi:
Dt:
5*pi;
x=cos(10*pi*t)+cos(20*pi*t);
Wmax=2*pi*200;
K=500;k=-K:
1:
K;W=k*Wmax/K;
X=x*exp(-j*t'*W)*Dt;
X=abs(X);
figure
(1);
subplot(2,1,1);plot(t,x,'b');grid;
xlabel('t/s');ylabel('x(t)')
title('连续信号')
subplot(2,1,2);plot(W/(2*pi),X,'b');
xlabel('f/HZ');ylabel('X(jf)');
title('连续时间信号的傅里叶变换')
离散信号:
fs=50
T=1/fs
Dt=0.1*pi
t=-5*pi:
Dt:
5*pi;
x=cos(10*pi*t)+cos(20*pi*t);
Wmax=1*pi*10;
K=500;k=-K:
1:
K;W=k*Wmax/K;
X=x*exp(-j*t'*W)*Dt;
X=abs(X);
figure
(1);
subplot(2,1,1);stem(t,x,'b');grid;
xlabel('t/s');ylabel('x(t)')
title('离散信号')
subplot(2,1,2);plot(W/(2*pi),X,'b');
xlabel('f/HZ');ylabel('X(jf)');
title('离散时间信号的傅里叶变换')
5信号相乘:
Dt=0.2
t=-5*pi:
Dt:
5*pi;
x=sinc(t).*cos(20*pi*t);
Wmax=2*pi*100;
K=500;k=-K:
1:
K;W=k*Wmax/K;
X=x*exp(-j*t'*W)*Dt;
X=abs(X);
figure
(1);
subplot(2,1,1);plot(t,x,'b');grid;
xlabel('t/s');ylabel('x(t)')
title('连续信号')
subplot(2,1,2);plot(W/(2*pi),X,'b');
xlabel('f/HZ');ylabel('X(jf)');
title('连续时间信号的傅里叶变换')
离散信号分析:
fs=100
T=1/fs
Dt=0.2*pi
t=-4*pi:
Dt:
4*pi;
x=sinc(t).*cos(20*pi*t);
Wmax=1*pi*10;
K=500;k=-K:
1:
K;W=k*Wmax/K;
X=x*exp(-j*t'*W)*Dt;
X=abs(X);
figure
(1);
subplot(2,1,1);stem(t,x,'b');grid;
xlabel('t/s');ylabel('x(t)')
title('离散信号')
subplot(2,1,2);plot(W/(2*pi),X,'b');
xlabel('f/HZ');ylabel('X(jf)');
title('离散时间信号的傅里叶变换')
实验结论
通过实验我熟悉时域离散系统的时域特性。
掌握了利用卷积方法观察分析系统的时域特性的方法。
掌握了序列傅里叶变换的计算机实验方法,利用序列的傅里叶变换对连续信号、离散信号及系统响应进行频域分析的方法。
学会了软件的使用以及用于实验分析的好处。
用FFT做谱分析
x(n)=R4(n)x1=ones(1,4)=[1,1,1,1]
x1=[1,1,1,1];
y1=fft(x1,8);
z1=fft(x1,16);
i=0:
3;
n=0:
7;
m=0:
15;
subplot(3,1,1);stem(i,x1);
subplot(3,1,2);stem(n,abs(y1));
subplot(3,1,3);stem(m,abs(z1));
x2(n)=
x1=[1,2,3,4,4,2,3,1,0];
y1=fft(x1,8);
z1=fft(x1,16);
i=0:
8;
n=0:
7;
m=0:
15;
subplot(3,1,1);stem(i,x1);
subplot(3,1,2);stem(n,abs(y1));
subplot(3,1,3);stem(m,abs(z1));
x3(n)=
x1=[4,3,2,1,1,2,3,4,0];
y1=fft(x1,8);
z1=fft(x1,16);
i=0:
8;
n=0:
7;
m=0:
15;
subplot(3,1,1);stem(i,x1);
subplot(3,1,2);stem(n,abs(y1));
subplot(3,1,3);stem(m,abs(z1));
x4(n)=cos(π/4n)
x1=[1,0,-1,0,1];
y1=fft(x1,8);
z1=fft(x1,16);
i=0:
4;
n=0:
7;
m=0:
15;
subplot(3,1,1);stem(i,x1);
subplot(3,1,2);stem(n,abs(y1));
subplot(3,1,3);stem(m,abs(z1));
x5(n)=sin(π/8n)
x1=[0,1,0,-1,0];
y1=fft(x1,8);
z1=fft(x1,16);
i=0:
4;
n=0:
7;
m=0:
15;
subplot(3,1,1);stem(i,x1);
subplot(3,1,2);stem(n,abs(y1));
subplot(3,1,3);stem(m,abs(z1));
x6(t)=cos8πt+cos16πt+cos20πt
i=0:
15;
n=0:
31;
m=0:
63;
x1=cos(8*pi*i*(1/64))+cos(16*pi*i*(1/64))+cos(20*pi*i*(1/64));
x2=cos(8*pi*n*(1/64))+cos(16*pi*n*(1/64))+cos(20*pi*n*(1/64));
x3=cos(8*pi*m*(1/64))+cos(16*pi*m*(1/64))+cos(20*pi*m*(1/64));
subplot(2,3,1);stem(i,x1);
subplot(2,3,2);stem(n,x2);
subplot(2,3,3);stem(m,x3);
x4=fft(x1,16);
x5=fft(x2,32);
x6=fft(x2,64);
subplot(2,3,4);stem(i,x4);
subplot(2,3,5);stem(n,x5);
subplot(2,3,6);stem(m,x6);
x(n)=x4(n)+x5(n),x4(n)=cos(π/4n)x5(n)=sin(π/8n)
n=0:
7;
n1=0:
7;
n2=0:
15;
x=cos((pi/4)*n)+sin((pi/8)*n);
x1=fft(x,8);
x2=fft(x,16);
subplot(3,1,1);stem(n,x);
subplot(3,1,2);stem(n1,x1);
subplot(3,1,3);stem(n2,x2);
实验结论
FFT变换即快速傅里叶变换的性质同DFT即离散傅里叶变换相同。
离散傅里叶变换有两个物理意义,一是,是对该序列的傅里叶变换w的抽样或者说对Z变换单位圆内的抽样。
二是,将该序列进行周期延拓后的傅里叶级数变换的主值序列。
四.思考题
(1)在分析理想抽样序列特性的实验中,采样频率不同时,相应理想抽样序列的傅里叶变换频谱的数字频率度量是否都相同?
它们所对应的模拟频率是否相同?
为什么?
采样频率不同时,相应理想采样序列的傅里叶频谱的数字频率两不同,因为采样频率不同时,它们所对应的模拟频率也不相同。
在不同采样频率下产生了不同的频谱图,由图形曲线的对比我们可以得出,在满足采样频率大于2fc时,傅里叶变换按照采样频率周期延拓时,产生的频谱不发生混叠。
(1)在N=8时,x2(n)和x3(n)的幅频特性会相同吗?
为什么?
N=16呢?
x4(n)=cos[(π/4)*n]的周期为8,所以N=8和N=16均是其周期的整数倍,得到正确的单一频率正弦波的频谱,仅在0.25π处有1根单一谱线。
x5(n)=cos[(π/4)*n]+cos[(π/8)*n]+的周期为16,所以N=8不是其周期的整数倍,得到的频谱不正确。
N=16是其一个周期,得到正确的频谱,仅在0.25π和0.125π处有2根单一谱线。
(2)如果周期信号的周期预先不知道,如何用FFT进行谱分析?
周期信号的周期预先不知道时,可先截取M点进行DFT,再将截取长度扩大1倍截取,比较结果,如果二者的差别满足分析误差要求,则可以近似表示该信号的频谱,如果不满足误差要求就继续将截取长度加倍,重复比较,直到结果满足要求。