中南大学数字信号处理实验报告解读.doc
《中南大学数字信号处理实验报告解读.doc》由会员分享,可在线阅读,更多相关《中南大学数字信号处理实验报告解读.doc(22页珍藏版)》请在冰点文库上搜索。
课程名称:
数字信号处理
姓名:
Vaga成绩:
班级:
电子信息学号:
日期:
2014年5月13日地点:
综合实验楼
指导老师:
目录
实验一信号、系统及系统响应
1.实验目的………………………………………………………3
2.实验原理与方法………………………………………………3
3.实验内容………………………………………………………4
实验步骤…………………………………………………………4
程序框图…………………………………………………………6
4.实验结论………………………………………………………7
实验代码…………………………………………………………7
实验截图…………………………………………………………11
实验二用FFT作谱分析
1.实验目的………………………………………………………14
2.实验原理………………………………………………………14
3.实验步骤………………………………………………………16
4.上机实验内容…………………………………………………17
5.实验结果………………………………………………………17
实验代码…………………………………………………………18
实验截图…………………………………………………………19
1.实验目的
(1)熟悉连续信号经理想采样前后的频谱变化关系,加深对时域采样定理的理解。
(2)熟悉是与离散系统的时域特性。
(3)利用卷积方法观察并分析系统的时域特性。
(4)掌握序列傅里叶变换的计算机实现方法,利用序列的傅里叶变换对连续信号、离散信号及系统响应进行频域分析。
2.实验原理与方法
(1)采样是连续信号数字处理的第一个关键环节。
对一个信号Xa(t)进行理想采样过程如下:
其中为的理想采样,p(t)为周期冲激脉冲,即
的傅里叶变换为
将p(t)代入并进行傅里叶变换
其中就是采样后得到的序列X(n),即
X(n)的傅里叶变换为
由上两式得
(2)在数字计算机上观察分析各种序列的频域特性,通常对在[0,2π]上进行M点采样来观察分析。
对长度为N的有限长序列X(n),有
其中
一个时域离散线性非事变系统的输入/输出关系为
上述积分也可以在频域实现:
3.实验内容
实验步骤:
(1)信号产生子程序,用于产生试验中要用到的下列信号序列:
a.采样信号序列:
对下面连续信号:
进行采样,可得到采样序列:
其中A为幅度因子,a为衰减因子,是模拟角频率,T为采样间隔,这些参数在实验过程中由键盘输入,产生不同的和。
b.单位脉冲序列:
c.矩形序列:
(2)系统单位脉冲相应序列产生子程序。
本实验要用到两种FIR系统。
a.
b.
(3)有限长序列线性卷积子程序,用于完成两个给定长度的序列的卷积。
可以直接调用MATLAB语言中的卷积函数conv。
Conv用于两个有限长读序列的卷积,调用格式如下:
其中参数x和h是两个已复制的行向量序列。
(3)完成上述子程序后编制实验主程序。
(4)调用并执行试验程序,完成下属实验内容:
实验主程序框图,如下:
4.实验结论
实验代码:
t=0:
1/10:
8;
A=input('请输入A');
a=input('请输入a');
w=input('请输入w0');
xa=A*exp((-a)*t).*sin(w*t);
plot(t,xa);
xlabel('t');ylabel('xa');
title('xt波形');
%xn的时域
n=0:
1:
50;
T=input('请输入T');
xn=A*exp((-a)*n*T).*sin(w*n*T);
subplot(2,1,1);
stem(n,xn,'k');
title('时域信号波形');
xlabel('n');ylabel('xn');
%xn的傅氏变换
N=50;
k=-200:
200;
w=k*pi/100;
X=DFT(xn,N);
subplot(2,1,2);
plot(w/pi,abs(X));
title('xn的傅氏变换');
xlabel('w/pi');ylabel('|X(jw)|');
%hbn的时域
hb=[1,2.5,2.5,1];
i=0:
3;
subplot(2,2,1);
stem(i,hb,'k');
axis([0,3,0,2.5]);%这个是设置坐标轴刻度范围的,前面两个是x轴设置,后面两个是y轴设置;
title('hb(n)的时域序列');
xlabel('n');ylabel('hb(n)');
%hbn的傅氏变换
k=-200:
200;
w=k*pi/100;
HB=DFT(hb,N);
sublpot(2,2,2);
plot(w/pi,abs(HB));
title('hb(n)的傅氏变换');
xlabel('w/pi');ylabel('|hb(jw)|');
%xbn的时域
xb=[1,0,0,0,0,0,0,0,0,0];
i=0:
9;
subplot(2,2,3);
stem(i,xb,'k');
title('xb(n)的时域序列');
xlabel('n');ylabel('xb(n)');
%xbn的傅氏变换
k=-200:
200;
w=k*pi/100;
XB=DFT(xb,N);
sublpot(2,2,4);
plot(w/pi,abs(XB));
title('xb(n)的傅氏变换');
xlabel('w/pi');ylabel('|xb(jw)|');
%ybn的时域变换
yb=conv(hb,xb);
subplot(2,1,1);
stem(0:
12,yb,'k');
title('yb(n)的时域序列');
xlabel('n');ylabel('yb(n)=xb(n)*hb(n)');
%ybn的傅氏变换
N=13;
w=k*pi/100;
YB=DFT(yb,N);
subplot(2,1,2);
plot(w/pi,abs(YB));
title('yb(n)的傅氏变换');
xlabel('w/pi');ylabel('|yb(jw)|');
%ya1n的时域xc=[1,1,1,1,1,1,1,1,1,1];
ha=[1,1,1,1,1,1,1,1,1,1,];%ha=ones(0,9);
xc=ha;
ya1=conv(ha,xc);
subplot(2,1,1);
stem(0:
18,ya1,'k');
title('ya1(n)的时域序列');
xlabel('n');ylabel('ya1(n)=xc(n)*ha(n)');
%ya1n的傅氏变换
N=19;
k=-200:
200;
w=k*pi/100;
YA1=DFT(ya1,N);
subplot(2,1,2);
plot(w/pi,abs(YA1));
title('ya1(n)的傅氏变换');
xlabel('w/pi');ylabel('|ya1(jw)|');
%ya2n的时域序列xc=[1,1,1,1,1];
xc=[1,1,1,1,1];
ya2=conv(ha,xc);
subplot(2,1,1);
stem(0:
13,ya1,'k');
title('ya2(n)的时域序列');
xlabel('n');ylabel('ya2(n)=xc(n)*ha(n)');
%ya2n的傅氏变换
N=14;
k=-200:
200;
w=k*pi/100;
YA2=DFT(ya2,N);
subplot(2,1,2);
plot(w/pi,abs(YA2));
title('ya2(n)的傅氏变换');
xlabel('w/pi');ylabel('|ya2(jw)|');
%卷积定理的验证
%yb(n)的验证
A=1;
a=0.4;
w=2.0374;
n=0:
50-1;
fs=1;
xa=A*exp((-a)*n/fs).*sin(w*n/fs);
subplot(2,2,1);
stem(n,xa,'k');
title('xa(n)的时域序列')
xlabel('n');ylabel('xa(n)');%xa(n)的时域序列
N=50;
k=-200:
200;
w=k*pi/100;
XA=DFT(xa,N);
subplot(2,2,2);
plot(w/pi,abs(XA));
title('xa(n)的傅氏变换');
xlabel('w/pi');ylabel('|xa(jw)|');%xa(n)的傅氏变换
hb=[1,2.5,2.5,1];
i=0:
3;
subplot(2,2,3);
stem(i,hb,'k');
axis([0,3,0,2.5]);%这个是设置坐标轴刻度范围的,前面两个是x轴设置,后面两个是y轴设置;
title('hb(n)的时域序列')
xlabel('n');ylabel('hb(n)');%hbn的时域
k=-200:
200;
w=k*pi/100;
HB=DFT(hb,N);
sublpot(2,2,4);
plot(w/pi,abs(HB));
title('hb(n)的傅氏变换')
xlabel('w/pi');ylabel('|hb(jw)|');%hbn的傅氏变换
yb=conv(hb,xa);
subplot(2,2,1);
stem(0:
12,yb,'k');
title('yb(n)的时域序列');
xlabel('n');ylabel('yb(n)=xb(n)*hb(n)');%ybn的时域变换
N=13;
w=k*pi/100;
YB=DFT(yb,N);
subplot(2,2,2);
plot(w/pi,abs(YB));
title('yb(n)的傅氏变换');
xlabel('w/pi');ylabel('|yb(jw)|=DFT(conv(hb,xa))');%ybn的傅氏变换
YBQ=HB.*XA;
subplot(2,2,3);
plot(w/pi,abs(YBQ));
title('yb(n)的傅氏变换');
xlabel('w/pi');ylabel('|yb(jw)|=HB.*XA');
实验截图:
当f=1KHZ时
当f=300hz时
当f=200hz时
2.实验原理
离散傅里叶变换(DFT)
逆变换为
产生较大的分析误差。
3.实验步骤
4.上机实验内容
5.实验结果
直接运行程序,按照实验内容及程序提示键入1~8,分别对x1(n)~x6(n)及x7(n)=x4(n)+x5(n)、x8(n)=x4(n)+jx5(n)进行谱分析。
输出x1(n)~x5(n)的波形及其8点DFT和16点DFT,x6(n)d的16点、32点和64点采样序列及其DFT.
(1)实验代码
%x6(n)=cos(8nt)+cos(16nt)+cos(20nt)fs=64khz,
N=16,32,64
m=input('FFT点数=');
n=0:
(m-1);
subplot(2,2,1);
x6=cos(pi*n/4)+cos(pi*n*5/16);
stem(n,x6,'.');
xlabel('n');
ylabel('x6(n)');
title('x6(n)=cos(8nt)+cos(16nt)+cos(20nt)的函数');
subplot(2,2,2);
xa=fft(x6,16);
i=0:
15;
stem(i,abs(xa),'.');
xlabel('k');
ylabel('x6(n)');
title('x6(n)的16点FFT');
subplot(2,2,3);
xb=fft(x6,32);
i=0:
31;
stem(i,abs(xb),'.');
xlabel('k');
ylabel('x6(n)');
title('x6(n)的32点FFT');
subplot(2,2,4);
xc=fft(x6,64);
i=0:
63;
stem(i,abs(xc),'.');
xlabel('k');
ylabel('x6(n)');
title('x6(n)的64点FFT');
(2)实验截图
x1(n)及其8点和16点DFT
x1(n)的波形
X1(n)其8点DFTx1(n)其16点DFT
x2(n)及其8点和16点DFT
X2(n)的波形
X2(n)其8点DFTX2(n)其16点DFT
x3(n)及其8点和16点DFT
X3(n)的波形
X3(n)其8点DFTX3(n)其16点DFT
x4(n)及其8点和16点波形及其DFT
X4(n)的波形
X4(n)其8点DFTX4(n)其16点DFT
x5(n)及其8点和16点波形及其DFT
X5(n)的波形
X5(n)其8点DFTX5(n)其16点DFT
x6(n)的16点、32点和64点采样序列波形及其DFT
X6(n)16点采样序列的波形X6(n)32点采样序列的波形
X6(n)其16点DFTX6(n)其32点DFT
X6(n)64点采样序列的波形X6(n)其64点DFT
22