数字信号处理实验三离散时间信号的频域分析.docx

上传人:b****8 文档编号:28794192 上传时间:2023-07-19 格式:DOCX 页数:10 大小:36.40KB
下载 相关 举报
数字信号处理实验三离散时间信号的频域分析.docx_第1页
第1页 / 共10页
数字信号处理实验三离散时间信号的频域分析.docx_第2页
第2页 / 共10页
数字信号处理实验三离散时间信号的频域分析.docx_第3页
第3页 / 共10页
数字信号处理实验三离散时间信号的频域分析.docx_第4页
第4页 / 共10页
数字信号处理实验三离散时间信号的频域分析.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

数字信号处理实验三离散时间信号的频域分析.docx

《数字信号处理实验三离散时间信号的频域分析.docx》由会员分享,可在线阅读,更多相关《数字信号处理实验三离散时间信号的频域分析.docx(10页珍藏版)》请在冰豆网上搜索。

数字信号处理实验三离散时间信号的频域分析.docx

数字信号处理实验三离散时间信号的频域分析

实验三:

离散时间信号的频域分析

一.实验目的

1.在学习了离散时间信号的时域分析的基础上,对这些信号在频域上进行分析,从而进一步研究它们的性质.

2.熟悉离散时间序列的3种表示方法:

离散时间傅立叶变换(DTFT),离散傅立叶变换(DFT)和Z变换.

二.实验相关知识准备

1.用到的MATLAB命令

运算符和特殊字符:

〈>。

*^.^

语言构造与调试:

errorfunctionpause

基本函数:

angleconjrem

数据分析和傅立叶变换函数:

fftifftmaxmin

工具箱:

freqzimpzresiduezzplane

三.实验内容

1.离散傅立叶变换

在MATLAB中,使用fft可以很容易地计算有限长序列x[n]的离散傅立叶变换。

此函数有两种形式:

y=fft(x)

y=fft(x,n)求出时域信号x的离散傅立叶变换

n为规定的点数,n的默认值为所给x的长度。

当n取2的整数幂时变换的速度最快。

通常取大于又最靠近x的幂次。

(即一般在使用fft函数前用n=2^nextpow2(length(x))得到最合适的n)。

当x的长度小于n时,fft函数在x的尾部补0,以构成长为n点数据。

当x的长度大于n时,fft函数将序列x截断,取前n点。

一般情况下,fft求出的函数多为复数,可用abs及angle分别求其幅度和相位。

注意:

栅栏效应,截断效应(频谱泄露和谱间干扰),混叠失真

例3-1:

fft函数最通常的应用是计算信号的频谱。

考虑一个由100hz和200hz正弦信号构成的信号,受零均值随机信号的干扰,数据采样频率为1000hz。

通过fft函数来分析其信号频率成分。

t=0:

0.001:

1;%采样周期为0。

001s,即采样频率为1000hz

x=sin(2*pi*100*t)+sin(2*pi*200*t)+1。

5*rand(1,length(t));%产生受噪声污染的正弦波信号

subplot(2,1,1);

plot(x(1:

50));%画出时域内的信号

y=fft(x,512);%对x进行512点的fft

f=1000*(0:

256)/512;%设置频率轴(横轴)坐标,1000为采样频率

subplot(2,1,2);

plot(f,y(1:

257));%画出频域内的信号

实验内容3-2:

频谱泄漏和谱间干扰

假设现有含有三种频率成分的信号x(t)=cos(200πt)+sin(100πt)+cos(50πt)

用DFT分析x(t)的频谱结构。

选择不同的截取长度,观察DFT进行频谱分析十存在的截断效应。

试用加窗的方法减少谱间干扰。

请分析截取长度对频谱泄漏和频率分辨率的影响,分析不同窗函数对谱间干扰的影响。

提示:

截断效应使谱分辨率(能分开的两根谱线间的最小间距)降低,并产生谱间干扰;频谱混叠失真使折叠频率(fs/2)附近的频谱产生较大的失真。

理论和实践都已证明,加大截取长度可提高频率分辨率;选择合适的窗函数可降低谱间干扰;而频谱混叠失真要通过提高采样频率fs和预滤波来改善.

解:

取采样频率fs=400Hz,采样信号序列x(n)=x(t)w(n),n=0,1…….N—1;

N为采样点数,N=fs*T,T为截取时间长度,w(n)为窗函数。

实验取三种长度T1=0.04s,T2=4*0.04s,T3=8*0。

04s

窗函数分别用矩形窗函数w(n)=RN(n),Hamming窗。

clear;closeall

fs=400;T=1/fs;%采样频率为400

Tp=0.04;N=Tp*fs;%采样点数

N1=[N,4*N,8*N];%设定三种截取长度供调用

st=[’|X1(jf)|’;'|X4(jf)|’;’|X8(jf)|’];%设定三种标注语句供调用

%矩形窗截断

form=1:

3

n=1:

N1(m);

xn=cos(200*pi*n*T)+sin(100*pi*n*T)+cos(50*pi*n*T);%产生采样序列

Xk=fft(xn,4096)%4096点DFT,用FFT实现

fk=[0:

4095]/4096/T;

subplot(3,2,2*m—1)

plot(fk,abs(Xk)/max(abs(Xk)));

ylabel(st(m,:

));

ifm==1title('矩形窗截取');end

end;

%加hamming窗改善谱间干扰

form=1:

3

n=1:

N1(m);

wn=hamming(N1(m));%调用函数hamming产生N长hamming窗序列wn

xn=(cos(200*pi*n*T)+sin(100*pi*n*T)+cos(50*pi*n*T)).*wn’;%产生采样序列

Xk=fft(xn,4096)%4096点DFT,用FFT实现

fk=[0:

4095]/4096/T;

subplot(3,2,2*m)

plot(fk,abs(Xk)/max(abs(Xk)));

ylabel(st(m,:

));

ifm==1title(’hamming窗截取’);end

end;

2.一维逆快速傅立叶变换

y=ifft(x)

y=ifft(x,n)

实验内容3—3:

频域采样定理的验证

(1)产生一个三角波序列x(n)

(2)对M=40,计算x(n)的64点DFT,并图示x(n)和X(k)=DFT[x(n)],k=0,1,…,63。

(3)对

(2)中所得X(k)在[0,2pi]上进行32点抽样得

X1(k)=X(2k),k=0,1,…,31。

并图示。

(4)求X1(k)的32点IDFT,并图示。

即x1(n)=IDFT[X1(k)],k=0,1,…,31

(5)采用周期延拓的方法绘出

的波形,评述

与x(n)的关系,并根据频域采样理论加以解释。

clear;closeall

M=40;N=64;n=0:

M;

xa=0:

floor(M/2);xb=ceil(M/2)—1:

-1:

0;

xn=[xa,xb];%产生长度为M的三角波序列xn

Xk=fft(xn,64);%计算xn的64点FFT

X1k=Xk(1:

2:

N);%隔点抽取Xk得到X1(k)

x1n=ifft(X1k,N/2);%计算X1k的32点IFFT得到x1(n)

nc=0:

3*N/2;%取97点进行观察

xc=x1n(mod(nc,N/2)+1);%x1(n)的周期延拓序列

subplot(3,2,1)

stem(n,xn,’.’);

title('40点三角波序列x(n)’);

xlabel('n');

ylabel(’x(n)')

subplot(3,2,2)

n1=0:

N/2-1;

stem(n1,x1n,’.’);

title('32点IDFT[X1(k)]');

xlabel('n');

ylabel(’x1(n)');

subplot(3,2,3)

k=0:

N—1;

stem(k,abs(Xk),'。

’);

title('64点DFT[x(n)]');

xlabel('k');

ylabel(’X(k)');

subplot(3,2,4)

k1=0:

N/2-1;

stem(k1,abs(X1k),’。

’);

title(’64点DFT[x(n)]’);

xlabel(’k’);

ylabel('X1(k)');

subplot(3,2,5);

stem(nc,xc,'.’);

title('x1(n)的周期延拓序列');

xlabel(’n’);

ylabel('x(mod(n.32))’);

由于频域在[0,2

]上的采样点数N小于x(n)的长度M,所以产生时域混叠现象,不能由X1(k)恢复序列x(n)。

只有满足N大于等于M时,可优频域采样X1(k)得到原序列x(n)。

这就是频域采样鼎立,请同学们自己编程验证

3.线性调频Z变换

离散傅立叶变换(DFT)可以看作信号在Z域上沿单位圆的均匀采样。

但在实际应用中,并非整个单位圆上的频谱都有意义.一些情况下,如对于窄带信号,只希望分析信号所在的一段频带等,采样点的轨迹是一条弧线或圆周。

这种需求,就导致了线性调频Z变换(Chirpz变换)的出现.

Chirpz变换与DFT计算整个频谱的算法不同,它是一种更为灵活的计算频谱的算法,可以用来计算单位圆上任一段曲线的Z变换,作频谱分析时输入的点数和输出的点数可以不相等,从而达到频域“细化”的目的。

y=czt(x,m,w,a)

y=czt(x)

例3-4:

利用Chirpz变换计算滤波器h(且h=fir1(30,125/500,boxcar(31)))在100Hz~200Hz的频率特性,并用图形文件比较CZT函数和FFT函数.

h=fir1(30,125/500,boxcar(31));

fs=1000;

f1=100;f2=200;

m=1024;

y=fft(h,1024);

fy=fs*(0:

1023)/1024;

subplot(2,1,1);

plot(fy,abs(y));

axis([0,500,0,1.5]);

w=exp(—j*2*pi*(f2—f1)/(m*fs));

a=exp(j*2*pi*f1/fs);

z=czt(h,m,w,a);%产生1024个z值

fz=(f2—f1)*(0:

1023)/1024+f1;subplot(2,1,2);

plot(fz,abs(z))

4.实验问题回答

(1)完成例3-1的程序并观察信号序列x(t)在时域和频域上分析的特点.

(2)在实验内容3-2和3—3中按要求完成程序,并回答3—2和3—3中提出的问题。

(2)完成例3-4的程序并观察Chirpz变换与fft变换的特点.

四.实验报告要求

1.按照实验内容要求完成相关实验程序,并得出相关的实验结果(包括图形结果)。

2.回答实验中提出的问题.

3.总结本次实验结果,按照实验报告格式要求,书写实验报告。

五.实验设备

PC机,MATLAB软件

附录AMATLAB系统的常用概念

1、命令窗口

在Windows2000下启动MATLAB系统后,Windows2000的工作平台上会弹出一个窗口,如下图所示,这个窗口称为MATLAB的命令窗口。

MATLAB的命令窗口是用户与MATLAB解释器进行通信的工作环境,提示符‘〉>’表示MATLAB解释器正等待用户输入命令。

所有的MATLAB命令、MATLAB函数,以及MATLAB程序都要在这个窗口下运行。

在命令窗口,用户可以发出MATLAB命令。

例如,为了生成一个3*3的矩阵,可以在提示符下,键入如下的命令:

A=[123;456;789]

方括号命令表示矩阵,空格或逗号将每行的元素分开,而分号将矩阵的各行数值分开。

再键入Enter后,MATLAB将回显如下的矩阵:

A=

123

456

789

为了求该矩阵的逆矩阵,则只要键入命令

B=inv(A);

MATLAB就将计算出相应的结果。

如果不想在命令窗口中显示计算结果,只要如上所示,在该命令后多键入一个分号即可。

此时,MATLAB系统只完成该命令所要求的计算任务,其计算结果不回显.这项功能在程序设计中是非常必要的.

MATLAB系统也可以说是一种新的语言,该语言十分容易掌握,其结构非常类似于数学式子的书写格式,用户花上很少的时间即可掌握MATLAB的大部分命令。

2、图形窗口

MATLAB系统的强大功能之一是其优秀的图形功能。

对于任何作图命令,MATLAB将打开另一个窗口来绘制输出图形,这样的窗口在MATLAB系统中被成为图形窗口。

在同一个图形窗口中,可以绘制多个图形,也可以生成多个图形窗口,并选择其中的一个图形窗口,在其中绘制图形.生成图形窗口的方法比较多,在没有图形窗口存在时,每个绘图函数都能自动生成一个图形窗口;也可以用figure命令生成一个新的图形窗口;还可以用命令窗口的File菜单的New子菜单的Figure项来打开一个新的图形窗口。

3、搜索路径

MATLAB管理着一条搜索路径,它在搜索路径下寻找与命令相关的函数文件。

例如,如果在MATLAB提示符下输入example,MATLAB解释器将按照下面的步骤来处理这条字符串:

(1)检查example是不是一个变量;

(2)如果不是,检查example是不是一个内部函数;

(3)如果不是,检查在当前文件夹下是否存在名为example.mex,example.dll或example。

m的文件。

MEX文件是MATLAB的执行文件,将优先执行;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 哲学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1