中南大学数字信号处理实验报告解读
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程名称:数字信号处理
姓名: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)采样是连续信号数字处理的第一个关键环节。
对一个信号X a(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= 1 KHZ时
当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,x 6(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点 DFT x1(n)其16点 DFT x2(n)及其8点和16点DFT
X2(n)的波形
X2(n)其8点 DFT X2(n)其16点 DFT x3(n)及其8点和16点DFT
X3(n)的波形
X3(n)其8点DFT X3(n)其16点 DFT x4(n)及其8点和16点波形及其DFT
X4(n)的波形
X4(n)其8点 DFT X4(n)其16点 DFT
x5(n)及其8点和16点波形及其DFT
X5(n)的波形
X5(n)其8点 DFT X5(n)其16点 DFT x6(n)的16点、32点和64点采样序列波形及其DFT
X6(n)16点采样序列的波形 X6(n)32点采样序列的波形
X6(n)其16点 DFT X6(n)其32点 DFT X6(n)64点采样序列的波形 X6(n)其64点 DFT。