数字信号处理实验报告.docx
《数字信号处理实验报告.docx》由会员分享,可在线阅读,更多相关《数字信号处理实验报告.docx(26页珍藏版)》请在冰豆网上搜索。
数字信号处理实验报告
《数字信号处理》
实验报告
课程名称:
《数字信号处理》
学院:
信息科学与工程学院
专业班级:
通信1502班
学生姓名:
XXX
学号:
XXX
指导教师:
XXX
2017年5月28日
实验一离散时间信号和系统响应
一.实验目的
1.熟悉连续信号经理想采样前后的频谱变化关系,加深对时域采样定理的理解
2.掌握时域离散系统的时域特性
3.利用卷积方法观察分析系统的时域特性
4.掌握序列傅里叶变换的计算机实现方法,利用序列的傅里叶变换对离散信号及系统响应进行频域分析
二、实验原理
1.采样是连续信号数字化处理的第一个关键环节。
对采样过程的研究不仅可以了解采样前后信号时域和频域特性的变化以及信号信息不丢失的条件,而且可以加深对离散傅里叶变换、Z变换和序列傅里叶变换之间关系式的理解。
对连续信号
以T为采样间隔进行时域等间隔理想采样,形成采样信号:
式中
为周期冲激脉冲,
为
的理想采样。
的傅里叶变换为
:
上式表明将连续信号
采样后其频谱将变为周期的,周期为Ωs=2π/T。
也即采样信号的频谱
是原连续信号xa(t)的频谱Xa(jΩ)在频率轴上以Ωs为周期,周期延拓而成的。
因此,若对连续信号
进行采样,要保证采样频率fs≥2fm,fm为信号的最高频率,才可能由采样信号无失真地恢复出原模拟信号
计算机实现时,利用计算机计算上式并不方便,因此我们利用采样序列的傅里叶变换来实现,即
而
为采样序列的傅里叶变换
2.时域中,描述系统特性的方法是差分方程和单位脉冲响应,频域中可用系统函数描述系统特性。
已知输入信号,可以由差分方程、单位脉冲响应或系统函数求出系统对于该输入信号的响应。
本实验仅在时域求解,对于差分方程可用Matlab中的工具箱函数filter()函数求解
一个时域离散线性时不变系统的输出与输入间的关系为:
可用Matlab中的工具箱函数conv()函数求解
三、实验内容及步骤
1.时域采样定理的验证
给定模拟信号:
式中
。
其幅频特性如图所示:
选择三种采样频率Fs=1kHz,300Hz,200Hz,生成采样序列
分别用序列
表示。
编写程序计算三个序列的幅频特性曲线
,并绘图显示。
观察
在折叠频率附近与连续信号频谱有无明显差别,分析频谱混叠现象。
实验程序如下
%时域采样定理的验证
%Fs=1KHz
Tp=64/1000;%Tp=64ms
Fs=1000;T=1/Fs;
M=Tp*Fs;n=0:
M-1;
A=444.128;alph=pi*50*2^0.5;omega=pi*50*2^0.5;
xnt=A*exp(-alph*n*T).*sin(omega*n*T);
Xk=T*fft(xnt,M);%MµãFFT
yn='xa(nT)';subplot(3,2,1);
stem(xnt);%»Í¼
boxon;title('(a)Fs=1000Hz');
k=0:
M-1;fk=k/Tp;
subplot(3,2,2);plot(fk,abs(Xk));title('(a)T*FT[xa(nT)],Fs=1000Hz');
xlabel('f(Hz)');ylabel('幅度');
axis([0,Fs,0,1.2*max(abs(Xk))])
%Fs=300Hz
Tp=64/1000;
Fs=300;T=1/Fs;
M=Tp*Fs;n=0:
M-1;
A=444.128;alph=pi*50*2^0.5;omega=pi*50*2^0.5;
xnt=A*exp(-alph*n*T).*sin(omega*n*T);
Xk=T*fft(xnt,M);
yn='xa(nT)';subplot(3,2,1);
stem(xnt);
boxon;title('(a)Fs=300Hz');
k=0:
M-1;fk=k/Tp;
subplot(3,2,2);plot(fk,abs(Xk),'r');title('(a)T*FT[xa(nT)],Fs=300Hz’);
xlabel('f(Hz)');ylabel(‘幅度’);
axis([0,Fs,0,1.2*max(abs(Xk))])
%Fs=200Hz
Tp=64/1000;%64ms
Fs=300;T=1/Fs;
M=Tp*Fs;n=0:
M-1;
A=444.128;alph=pi*50*2^0.5;omega=pi*50*2^0.5;
xnt=A*exp(-alph*n*T).*sin(omega*n*T);
Xk=T*fft(xnt,M);
yn='xa(nT)';subplot(3,2,1);
stem(xnt,'.');
boxon;title('(a)Fs=200Hz');
k=0:
M-1;fk=k/Tp;
subplot(3,2,2);plot(fk,abs(Xk));title('(a)T*FT[xa(nT)],Fs=200Hz');
xlabel('f(Hz)');ylabel('幅度');
axis([0,Fs,0,1.2*max(abs(Xk))]);
2.给定一个低通滤波器的差分方程为:
输入序列
(1)分别求出
和
的系统响应,并画出其波形
(2)求出系统的单位脉冲响应,画出其波形
A=[1,-0.9];
B=[0.05,0.05];
x1n=[ones(1,8),zeros(1,50)]
x2n=ones(1,200);
hn=impz(B,A,50);
subplot(3,1,1);stem(hn);
title(‘
(1)系统单位脉冲响应h(n)’);
y1n=filter(B,A,x1n);
subplot(3,1,2);stem(y1n);
title('
(2)系统对R(8)的响应y1(n)');
y2n=filter(B,A,x2n);
subplot(3,1,3);stem(y2n);
title(‘(3)系统对u(n)的响应)y2(n)’);
3.给定系统的单位脉冲响应为
用线性卷积法求
分别对系统
和
的输出响应,并画出波形
x1n=ones(1,8);
h1n=[ones(1,10)zeros(1,20)];
h2n=[1,2.5,2.5,1,zeros(1,10)];
y11n=conv(h1n,x1n);
y22n=conv(h2n,x1n);
subplot(2,2,1);stem(h1n,’.b’);
title(‘(4)系统单位脉冲响应h1(n)’);
subplot(2,2,2);stem(y11n,'.b');
title(‘(5)h1(n)与R8(n)的卷积y11(n)’);
subplot(2,2,3);stem(h2n,'.b');
title(‘(6)系统单位脉冲响应h2(n)’);
subplot(2,2,4);stem(y22n,'.b');
title(‘(7)h2(n)与R8(n)的卷积y22(n)’);
四、实验思考
1.在分析理想采样序列特性的实验中,采样频率不同时,相应理想采样序列的傅里叶变换频谱的数字频率度量是否都相同?
它们所对应的模拟频率是否相同?
为什么?
答:
当采样频率不同时,数字度量不同,但是模拟频率相同。
因为数字频率w是模拟角频率Ω用采样频率Fs归一化频率。
数字频率和模拟角频率之间的关系是w=ΩT,模拟信号的模拟角频率Ω不变,当采样频率不同时,T不同,所以数字频率Ω不同。
因此,采样频率不同时,相应理想采样序列的傅里叶变换频谱的数字频率度量不相同,但是它们所对应的模拟频率相同。
2.如果输入信号为无线长序列,系统的单位脉冲响应是有限长序列,可否用线性卷积法求系统的响应?
如何求?
答:
(1)对输入信号序列分段;
(2)求单位脉冲响应与各段的卷积;
(3)将各段卷积结果相加。
3.如果信号经过低通滤波器,把信号的高频分量滤掉,时域信号会有何变化?
用前面第二个实验结果进行分析说明
答:
把信号经过低通滤波器,把信号的高频成分滤掉,时域信号的剧烈将变得平滑。
五、实验心得及体会
通过本次实验我重新温习了MATLAB这个软件的使用方法,运行环境。
通过这款软件使我们的学习更加便利。
实验二用FFT对信号作频谱分析
一、实验目的
1.进一步加深DFT算法原理和基本性质的理解
2.掌握用FFT对连续信号和时域离散信号进行频谱分析的方法
3.了解用FFT进行频谱分析时可能出现的分析误差及其原因,以便在实际中正确应用FFT
二、实验原理
用FFT对信号作频谱分析是学习数字信号处理的重要内容,经常需要进行谱分析的信号是模拟信号和时域离散信号。
对信号进行谱分析的重要问题是频谱分辨率F和分析误差。
频谱分辨率直接和FFT的变换区间N有关,FFT能够实现的频率分辨率是2/N,因此要求2/NF。
可以根据此式选择FFT的变换区间N。
误差主要来自于用FFT作频谱分析时,得到的是离散谱,而信号(周期信号除外)是连续谱,只有当N较大时,离散谱的包络才能逼近于连续谱,因此N要适当选择大一些。
周期信号的频谱是离散谱,只有用整数倍周期的长度作FFT,得到的离散谱才能代表周期信号的频谱。
如果不知道信号周期,可以尽量选择信号的观察时间长一些。
对模拟信号进行谱分析时,首先要按照采样定理将其变为时域离散信号。
如果是模拟周期信号,也应该选取整数倍周期的长度,经过采样后形成周期序列,按照周期序列的谱分析进行。
三、实验步骤及内容
1.对以下给出的各序列进行谱分析:
选择FFT的变换区间N为8和16两种情况进行频谱分析。
分别打印其幅频特性曲线,并进行对比、分析、讨论。
x1n=[ones(1,4)];%产生R4(n)序列向量
X1k8=fft(x1n,8);%计算x1n的8点DFT
X1k16=fft(x1n,16);%计算x1n的16点DFT
N=8;
f=2/N*(0:
N-1);
figure
(1);
subplot(1,2,1);stem(f,abs(X1k8),'.');%绘制8点DFT的幅频特性图
title('(1a)8点DFT[x_1(n)]');xlabel('ω/π');ylabel('幅度');
N=16;
f=2/N*(0:
N-1);
subplot(1,2,2);stem(f,abs(X1k16),'.');%绘制8点DFT的幅频特性图
title('(1a)16点DFT[x_1(n)]');xlabel('ω/π');ylabel('幅度');
%x2n和x3n
M=8;xa=1:
(M/2);xb=(M/2):
-1:
1;
x2n=[xa,xb];%产生长度为8的三角波序列x2(n)
x3n=[xb,xa];
X2k8=fft(x2n,8);
X2k16=fft(x2n,16);
X3k8=fft(x3n,8);
X3k16=fft(x3n,16);
figure
(2);
N=8;
f=2/N*(0:
N-1);
subplot(2,2,1);stem(f,abs(X2k8),'.');%绘制8点DFT的幅频特性图
title('(2a)8点DFT[x_2(n)]');xlabel('ω/π');ylabel('幅度');
subplot(2,2,3);stem(f,abs(X3k8),'.');%绘制8点DF