当前位置:文档之家› 数字信号处理实验报告92885

数字信号处理实验报告92885

目录实验1 离散时间信号的频域分析-----------------------2 实验2 FFT算法与应用-------------------------------7 实验3 IIR数字滤波器的设计------------------------12 实验4 FIR数字滤波器的设计------------------------17实验1 离散时间信号的频域分析一.实验目的信号的频域分析是信号处理中一种有效的工具。

在离散信号的时域分析中,通常将信号表示成单位采样序列δ(n )的线性组合,而在频域中,将信号表示成复变量enj ω-或 en Njπ2-的线性组合。

通过这样的表示,可以将时域的离散序列映射到频域以便于进一步的处理。

在本实验中,将学习利用MATLAB 计算离散时间信号的DTFT 和DFT,并加深对其相互关系的理解。

二、实验原理(1)DTFT 和DFT 的定义及其相互关系。

序列x(n)DTFT 定义为()jw X e =()nx n e ∞=∞∑ωjn -它是关于自变量ω的复函数,且是以2π为周期的连续函数。

()jw X e 可以表示为()()()jw jw jw re im X e X e jX e =+,其中,()jw re X e 和()jw im X e 分别是()jw X e 实部和虚部;还可以表示为 ()jw X e =()|()|jw j w X e e θ,其中,|()|jw X e 和{}()arg ()j w X e ωθ=分别是()jw X e 的幅度函数和相位函数;它们都是ω的实函数,也是以2π为周期的周期函数。

序列()x n 的N 点DFT 定义为2211()()()()N N jk jknkn NNN N nX k X ex n ex n W ππ---====∑∑,()X k 是周期为N 的序列。

()j X e ω与()X k 的关系:()X k 是对()j X e ω)在一个周期中的谱的等间隔N 点采样,即2k|()()|jww NX k X e π== ,而()j X e ω可以通过对()X k 内插获得,即1(2/)(1)/202)sin(12()()2sin()2N j k N N jwk N k X e X k e N k NNωπωπωπ-⎡⎤⎡⎤---⎣⎦⎣⎦=-=•-∑(2)使用到的MATLAB 命令有基于DTFT 离散时间信号分析函数以及求解序列的DFT 函数。

1)基于 DTFT 离散时间信号分析函数有:freqz,real,imag,abs,angle 。

函数freqz 可以用来计算一个以e ωj 的有理分式形式给出的序列的DTFT 值。

freqz 的形式多样,常见的有H=freqz(num,den,w),其中num 表示序列有理分式DTFT 的分子多项式系数,den 表示分母多项式系数(均按z 的降幂排列),矢量w 表示在0~2π中给定的一系列频率点集合。

freqz 函数的其他形式参见帮助文件。

在求出DTFT 值后,可以使用函数real,imag,abs 和angle 分别求出并绘出起实部、虚部和相位谱。

例如()j X e ω)=)8109.056.11)9028.096.0122ωωωωj j j j e e e e ----+-+-利用函数freqz 计算出()j H e ω,然后利用函数abs 和angle 分别求出幅频特性与相位特性最后利用plot 命令绘出曲线。

2)求解序列DFT 的函数有:fft,ifft 。

函数fft (x )可以计算R 点序列的R 点DFT 值;而fft (x ,N )则计算R 点序列的N 点DFT ,若R>N ,则直接截取R 点DFT 的前N 点,若R<N,则x 先进行补零扩展为N 点序列再求N 点DFT 。

函数ifft(X)可以计算R 点的谱序列的R 点IDFT 值;而ifft(X,N)同fft(x,N)的情况。

三、实验设备计算机、MATLAB 软件四、实验内容(1)编程计算并画出下面DTFT 的实部,虚部、幅度和相位谱。

23230.13130.15530.13130.0518()1 1.2828 1.03880.3418jw j w j wjwjw j w j we e e X e e e e-------+++++ 程序如下:num=[0.1313 -0.1553 0.1313 0.0518];den=[1 1.2828 1.0388 0.3418];w=0:0.001:2*pi;H=freqz(num,den,w);figuresubplot(221)plot(w,real(H));title('实部')grid on;subplot(222)plot(w,imag(H))title('虚部')gridsubplot(223)plot(w,abs(H))title('幅度')gridsubplot(224)plot(w,abs(H))title('相位谱')grid on;波形如下:图1-1 DTFT的实部,虚部、幅度和相位谱(2)计算32点序列x(n)=cos3213πn,0≤n ≤31的32点和64点DFT ,分别绘出幅度谱图形,并绘出该序列的DTFT 图形。

程序如下:n1=0:15;n2=0:31;x1=cos((13*pi*n1)/32) x2=cos((13*pi*n2)/32) X1=fft(x1); X2=fft(x2); subplot(211) plot(n1,abs(X1)) title('32点DFT') grid on ; subplot(212) plot(n2,abs(X2)) title('64点DFT') grid on ;波形如下:图1-2 序列DFT 幅度谱图形和DTFT 图形DTFT 程序如下:A=1;n=0:31;x=cos((13*pi*n)/32);B=x;w=0:0.01:2*pi*2;[H]=freqz(B,A,w);magH=abs(H);subplot(2,1,1);plot(w,magH);grid;ylable('Magnitude');subplot(2,1,2);plot(w,phaH);grid;xlable('w');ylable('phase');grid on;波形如下:图1-3 DTFT图形实验2 FFT 算法与应用一、实验目的在理论学习的基础上,通过本次实验。

加深对快速傅里叶变换的理解,熟悉FFT 算法。

熟悉应用FFT 对典型信号进行频谱分析的方法。

了解应用FFT 进行信号频谱分析过程中可能出现的问题,以便在实际中正确应用FFT 。

二.实验原理在各种信号序列中,有限长序列在数字信号处理中占有很重要的地位。

无限长序列往往也可以用有限长序列来逼近。

对于有限长序列可以使用离散傅里叶变换(DFT ),这一变换可以很好地反映序列的频域特性,并且容易利用快速算法在计算机的上的实现。

当序列的长度是N 时,定义离散傅里叶变换为210X (k )=DFT[x(n)]=()N jknNn x n eπ--=∑=10()N kn N n x n W -=∑ 式中,2j NN W eπ-=的反变换定义为()[()]x n IDFT X k ==101()N kn N kX k W N--=∑ 根据上式令k N Z W -=,则有 1()()[()]kNN kn N z W nX z x n W DFT x n --====∑所以,X (k )是在z 变换在单位圆上的等间隔采样,或者说是序列傅里叶变换的等间隔采样。

时域采样在满足乃奎斯特定理时,就是不会发生频谱混叠;同样,在频率域进行采样的时候,只要采样间隔足够小,也不会发生时域序列的混叠。

DFT 是对序列傅里叶变换的等间距采样,因此可以利用于序列的频谱分析。

在运用于DFT 进行频谱分析的时候可能有三种误差,分析如下:(1)混叠现象序列的频谱是采样信号频谱的周期延拓,周期是Tπ2,因此当采样速率不满足乃奎斯特定理时,即采样频率小于两倍的信号频率时,经过采样就会发生频谱混叠。

这导致采样后的信号序列频谱不能真实地反映原信号的频谱。

(2)泄露现象实际中的信号序列往往很长,甚至是无限长序列,为了方便,往往用截断的序列来近似它们。

这样可以使用较短的DFT来对信号进行频谱分析。

这种截断等价于给原信号序列乘以一个矩形窗函数,而矩形窗函数的频谱不是有限带宽的,从而它和原信号的频谱进行卷积以后会扩展原信号的频谱。

(3)栅栏响应因为DFT是对单位圆上z变换的均匀采样,所以它不可能将频谱视为一个连续函数。

这样就产生了栅栏效应,从某种角度来看,用DFT来观看频谱就好像通过一个栅栏来观看一幅景象,只能在离散点上看到真实的频谱。

减小栅栏效应的一个方法是在源程序的末端补一些零值,从而变动DFT的点数。

函数fft(x)可以计算R带你序列的R点的DFT值;而fft(x,N)则计算R点序列的N点DFT,若R>N,则直接截取R点DFT的前N点,若R<N,则x先进行补零扩展为N点序列再求N点DFT。

函数ifft(X)可以计算R点的谱序列的R点IDFT值;而ifft (X,N)同fft(x,N)的情况。

函数conv(x1,x2)可以计算两序列的线性卷积。

三.实验设备计算机,MATLAB软件。

四.实验内容编制信号产生子程序及本实验的频谱分析主程序。

实验中需要用到的基本信号包括:(1)三角波序列:x(n)=n+13,03≤n13-n ,47≤≤≤n0,其它程序如下:n2=0:7;x2=[13,14,15,16,9,8,7,6];subplot(221);stem(n2,x2);title('x2序列');grid on;k1=0:7;y21=fft(x2,8);magy21=abs(y21);subplot(222);stem(k1,magy21);title('x2的8点FFT');grid on;k2=0:15;y22=fft(x2,16);magy22=abs(y22);subplot(224);stem(k2,magy22);title('x2的16点FFT');grid on;波形如下:图2-1 三角波序列以及它的8点和16点FFT(2)利用DFT计算下面两序列的线性卷积x(n)={3,-4,6,0,6,-4},h(n)={1,-4, 3,4}程序如下:clear all;close all;clc;N=9;g=[3 -4 6 0 6 -4];h=[1 -4 3 4];x=conv(g,h)gf=fft(g,N);hf=fft(h,N);xx=gf.*hfX=ifft(xx,N);grid on;波形如下:图2-2 用DFT 计算的序列x(n)与h(n)线性卷积图(3)已知某序列x (n )在单位圆上的N=64等分样点的z 变换为X (Z k )=X (k )=Nk j e/213.011π--,k=0,1,2…,63。

相关主题