电子科技大学生命科学与技术学院
标 准 实 验 报 告
(实验)课程名称 数字信号处理
2017-2018-第2学期
电子科技大学教务处制表
电 子 科 技 大 学
实 验 报 告
学生姓名 指导教师 学 号 实验时间 2018年 4月 26 日 一、实验室名称:清水河校区,基础实验大楼 506 机房 二、实验名称:离散的傅里叶变换的应用 三、实验学时:2学时
四、实验原理:离散傅里叶变换在时域和频域都离散有限的特点,使其成为信号分析与处理中的一个最根本的也是最常用的变换。然而,但序列的长度N很大时,直接计算DFT需要很大的计算量。快速傅里叶变换使DFT的运算效率提高数个数量级,为数字信号处理技术应用与各种信号的实时处理创造了良好的条件。MATLAB提供了用于快速计算DFT的fft函数,其调用格式为: yff(x) 或y=f(x,N);fft 函数用来计算序列x(n)的N点DFT,如果序列的长度小于N,则函数在序列的尾部补零至N点;而当序列的长度大于N时,函数对序列进行截短。为了提高运行速度,通常将N取为2的整数次幂。 2.
DTFT[x(nn0)]ejn0X(e)
j 相位谱加上线性序列,及相当于频率成分乘以
ekw,k为线性相位
n的斜率,相当于0。
五、实验目的:1.熟悉MATLAB编程
2.了解DFT的性质及其应用
六、实验内容:1、利用 DFT 实现两个序列的线性卷积运算,并研
究DFT点数与计算结果的关系。
2、分析滤波器的相位谱特性对滤波结果的影响
九、实验数据及结果分析: 1. N=20;
x=10*rand(1,10); h=10*rand(1,20); y=conv(x,h) x1=fft(x,N); h1=fft(h,N); y1=ifft(x1.*h1) subplot(1,3,1)
plot(1:length(y),y,'ro',1:length(y1),y1,'b') subplot(1,3,2) N=29;
x=10*rand(1,10); h=10*rand(1,20); y=conv(x,h) x1=fft(x,N); h1=fft(h,N); y1=ifft(x1.*h1)
plot(1:length(y),y,'ro',1:length(y1),y1,'b') subplot(1,3,3) N=40;
x=10*rand(1,10); h=10*rand(1,20); y=conv(x,h) x1=fft(x,N); h1=fft(h,N);
y1=ifft(x1.*h1)
plot(1:length(y),y,'ro',1:length(y1),y1,'b')
clear x=0:0.01:10;
y=sin(5*x).*exp(0.5*x)+sin(5*x); ffty=fft(y); amp=abs(ffty); pha=angle(ffty);
fliterPha=2*rand(1,length(pha)); phaNew=pha+fliterPha; cc1=amp.*exp(i*phaNew); yy1=ifft(cc1,'symmetric');
fliterPha2=20*x; phaNew2=pha+fliterPha2; cc2=amp.*exp(i*phaNew2); yy2=ifft(cc2,'symmetric');
plot(1:length(x),y,'g',1:length(x),yy1,'b',1:length(x),yy2,'r') legend('原信号','加随即相位','加线性相位')
十、实验结论:
1.对于循环卷积出的长度为N的序列,如果线性卷积出的序列的长度小于N,则函数在序列的尾部补零至N点;而当序列的长度大于N时,函数对序列进行截短,图像会失真。为了提高运行速度,通常将N取为2的整数次幂。
2.具有不同频率分量的信号序列,DFT操作之后,由于不同频率成分对应的平移不成线性关系,造成了图像的散乱。单一频率的信号加随即相位则没有这种现象,而只发生平移。
十一、总结及心得体会:学会了DFT,循环卷积的matlab实现方法。
十二、对本实验过程及方法、手段的改进建议: 无。
报告评分:
指导教师签字: