实验四 基于MATLAB验证DFT的性质_20111910119

合集下载

离散傅立叶变换DFT实验报告

离散傅立叶变换DFT实验报告

实验一离散时间系统的时域剖析之羊若含玉创作一、实验目标1.运用MATLAB仿真一些简略的离散时间系统,并研究它们的时域特性.2.运用MATLAB中的卷积运算盘算系统的输出序列,加深对离散系统的差分方程、冲激响应和卷积剖析办法的懂得.二、实验原理离散时间系统其输入、输出关系可用以下差分方程描写:当输入信号为冲激信号时,系统的输出记为系统单位冲激响应δ,则系统响应为如下的卷积盘算式:hn→[n]][当h[n]是有限长度的(n:[0,M])时,称系统为FIR系统;反之,称系统为IIR系统.在MATLAB中,可以用函数y=Filter(p,d,x) 求解差分方程,也可以用函数y=Conv(x,h)盘算卷积.例1clf;n=0:40;a=1;b=2;x1= 0.1*n;x2=sin(2*pi*n);x=a*x1+b*x2;num=[1, 0.5,3];den=[2 -3 0.1];ic=[0 0]; %设置零初始条件y1=filter(num,den,x1,ic); %盘算输入为x1(n)时的输出y1(n) y2=filter(num,den,x2,ic); %盘算输入为x2(n)时的输出y2(n) y=filter(num,den,x,ic); %盘算输入为x (n)时的输出y(n) yt= a*y1+b*y2;%画出输出信号subplot(2,1,1)stem(n,y);ylabel(‘振幅’);title(‘加权输入a*x1+b*x2的输出’);subplot(2,1,2)stem(n,yt);ylabel(‘振幅’);title(‘加权输出a*y1+b*y2’);(一)、线性和非线性系统对线性离散时间系统,若)(1n y 和)(2n y 分离是输入序列)(1n x 和)(2n x 的响应,则输入)()()(21n bx n ax n x +=的输出响应为)()()(21n by n ay n y +=,即相符叠加性,其中对任意常量a 和b 以及任意输入)(1n x 和)(2n x 都成立,不然为非线性系统.(二)、时不变系统和时变系统对离散时不变系统,若)(1ny是)(1nx的响应,则输入x(n)=x1(n-n0)的输出响应为y(n)=y1(n-n0),式中n0是任意整数.该输入输出关系,对任意输入序列及其相应的输出成立,若对至少一个输入序列及其相应的输出序列不成立,则系统称之为时变的.(三)、线性卷积假设待卷积的两个序列为有限长序列,卷积运算符在MATLAB中可敕令conv实现.例如,可以把系统的冲激响应与给定的有限长输入序列进行卷积,得到有限长冲激响应系统的输出序列.下面的MATLAB程序实现了该办法.例2clf;h=[3 2 1 -2 1 0 -4 0 3];%冲激x=[1 -2 3 -4 3 2 1 ]; %输入序列y=conv(h,x);n=0:14;stem(n,y);xlabel(‘时间序号n’);ylabel(‘振幅’);title(‘用卷积得到的输出’);grid;三、实验内容与步调y(n)-0.4y(n-1)+0.75y(n-2)=2.2403x(n)+2.4908x(n-1)+2.2403x(n-2)用MATLAB 程序仿真该系统,输入三个不合的输入序列: )1.02cos()(1n n x ⋅=π,)4.02cos()(2n n x ⋅=π,)(3)(221n x n x x -= 盘算并并显示相应的输出)(1n y ,)(2n y 和)(n y .2.用MATLAB 程序仿真步调1给出的系统,对两个不合的输入序列x(n)和x(n-10),盘算并显示相应的输出序列y3(n)和y4(n).3.用MATLAB 程序仿真盘算下列两个有限长序列的卷积和并显示图形.四、实验仪器设备盘算机,MATLAB 软件五、实验要求给出理论盘算成果和程序盘算成果并讨论.六、实验成果实验1:clf;n=0:40;a=2;b=-3;x1= cos(2*pi*0.1*n);x2=cos(2*pi*0.4*n);x=a*x1+b*x2;den=[1, -0.4,0.75];num =[2.2403 2.4908 2.2403];%分子系数ic=[0 0]; %设置零初始条件y1=filter(num,den,x1,ic); %盘算输入为x1(n)时的输出y1(n)y2=filter(num,den,x2,ic); %盘算输入为x2(n)时的输出y2(n)yn=filter(num,den,x,ic); %盘算输入为x (n)时的输出y(n)%画出输出信号subplot(2,2,1)stem(n,y1);ylabel('振幅');title('y1输出');subplot(2,2,2)stem(n,y2);ylabel('振幅');title('y2输出');subplot(2,2,3)stem(n,yn);ylabel('振幅');title('yn输出');实验2:clf;n=0:40;n1=0:50;a=2;b=-3;x1= cos(2*pi*0.1*n);x2=cos(2*pi*0.4*n);x3=a*x1+b*x2;x4=[zeros(1,10), x3];den=[1, -0.4,0.75];num=[2.2403 2.4908 2.2403];ic=[0 0]; %设置零初始条件y3=filter(num,den,x3,ic);y4=filter(num,den,x4,ic);%盘算输入为x (n)时的输出y(n) %画出输出信号subplot(2,1,1)stem(n,y3);ylabel('振幅');title('yn输出');subplot(2,1,2)stem(n1,y4);ylabel('振幅');title('y1输出');实验3:clf;x=[1 3 2];%冲激u=[1 1 1]; %输入序列y=conv(u,x);n=0:4;stem(n,y);xlabel('时间序号n');ylabel('振幅');title('用卷积得到的输出');grid;实验二(1)离散时间信号的DTFT一、实验目标1.运用MATLAB懂得Z变换及其绘制H(z)的零顶点图.2.运用MATLAB盘算逆Z变换.二、实验原理(一)、MATLAB在ZT中的应用.线性时不变离散时间系统的冲激响应h(n)的z变换是其系统函数H(z),在MATLAB中可以应用性质求解Z变换,例如可以应用线性卷积求的Z变换.若H(z)的收敛域包含单位圆,即系统为稳定系统,即系统在单位圆上ωj ez=处盘算的是系统的频率响应.(二)、逆Z变换Z变换对于剖析和暗示离散线性时不变系统具有重要作用.但是在MATLAB中不克不及直接盘算Z变换,但是对于一些序列可以进行逆Z变换.已知序列的Z变换及其收敛域,求序列称为逆Z变换.序列的Z变换及共逆Z变换暗示如下:通常,直接盘算逆Z变换的办法有三种:围线积分法、长除法和部分分式展开法.在实际中,直接盘算围线积分比较艰苦,往往不直接盘算围线积分.由于序列的Z 变换常为有理函数,因此采取部分分式展开法比较切合实际,它是将留数定律和经常使用序列的Z 变换相联合的一种办法.设x(n)的Z 变换X(z)是有理函数,分母多项式是N 阶,分子多项式是M 阶,将X(z)展成一些简略的经常使用的部分分式之和,通过经常使用序列的Z 变换求得各部分的逆变换,再相加即得到原序列x(n).在MATLAB 中提供了函数residuez 来实现上述进程,挪用格局如下:[R ,P ,K]=residuez (B ,A )其中B 、A 分离是有理函数分子多项式的系数和分母多项式的系数,输出R 是留数列向量,P 是顶点列向量.如果分子多项式的阶数大于分母多项式的阶数,则K 返回为常数项的系数.三、实验内容与步调选做一个实验:1、.运行下面程序并显示它,验证离散时间傅立叶变换DTFT 的时移性.已知两个线性时不变的因果系统,系统函数分离为 N z z H --=1)(1,N N N za z z H ----=11)(2 分离令N=8,a=0.8,盘算并图示这两个系统的零、顶点图及幅频特性.程序:2、运行下面程序并显示它,验证离散时间傅立叶变换DTFT 的频移性.四、实验仪器设备盘算机,MATLAB软件五、实验注意事项课前预先阅读并懂得实验程序;六、实验成果clearnum1=[1 0 0 0 0 0 0 0 -1];%分子系数高阶到低阶den1=[1 0 0 0 0 0 0 0 0];subplot(2,2,1)zplane(num1, den1)grid;title('H1零顶点散布图') ;[H,w]=freqz(num1,den1,200,'whole'); %中B和A分离为离散系统的系统函数分子、分母多项式的系数向量,HF=abs(H); %返回量H则包含了离散系统频响在 0~pi规模内N个频率等分点的值(其中N为正整数)subplot(2,2,2); %w则包含了规模内N个频率等分点.plot(w,HF)title('H1幅频响应特性曲线');a=0.8;A=a^8;num2=[1 0 0 0 0 0 0 0 -1];%分子系数高阶到低阶den2=[1 0 0 0 0 0 0 0 A];subplot(2,2,3)zplane(num2, den2);grid;title('H2零顶点散布图') ;[H,w]=freqz(num2,den2,200,'whole'); %中B和A分离为离散系统的系统函数分子、分母多项式的系数向量,HF=abs(H); %返回量H则包含了离散系统频响在 0~pi规模内N个频率等分点的值(其中N为正整数)subplot(2,2,4); %w则包含了规模内N个频率等分点.plot(w,HF)title('H2幅频响应特性曲线');实验二(2)离散傅立叶变换DFT一、实验目标1.运用MATLAB盘算有限长序列的DFT和IDFT.2.运用MATLAB验证离散傅立叶变换的性质.3 .运用MATLAB盘算有限长序列的圆周卷积.二、实验原理(一)、离散傅立叶变换DFT 的界说一个有限长度的序列x(n)(0≤n<N-1), 它的 DFT X(k) 可以通过在ω轴(πω20<≤)上对)(ωj e X 平均采样得到 可以看到)(k X 也是频域上的有限长序列,长度为N.序列)(k X 称为序列x(n)的N 点DFT.N 称为DFT 变换区间长度. 通常暗示可将界说式暗示为X(k)的离散傅里叶逆变换(IDFT)为(二)、DFT 的性质1.圆周移位界说序列x(n)的m 单位的圆周移位y(n)为:(N m n x ))((+即对x(n)以N 为周期进行周期延拓的序列)(~n x 的m 点移位,)(n R N 暗示对此延拓移位后再取主值序列)1. 圆周卷积设 )()(11k X n x NDFT −−→←10-≤≤N k 则 )(1n x )()()(212k X k X n x NDFT −−→←10-≤≤N k 这里 )(1n x )(2n x 暗示)(1n x 与 )(2n x 的N 点循环卷积.2. 共轭对称性实际应用中,应用上述对称性质可以削减DFT 的运算量,提高运算效率.三、实验内容与步调:(2,3选做一个)1.结构离散傅立叶正、反变换函数的MATLAB 程序,其中dft(xn,N)为离散傅立叶正变换,idft(xn,N)为离散傅立叶反变换.2、如果)4/sin()8/sin()(ππn n n x +=是一个N=16的有限长序列,应用离散傅立叶变换函数求其16点DFT.3、如果()cos(0.82)2sin(0.43)x n n n ππ=+是一个0100n ≤≤的有限长序列,绘制()x n 及其离散傅立叶变换X (K )的幅度、相位图.四、实验仪器设备盘算机,MATLAB 软件五、实验注意事项课前预先阅读并懂得实验程序;六、实验成果Dft:程序function xk=dft(xn,N) %dftn=[0:1:N-1];k=n;WN=exp(-i*2*pi/N); %旋转因子nk=n'*k;WNnk=WN.^nk;xk=xn*WNnk;endidft :程序function xn=idft(xk,N) %idftn=[0:1:N-1];k=n;WN=exp(-j*2*pi/N);nk=n'*k; %矩阵的转制*KWNnk=WN.^(-nk);xn=xk*WNnk/N;end实验程序:选做2k=16; %序列长N=16;%dft点数n1=[0:1:15];xn1=sin(pi/8*n1/k)+sin(pi/4*n1/k); %抽样信号xk1=dft(xn1,N);subplot(1,2,1);stem(n1,xn1);xlabel('t/T');ylabel('x(n)');subplot(1,2,2);stem(n1,xk1);grid;xlabel('k');ylabel('x(k)');实验二(3)快速傅立叶变换FFT 及其应用一、实验目标1.应用MATLAB 的快速傅立叶变换来盘算信号的离散傅立叶变换.2.应用MATLAB 程序,懂得进一步离散傅立叶变换的物理意义.3.应用MATLAB 程序,懂得快速卷积算法.二、实验原理在MATLAB 中,使用函数fft 可以很容易地盘算有限长序列x(n)的离散傅立叶变换X[k].此函数有两种形式,fft(x)盘算序列x(n) 的离散傅立叶变换X(k),这里X(k)的长度与x(n)的长度相等.fft(x ,L)盘算序列x(n) 的L 点离散傅立叶变换,其中L ≥N.若L>N ,在盘算离散傅立叶变换之前,对x(n)尾部的L-N 个值进行补零.同样,离散傅立叶变换序列X(k)的离散傅立叶逆变换x(n)用函数ifft 盘算,它也有两种形式.(一)、根本序列的离散傅立叶变换盘算N 点离散傅立叶变换的一种物理说明就是,X[k]是x(n)以N 为周期的周期延拓序列的离散傅立叶级数系数~)(k X 的主值区间序列,即)()()(~k R k X k X N =.例如序列)()8cos(n R n N π,当N=16时,)()8cos(n R n N π正好是)8cos(n π的一个周期,所以)()8cos(n R n N π的周期延拓序列就是这种单一频率的正弦序列.而当N=8时,)()8cos(n R n N π正好是)8cos(n π的半个周期,)()8cos(n R n N π的周期延拓就不再是单一频率的正弦序列,而是含有丰硕的谐波成分,其离散傅立叶级数的系数与N=16时的不同很大,因此对信号进行谱剖析时,一定要截取整个周期,不然得到错误的频谱.(二)、验证N 点DFT 的物理意义假如x(n)非周期、有限长,则傅立叶变换存在,那么对)(ωj e X 在N 个等距离频率k ω=2πk/N, k=0,1,…,,N-1取样,则可得X(k).序列x(n)的N 点DFT 的物理意义是对X(ω)在[0,2π]上进行N 点的等距离采样.(三)、应用FFT 盘算序列的线性卷积直接盘算线性卷积盘算量大,并且盘算机无法断定y(n)的长度,需要盘算若干的y(n)值,若输入为无限长,就更无法盘算,其运算量随长度成级数增长.由于可以应用FFT 对DFT 进行有效的盘算,我们希望可以或许应用DFT 来盘算线性卷积.设 x(n) 和 h(n) 是长度分离为M 和N 的有限长序列, 令 L=M+N-1,界说两个长度L 的有限长序列:⎩⎨⎧-≤≤-≤≤=1,010),()('L n M M n n x n x () ⎩⎨⎧-≤≤-≤≤=1,010),()('L n N N n n h n h () 通过对x(n) 和 h(n)填补零样本值得到上面两个序列.那么:)(')()()()(n x n y n h n x n y c l ==*=)('n h ()上面的进程如下图所示:盘算线性卷积也可以直接挪用函数con 来盘算,因为MATLAB 中的计时比较粗糙,所以只有M 和N 较大的时候,才干比较两种办法的执行时间快慢.三、实验内容与步调(选做一个)1.对复正弦序列)()(8n R e n x N n j π=,应用MATLAB 程序求当N=16和N=8时的离散傅立叶变换,并显示其图形.2.已知)()(4n R n x =,ωωωj j e e X ----=11)(4, 绘制相应的幅频和相频曲线,并盘算N=8和N=16时的DFT.四、实验仪器设备盘算机,MATLAB 软件五、实验注意事项课前预先阅读并懂得实验程序;六、实验成果k1=16; %序列长N1=16;%dft 点数n1=[0:1:15];xn1=exp(j*pi/8*n1/k1); %抽样信号xk1=dft(xn1,N1);subplot(2,2,1);stem(n1,xn1);xlabel('t/T');ylabel('x(n)');subplot(2,2,2);stem(n1,xk1);grid;xlabel('k');ylabel('x(k)');k2=8; %序列长N2=8;%dft点数n2=[0:1:7];xn2=exp(j*pi/8*n2/k2); %抽样信号xk2=dft(xn2,N2);subplot(2,2,3);stem(n2,xn2);xlabel('t/T');ylabel('x(n)');subplot(2,2,4);stem(n2,xk2);grid;xlabel('k');ylabel('x(k)');实验三基于MATLAB 的IIR 数字滤波器设计一、实验目标1.进一步熟悉IIR 数字滤波器的理论知识.2.熟悉与IIR 数字滤波器设计有关的MATLAB 函数.3 .学会通过MATLAB ,应用脉冲响应不变法和双线性变换法设计IIR 数字滤波器,加深对数字滤波器的经常使用指标和设计进程的懂得.二、实验原理(一)、低通滤波器的经常使用指标:通带边沿频率:p ω,阻带边沿频率:s ω ,通带起伏:p δ,通带峰值起伏: ])[1(log 2010dB p p δα--=,阻带起伏:s δ最小阻带衰减:])[(log 2010dB s S δα-=.(二)、IIR 数字滤波器设计今朝,设计IIR 数字滤波器的通用办法是先设计相应的低通滤波器,然后再通过双线性变换法和频率变换得到所需要的数字滤波器.模仿滤波器从功效上分有低通、高通、带通及带阻四种,从类型上分有巴特沃斯滤波器、切比雪夫滤波器、椭圆滤波器以及贝塞尔滤波器等.1、应用模仿滤波器设计IIR 数字低通滤波器的步调.(1)确定命字低通滤波器的技巧指标:通带截止频率ωp 、通带衰减αp 、阻带截止频率ωs 、阻带衰减αs.(2)将数字低通滤波器的技巧指标转换成模仿低通滤波器的技巧指标.脉冲响应不变法:双线性变换法: (3)依照模仿低通滤波器的技巧指标设计模仿低通滤波器.(4)将模仿滤波器Ha(s),从s 平面转换到z 平面,得到数字低通滤波器系统函数H(z).2、下面给出与IIR 数字滤波器设计有关的MATLAB 文件.用来确定命字低通或模仿低通滤波器的阶次,其挪用格局分离是a. [N,Wn]=buttord(Wp,Ws,Rp,Rs)b. [N,Wn]=buttord(Wp,Ws,Rp,Rs,’s ’)格局a 对应数字滤波器,式中Wp,Ws 分离是通带和阻带的截止频率,实际上它们是归一化频率,其值在0-1之间,1对应π(即对π的归一化).Rp,Rs 分离是通带和阻带衰减,单位为dB.N 是求出的相应低通滤波器的阶次,Wn 是求出的3dB 频率.格局b 对应模仿滤波器,式中各个变量的寄义和格局a 相同,但Wp,Ws 及Wn 是模仿角频率,单位为rad/s.用来设计模仿低通原型(归一化)滤波器Ha(p),其挪用的格局为[z , p, k]=buttap(N)21tan()2T T ωω=ΩΩ=N是欲设计的低通原型(归一化)滤波器的阶次,z, p和k分离是设计出Ha(p)的顶点、零点及增益.(3)lp2l将模仿低通原型(归一化)滤波器Ha(p)转换为实际的低通滤波器Ha(s).(去归一化),其挪用格局为:[B,A]=lp2lp(b,a,Wn)b,a分离是模仿低通原型滤波器Ha(p)的分子、分母多项式的系数向量,其中B,A是去归一化后Ha(s) 的分子、分母多项式的系数向量, Wn为截止频率.实现双线性变换,即由模仿滤波器Ha(s)得到数字滤波器H(z).其挪用格局是: [Bz,Az]=bilinear(B,A,Fs)B,A是去归一化后Ha(s) 的分子、分母多项式的系数向量,Bz,Az是H (z) 的分子、分母多项式的系数向量, Fs是抽样频率.由脉冲响应不变法将模仿滤波器Ha(s)转换为数字滤波器H(z).其挪用格局是: [Bz,Az]= impinvar(B,A,Fs)B,A是去归一化后Ha(s) 的分子、分母多项式的系数向量,Bz,Az是H (z) 的分子、分母多项式的系数向量, Fs是抽样频率.用来直接设计巴特沃斯数字滤波器(双线性变换法),实际上它把buttord.m,buttap.m,lp2lp.m及bilinear.m等文件都包含进去,从而使设计进程更简捷,其挪用格局为: a.[B,A]=butter(N, Wn)b. [B,A]=butter(N,Wn,‘s’)格局a是设计低通数字滤波器,格局b是设计低通模仿滤波器.B,A是H (z) 的分子、分母多项式的系数向量,Wn 是截止频率.三、实验内容与步调以下选做一个1. 设计MATLAB程序,采取脉冲响应不变法设计一个巴特沃斯低通数字滤波器,其通带上限临界频率为400Hz,阻带临界频率为600Hz,抽样频率是1000Hz,在通带内的最大衰减为0.3dB, 阻带内的最小衰减为60dB,并绘出幅频特性曲线.2. 设计MATLAB程序,ππ,π]内衰减不小于40dB,并绘出幅频特性曲线.四、实验仪器设备盘算机,MATLAB软件五、实验要求依据要求自力编程设计,并依据程序运行成果写出滤波器的系统函数六、实验成果选做1:fp=400; %通带上限临界频率fs=600; %阻带临界频率Rp=0.3; %通带允许的最大衰减Rs=60; %阻带允许的最小衰减Fs=1000; %采样频率Wp=2*pi*fp; %通带截止平率Ws=2*pi*fs; %阻带截止平率%Nn=256;n=(0:100-1);%采样点数[N,Wn]=buttord(Wp,Ws,Rp,Rs,'s'); %用于盘算阶数和截止平率[b,a]=butter(N,Wn,'s'); %盘算分子向量b,分母向量aw=linspace(1,400,100)*2*pi; %起始值,终止值,元素个数H=freqs(b,a,w); % 在[0,2π]上进行采样,采样频率点由矢量w 指定figure(1);plot(w/(2*pi),20*log10(abs(H)));title('巴特沃斯模仿滤波器幅频特性');xlabel('频率/Hz');ylabel('幅度/db');%[bz,az]=impinvar(b,a,Fs); %caiyong冲击响应不变法转换为数字滤波器实验四基于MATLAB的FIR数字滤波器设计一、实验目标1.进一步熟悉FIR 数字滤波器的理论知识.2.熟悉与FIR 数字滤波器设计有关的MATLAB 函数.3.学会通过MATLAB ,应用窗函数法设计FIR 数字滤波器.二、实验原理设计FIR 滤波器实际上是要在知足线性相位的条件下,实现幅度响应的迫近.而一个FIR 滤波器若是相符线性相位,则必须知足一定的条件,即:一个FIR 滤波器若是线性相位的,则其单位冲激响应必定知足)1()(n N h n h --±= n=0,1,…,N-1h(n)是关于(N-1)/2对称(奇对称或偶对称)即,(1) h(n)是偶对称序列 (1) h(n) 是奇对称(否决称)序列 设滤波器要求的幻想频率响应为Hd(ejw) , 那么FIR 滤波器的设计问题在于——寻找一系统函数∑-=-=10)()(N n n z n h z H ,使其频率响应jwe z jw z H e H ==|)()(迫近Hd(ejw).若要求FIR 滤波器具有线性相位特性,则h(n)必须知足上节所述的对称条件.迫近的办法有三种:窗口设计法(时域迫近);频率采样法Frequency-sampling (频域迫近);最优化设计Optimum Equiripple (等波纹迫近).()()⎪⎩⎪⎨⎧-≤≤--=-=10,121N n n N h n h N α窗函数法又称傅立叶级数法,是设计FIR数字滤波器的最简略的办法.FIR数字滤波器的设计问题就是要使所设计的FIR数字滤波器的频率响应H(w)去迫近所要求的幻想滤波器的响应Hd(w).从单位采样响应序列来,就是使所设计滤波器的h(n)迫近幻想单位采样响应序列hd(n),这可以用hd(n)和一个窗函数w(n)的乘积来得到.(一)、设计原理.窗函数设计FIR数字滤波器的步调如下:(1)给定要求的频率响应函数Hd(w);(2)盘算hd(n);(3)依据过渡带宽及阻带最小衰减的要求,选定窗的性状以及窗的大小N;(4)依据所选择的适合的窗函数w(n)来修正hd(n),得到所设计的FIR数字滤波器的单位采样响应序列h (n)= hd(n) w(n),n=0,1,…,N-1(二)、函数的应用MATLAB中用fir1函数来设计具有尺度频率响应的FIR滤波器.其挪用方法: b=fir1(n,wn)——设计n阶低通FIR滤波器,返回的向量b为滤波器的系数(即h(n)的值),它的阶数为n+1;截止频率为wn(对π归一化后的值).b=fir1(n,wn,’hign’)——设计n阶高通FIR滤波器b=fir1(n,wn,’low’)——设计n阶低通FIR滤波器b=fir1(n,wn,’bandpass’)——设计n阶带通FIR滤波器b=fir1(n,wn,’stop’)——设计n阶带阻FIR滤波器b=fir1(n,wn,win)——输入参数win用来指定使用的窗函数的类型,其长度为n+1,缺省情况下,默认为汉明窗.三、实验内容与步调以下选做一个1.用矩形窗、三角窗、汉宁窗、汉明窗分离设计低通数字滤波器.信号采样频率为1000Hz,数字滤波器的截止频率为100Hz,滤波器的阶数为80.2.编写MATLAB程序,应用窗函数法设计线性相位FIR低通数字滤波器,实现对模仿信号采样落后行数字低通滤波,对模仿信号的滤波要求如下:通带截止频率:fp=2kHz;阻带截止频率:fs=3kHz; 阻带最小衰减:αs=40dB;采样频率:Fs=10kHz选择适合的窗函数及其长度,求出h(n),并画出幅频特性衰减曲线.3.编写MATLAB程序,应用窗函数法设计一线性相位FIR 数字低通滤波器,通带鸿沟频率频率0.6π,阻带鸿沟频率0.7π0, 阻带衰减αs>50dB,通带波纹不大于1dB.四、实验仪器设备盘算机,MATLAB软件五、实验注意事项依据要求自力编程设计.六、实验成果选做3clear;ππ0wd=ws-wp;%主瓣宽度N=ceil(8*pi/wd);wn=(0.6+0.7)*pi/2;b=fir1(N,wn/pi,hanning(N+1)); freqz(b,1,512);。

matlab求N点DFT,利用MATLAB實现信号DFT的计算.doc

matlab求N点DFT,利用MATLAB實现信号DFT的计算.doc

matlab求N点DFT,利⽤MATLAB實现信号DFT的计算.doc 利⽤MATLAB實现信号DFT的计算07级电信(2)班 刘坤洋 24实验⼀ 利⽤MATLAB实现信号DFT的计算⼀、实验⽬的:1、熟悉利⽤MATLAB计算信号DFT的⽅法2、掌握利⽤MATLAB实现由DFT计算线性卷积的⽅法⼆、实验设备:电脑、matlab软件三、实验内容:练习⽤matlab中提供的内部函数⽤于计算DFTfft(x),fft(x,N),ifft(x),ifft(x,N)的含义及⽤法在进⾏DFT时选取合适的时域样本点数N请举例,并编程实现题⽬:源程序: >> N=30; %数据的长度>>L=512; %DFT的点数>>f1=100; f2=120;>>fs=600; %抽样频率>>T=1/fs; %抽样间隔>>ws=2*pi*fs;>>t=(0:N-1)*T;>>f=cos(4*pi*f1*t)+cos(4*pi*f2*t);>>F=fftshift(fft(f,L));>>w=(-ws/2+(0:L-1)*ws/L)/(2*pi);>>hd=plot(w,abs(F));>>ylabel('幅度谱')>> xlabel('频率/Hz')>> title('my picture')结果图:在对信号进⾏DFT时选择hamming窗增加频率分辨率请举例,并编程实现题⽬:源程序:>> N=50; %数据的长度>>L=512; %DFT的点数>>f1=100;f2=150;>>fs=600; %抽样频率>>T=1/fs; %抽样间隔>>ws=2*pi*fs;>>t=(0:N-1)*T;>>f=cos(4*pi*f1*t)+0.15*cos(4*pi*f2*t);>>wh=(hamming(N))';>>f=f.*wh;>>F=fftshift(fft(f,L));>>w=(-ws/2+(0:L-1)*ws/L)/(2*pi);>>plot(w,abs(F));>>ylabel('幅度谱')>> xlabel('频率/Hz')>> title('my picture')>> legend('N=50')结果图:2、增加DFT点数M以显⽰更多频谱细节请举例,并编程实现题⽬:利⽤MATLAB计算16点序列x[k]的512点DFT。

实验四MATLAB在离散傅立叶变换(DFT)中的应用

实验四MATLAB在离散傅立叶变换(DFT)中的应用

MATLAB 在离散傅立叶变换(DFT)中的应用一、序列的移位和周期延拓运算。

已知)()8.0()(8n R n x n =,利用MATLAB 生成并图示序列),(),(m n x n x -和)())((8n R n x N ),())((8n R m n x N -其中为周期的延拓。

以表示8)())((,0,248n x n x N m N <<= 解:MATLAB 程序清单如下:N=24;M=8;m=3;% 设移位值为3n=0:N-1;xn=0.8.^n.*(n>=0 & n<M); % 产生序列x(n)subplot(3,1,1);stem(n,xn,'.');grid;axis([0 length(xn),0 1]);title('序列x(n)');xc=xn(mod(n,8)+1); % 产生序列x(n)的周期延拓,求余后加1是因为 % MATLAB 矢量的下标从1开始subplot(3,1,2);stem(n,xc,'.');grid;axis([0 length(xc),0 1]);title('序列x(n)的周期延拓序列');xm=[xn(m+1:M) xn(1:m)]; % 产生圆周移位序列xm=x((n+m))NRN (n)xm=[xm zeros(1,N-length(xm))];subplot(3,1,3);stem(n,xm,'.');grid;axis([0 length(xm),0 1]);title('圆周移位序列x(n+m)');二、利用MATLAB 验证N 点DFT 的物理意义。

ωωj j jw e e n x DFT e X DTFT n R n x ----===11)]([)()(),()(44其离散时间傅立叶变换已知有限长序列试绘制出)(ωj e X 幅度频谱和相位频谱,并分别计算N=8和N=16时的DFT 。

matlab实现DFT

matlab实现DFT

DFT 基于Matlab 的实现一、实验目的1.掌握DFT 函数的用法。

2. 利用DFT 进行信号检测及谱分析。

3.了解信号截取长度对谱分析的影响。

二、实验内容1.利用DFT 计算信号功率谱。

实验程序:t=0:0.001:0.6;x=sin(2*pi*50*t)+sin(2*pi*120*t)+randn(1,length(t));Y=dft(x,512);P=Y.*conj(Y)/512;f=1000*(0:255)/512;plot(f,P(1:256))2. 进行信号检测。

分析信号频谱所对应频率轴的数字频率和频率之间的关系。

模拟信号)8cos(5)4sin(*2)(t t t x ππ+=,以n t 01.0= 10-≤≤N n 进行取样,求N 点DFT 的幅值谱。

实验程序:subplot(2,2,1)N=45;n=0:N-1;t=0.01*n;q=n*2*pi/N;x=2*sin(4*pi*t)+5*cos(8*pi*t);y=dft(x,N);plot(q,abs(y));title('DFT N=45')subplot(2,2,2)N=50;n=0:N-1;t=0.01*n; q=n*2*pi/N;x=2*sin(4*pi*t)+5*cos(8*pi*t);y=dft(x,N);plot(q,abs(y));title('DFT N=50')subplot(2,2,3)N=55;n=0:N-1;t=0.01*n;q=n*2*pi/N;x=2*sin(4*pi*t)+5*cos(8*pi*t);y=dft(x,N);plot(q,abs(y));title('DFT N=55')subplot(2,2,4)N=60;n=0:N-1;t=0.01*n;q=n*2*pi/N;x=2*sin(4*pi*t)+5*cos(8*pi*t);y=dft(x,N);plot(q,abs(y));title('DFT N=60')3. 对2,进一步增加截取长度和DFT点数,如N加大到256,观察信号频谱的变化,分析产生这一变化的原因。

(完整word版)用matlab实现DFTFFT

(完整word版)用matlab实现DFTFFT

用matlab实现DFT FFT目录实验目的 (2)实验内容 (2)1.用MATLAB实现DFT (2)2.用MATLAB实现FFT,分析有限离散序列的FFT (3)3.通过分别计算时间,得出DFT与FFT的算法差异 (7)实验原理 (8)1. 离散傅里叶变换的快速算法FFT (8)2. FFT提高运算速度的原理 (9)3. 理论分析DFT与FFT算法差异 (11)实验步骤 (12)实验结果 (13)实验分析 (27)实验结论 (33)实验体会 (33)实验目的1.通过研究DFT,FFT性质,用语言实现DFT, FFT。

不使用MATLAB现有的FFT函数,自己编写具体算法。

2.掌握FFT基2时间抽选法,理解其提高减少乘法运算次数提高运算速度的原理。

3.设计实验,得出DFT和FFT算法差异的证明,如复杂度等(精度、不同长度的序列等)。

实验内容1. 用MATLAB实现DFTN点序列x(n) 的DFT为:DFT的矩阵为:根据DFT公式与矩阵展开,通过MATLAB实现DFT:2.用Matlab实现FFT编程思想及程序框图:●原位计算因为DIT-FFT与DIF-FFT的算法类似,这里我们以DIT-FFT为例。

N=2M点的FFT共进行M级运算,且每一级都由N/2个蝶形运算组成,后一级的节点数据由前一级同处一条水平线位置的节点数据产生,所以我们同样可以将后一级的节点数据储存到前一级的节点中,这样的方法叫做原位计算,它大大节省了内存资源,降低了成本,简化了运算。

●序列的倒序无论是进行DIT-FFT还是DIF-FFT都需要进行倒序,包括输入倒序与输出倒序,以一定的方式将数组进行重新排列。

倒序的方法:首先由于N=2M,我们就可以用M位二进制数来表示节点的顺序,并且按照奇偶时域抽取。

然后,如图1所示,第一次按最低位n0的0、1值分解为奇偶组,第二次按次低位n1的0、1值分解为奇偶组,以此类推。

最后,所得二进制数所对应的十进制数即为序列倒序后产生的序列。

验证dft的实验报告

验证dft的实验报告

验证dft的实验报告导言DFT(Discrete Fourier Transform)是一种将一个离散信号的时域表示转换为频域表示的数学变换方法。

本次实验旨在验证DFT的有效性和可靠性,以及了解它在信号处理领域的应用。

实验目的1. 了解DFT的原理和数学表达式;2. 熟悉DFT的运算过程;3. 验证DFT算法在信号处理中的效果。

实验步骤1. 实现DFT算法首先,我们需要实现DFT算法。

DFT将时域信号转换为频域信号,我们需要编写代码来执行这个转换过程。

以下是伪代码示例:function dft(signal):N = length(signal) 信号长度spectrum = []for k in range(N):real_part = 0imag_part = 0for n in range(N):angle = 2 * pi * k * n / Nreal_part += signal[n] * cos(angle)imag_part += signal[n] * sin(angle)spectrum[k] = complex(real_part, imag_part)return spectrum2. 生成测试信号为了验证DFT的准确性,我们需要生成一个已知频谱的测试信号。

我们可以使用一个简单的正弦函数和脉冲函数的组合作为测试信号,如下所示:signal = sin(2 * pi * f1 * t) * pulse(t, t_start, t_end)其中,`f1`是正弦函数的频率,`t`是时间,`pulse(t, t_start, t_end)`是一个单位脉冲函数。

3. 运行DFT算法将生成的测试信号输入DFT算法中,得到频域信号。

我们可以将频域信号进行绘图,观察其频谱分布。

4. 验证结果比较DFT算法得到的频谱和测试信号的已知频谱,检查它们是否吻合。

可以使用频谱图来进行对比分析。

实验结果与分析我们使用Python编程语言实现了DFT算法,并生成了一个具有已知频谱的测试信号。

基于MATLAB图像DFT的分析与实现

基于MATLAB图像DFT的分析与实现

摘要离散傅立叶变换(Discrete Fourier Transform)简称DFT,在数字信号处理和数字图像处理中应用十分广泛,它建立了离散时域和离散之间的联系。

在数字图像处理中,二维离散傅立叶被广泛的应用于图像增强、复原、编码和分类中。

本课程设计是在MATLAB软件环境下读入图像,实现图像的离散傅立叶变换(DFT),并对系数进行分析,并对图像变换后的系数的分布特点进行分析和变换后的系数进行重新排列,将低频系数移到中心位置。

关键词:DFT;MATLAB;系数分析目录1 课题描述 (1)2 设计原理 (1)2.1 离散傅立叶变换原理 (1)2.2 二维离散傅立叶变换的性质 (2)3 设计过程 (5)3.1 软件介绍 (5)3.2 设计内容 (6)3.3 设计程序 (6)3.4 程序运行结果及分析 (6)总结 (9)参考文献 (10)1 课题描述离散傅立叶变换(DFT )在数字信号处理和数字图像处理中应用十分广泛。

它建立了离散时域和离散之间的联系。

如果直接应用卷积和相关运算在时域中处理,计算量将随着取样点数的平方而增加,这使计算机的计算量大,很费时,很难达到实时处理的要求。

因此,一般可采用 DFT 方法,将输入的数字信号首先进行 DFT 变换,在频域中进行各种有效的处理,然后进行 DFT 反变换,恢复为时域信号。

这样用计算机对变换后的信号进行频域处理。

比在时域中直接处理更加方便,计算量也大大减少,提高了处理速度。

因此,DFT 在数字图像处理领域中有很大的实用价值。

离散傅立叶变换还有一个明显的优点就是具有快速算法,即快速傅立叶算法(Fast Fourier Transform),它可以大大减少计算次数,使计算量减少到只是相当于直接使用离散傅立叶变换所用的一小部分。

并且,二维离散傅立叶变换很容易从一维的概念推广得到。

在数字图像处理中,二维离散傅立叶被广泛的应用于图像增强、复原、编码和分类中。

2设计原理2.1 离散傅立叶变换原理傅立叶分析: 建立以时间为自变量的‘信号’和以频率为自变量的‘频谱函数’之间的关系。

利用软件MATLAB计算序列的DFT

利用软件MATLAB计算序列的DFT

数 字 信 号 处 理 实 验 报 告实验项目名称: 利用软件MATLAB 计算序列的DFT实验日期: 2012年10月18日 实验成绩: 实验评定标准: 1)实验结果是否正确A ( )B ( )C ( ) 2)实验结果分析A ( )B ( )C ( ) 3)实验报告是否按照规定格式A ( )B ( )C ( )一、 实验目的通过本试验,掌握一些基本而且重要的离散时间信号,熟悉基本离散时间信号的MATLAB 实现方法。

二、 实验器材PC 机一台MATLAB 软件三、 实验内容(1)利用MATLAB 计算序列x(n)=cos(n π/7)的DFT ,并画出图形。

(2)设x(n)=8n e ,n=0,1....15,求y(n)=))9(( n 16)(n R 的DFT ,并画出图形。

相关程序:(1)clear all;close all;clc;N=32;n=0:N-1;xn=cos(pi*n/7);k=0:N-1;WN=exp(-j*2*pi/N); nk=n'*k;WNnk=WN.^nk; Xk=xn*WNnk; figure(1)stem(n,xn)figure(2)stem(k,abs(Xk)); (2)clc;N=16;n=0:N-1;m=5;xn=8*exp(n);yn=xn(mod((n+m),N)+1); k=0:N-1;WN=exp(-j*2*pi/N);nk=n'*k;WNnk=WN.^nk;Xk=xn*WNnk;Yk=yn*WNnk;figure(1)stem(n,xn)figure(2)stem(k,abs(Xk));figure(3)stem(n,yn)figure(4)stem(k,abs(Yk));四、实验结果图像(1)图像(2)经过编写程序,经由MATLAB软件,做出以上图形。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
理论证明:
三、 实验内容 1、线性性质 任取长度为 N=10 的随机实序列 x1[n],x2[n],例如 x1[n]=[2 5 8 7 9 0 6 4 1 3],x2[n]=[8 4 7 10 3 12 7 9 11 0 ],和长度为 N=10 的随机复序列 x3[n], x4[n],例如 x3[n]=[3+2j 4+4j 8+3j 7+4j 6+2j 1+2j 10+3j 30+2j 16+5j 11+25j],x4[n]=[7+1j 12+4j 21+3j 13+4j 80+5j 32+3j 14+4j 18+2j 36+2j 20 +14j],采用 MATLAB 编程验证离散傅里叶变换的线性特性。 a、给出序列 x1[n]的离散傅里叶变换 X1[k],并画出其幅度谱和相位谱; b、给出序列 x2[n]的离散傅里叶变换 X2[k],并画出其幅度谱和相位谱; c、 给出序列 Z=2*X1[k]+6*x2[k],并与序列 2*x3[n]+6*x4[n]的傅里叶变换比较。
4
5
6
7
8
9
图-4-1 图 4-2 结 论 分 析 :通 过 图 序列 之 和 与 序列 DFT 相 位 谱 和 幅度 谱 的 对比 可 知 序 列 Z=2*X1[k]+6*x2[k],与序列 2*x3[n]+6*x4[n]的傅里叶变换相同,所以满足线性 关系。 3、时移性质 给出序列 x1[n]=[2 5 8 7 9 0 6 4 1 3]右移 3 位后的傅里叶变换的幅度谱 和相位谱,并和原始序列的幅度谱和相位谱相比较。 a、给出序列 x1[n]的离散傅里叶变换 X1[k],并画出其幅度谱和相位谱; b、 右移 3 位后 DFT 的幅度谱和相位谱,和原始序列的幅度谱和相位谱比较。
������−1 ������ =0 ������
������ ������ −
j2 π kn N
0 ≤ ������ ≤ ������ − 1 ������N = ������ −������ 2������ /������
(6-1)
使用常用的记号
式 6-1 可写成 1 X ������ = ������ 2、 线性性质 DFT ������������1 ������ + ������������2 ������ 理论证明:
实验四基于 MATLAB 验证 DFT 的性质
学院:信息学院专业:通信工程姓名:马正智学号:20111910119
一、 实验目的 1、 验证离散傅里叶变换线性性质 2、 验证离散傅里叶变换时移性质 二、 实验原理 1、 DFT 的定义: 时域中的N点序列x ������ 的离散傅里叶变换(DFT)定义为 X ������ =
原序列 10 5 0 10 5 0
变化序列
0
5 原幅度谱
10
0
5 变化幅度谱
10
50
50
0
0
5 原相位谱
10
0
0
5 变化相位谱
10
5 0 -5
5 0 -5
0
5
10
0
5
10
图 4-3 结论分析:通过图 4-3 对比可知原序列和循环移位后序列幅度谱相同,但相位谱 不同,则离散傅里叶变换的时移性质正确。 四、 实验总结 1、 熟悉掌握离散傅里叶变换的线性性质; 2、 熟悉掌握离散傅里叶变换的时移性质; 3、 掌握理论和 MATLAB 的验证 DFT 的性质。
������−1 ������������ ������ ������ ������������ ������ =0
0 ≤ ������ ≤ ������ − 1
= ������������1 ������ + ������������2 (������)
3、 时移性质
DFT[ x(n m)] W km X (k ) DFT[ x(n m)] W km X (k )
X1的 幅 度 谱 60 4 2 0 20 -2 -4 X1的 相 位 谱
400 300 200 100 0 幅度谱
40
0
0
5 X2的 幅 度 谱
10
0
5 X2的 相 位 谱
10
0
1
2
3
4 相位谱
5
6
7
8
9
80 60 40 20 0
4 2 0 -2 -4
4 0 -2 -4
0
5
10
0
5
10
0
1
2
3
相关文档
最新文档