数字信号处理实验指导报告
数字信号处理实验报告 3
数字信号处理实验报告姓名:班级:通信学号:实验名称:频域抽样定理验证实验类型:验证试验指导教师:实习日期:2013.频域采样定理验证实验一. 实验目的:1. 加深对离散序列频域抽样定理的理解2.了解由频谱通过IFFT 计算连续时间信号的方法3.掌握用MATLAB 语言进行频域抽样与恢复时程序的编写方法 4、用MATLAB 语言将X(k)恢复为X(z)及X(e jw )。
二. 实验原理:1、1、频域采样定理: 如果序列x(n)的长度为M ,频域抽样点数为N ,则只有当频域采样点数N ≥M 时,才有x N (n)=IDFT[X(k)]=x(n),即可由频域采样X(k)无失真的恢复原序列 x(n)。
2、用X(k)表示X(z)的内插公式:∑-=-----=10111)(1)(N k kNNzWz k X Nz X内插函数: zWzkNNN z 1k111)(-----=ϕ频域内插公式:∑-=-=10)2()()(N K j k Nk X e X πωϕω频域内插函数:e N j N N )21()2sin()2sin(1)(--=ωωωωϕ三. 实验任务与步骤:实验一:长度为26的三角形序列x(n)如图(b)所示,编写MATLAB 程序验证频域抽样定理。
实验二:已知一个时间序列的频谱为X(e jw )=2+4e -jw +6e -j2w +4e -j3w +2e -j4w分别取频域抽样点数N为3、5和10,用IPPT计算并求出其时间序列x(n),用图形显示各时间序列。
由此讨论原时域信号不失真地由频域抽样恢复的条件。
实验三:由X32(k)恢复X(z)和X(e jw)。
四.实验结论与分析:实验一:源程序:M=26;N=32;n=0:M; %产生M长三角波序列x(n)xa=0:floor(M/2);xb= ceil(M/2)-1:-1:0; xn=[xa,xb];Xk=fft(xn,512); %1024点FFT[x(n)], 用于近似序列x(n)的TFX32k=fft(xn,32); %32点FFT[x(n)]x32n=ifft(X32k); %32点IFFT[X32(k)]得到x32(n)X16k=X32k(1:2:N); %隔点抽取X32k得到X16(K)x16n=ifft(X16k,N/2); %16点IFFT[X16(k)]得到x16(n)subplot(3,2,2);stem(n,xn,'.');box ontitle('(b) 三角波序列x(n)');xlabel('n');ylabel('x(n)');axis([0,32,0,20])k=0:511;wk=2*k/512;subplot(3,2,1);plot(wk,abs(Xk));title('(a)FT[x(n)]');xlabel('\omega/\pi');ylabel('|X(e^j^\omega)|');axis([0,1,0,200])k=0:N/2-1;subplot(3,2,3);stem(k,abs(X16k),'.');box ontitle('(c) 16点频域');xlabel('k');ylabel('|X_1_6(k)|');axis([0,8,0,200])n1=0:N/2-1;subplot(3,2,4);stem(n1,x16n,'.');box ontitle('(d) 16点IDFT[X_1_6(k)]');xlabel('n');ylabel('x_1_6(n)');axis([0,32,0,20])k=0:N-1;subplot(3,2,5);stem(k,abs(X32k),'.');box ontitle('(e) 32点频域采样');xlabel('k');ylabel('|X_3_2(k)|');axis([0,16,0,200])n1=0:N-1;subplot(3,2,6);stem(n1,x32n,'.');box ontitle('(f) 32点IDFT[X_3_2(k)]');xlabel('n');ylabel('x_3_2(n)');axis([0,32,0,20])结果如下所示:实验一分析:序列x(n)的长度M=26,由图中可以看出,当采样点数N=16<M时,x16(n)确实等于原三角序列x(n)以16为周期的周期延拓序列的主值序列。
数字信号处理实验报告
实验一 信号、系统及系统响应一、实验目的1、熟悉理想采样的性质,了解信号采样前后的频谱变化,加深对时域采样定理的理解。
2、熟悉离散信号和系统的时域特性。
3、熟悉线性卷积的计算编程方法:利用卷积的方法,观察、分析系统响应的时域特性。
4、掌握序列傅里叶变换的计算机实现方法,利用序列的傅里叶变换对离散信号、系统及其系统响应进行频域分析。
二、 实验原理1.理想采样序列:对信号x a (t)=A e −αt sin(Ω0t )u(t)进行理想采样,可以得到一个理想的采样信号序列x a (t)=A e −αt sin(Ω0nT ),0≤n ≤50,其中A 为幅度因子,α是衰减因子,Ω0是频率,T 是采样周期。
2.对一个连续时间信号x a (t)进行理想采样可以表示为该信号与一个周期冲激脉冲的乘积,即x ̂a (t)= x a (t)M(t),其中x ̂a (t)是连续信号x a (t)的理想采样;M(t)是周期冲激M(t)=∑δ+∞−∞(t-nT)=1T ∑e jm Ωs t +∞−∞,其中T 为采样周期,Ωs =2π/T 是采样角频率。
信号理想采样的傅里叶变换为X ̂a (j Ω)=1T ∑X a +∞−∞[j(Ω−k Ωs )],由此式可知:信号理想采样后的频谱是原信号频谱的周期延拓,其延拓周期为Ωs =2π/T 。
根据时域采样定理,如果原信号是带限信号,且采样频率高于原信号最高频率分量的2倍,则采样以后不会发生频率混叠现象。
三、简明步骤产生理想采样信号序列x a (n),使A=444.128,α=50√2π,Ω0=50√2π。
(1) 首先选用采样频率为1000HZ ,T=1/1000,观察所得理想采样信号的幅频特性,在折叠频率以内和给定的理想幅频特性无明显差异,并做记录;(2) 改变采样频率为300HZ ,T=1/300,观察所得到的频谱特性曲线的变化,并做记录;(3) 进一步减小采样频率为200HZ ,T=1/200,观察频谱混淆现象是否明显存在,说明原因,并记录这时候的幅频特性曲线。
数字信号处理实验四报告
实验4 IIR滤波器设计
一、实验目的
1、掌握双线性变换法及脉冲相应不变法设计IIR数字滤波器的具体设计方法及其原理,熟悉用双线
性变换法及脉冲响应不变法设计低通、高通与带通IIR 数字滤波器的计算机编程。
2、观察双线性变换及脉冲响应不变法设计的滤波器的频域特性,了解双线性变换法及脉冲响应不变
法的特点。
3、熟悉巴特沃思滤波器、切比雪夫滤波器与椭圆滤波器的频率特性。
二、实验内容
1)fc=0、3kHz,δ=0、8dB,fr=0、2kHz,At=20dB,T=1ms;设计一切比雪夫高通滤波器,观察其通带损耗与阻带衰减就是否满足要求。
2)fc=0、2kHz,δ=1dB,fr=0、3kHz,At=25dB,T=1ms;分别用脉冲响应不变法及双线性变换法设计一
巴特沃思数字低通滤波器,观察所设计数字滤波器的幅频特性曲线,记录带宽与衰减量,检查就是否满足要求。
比较这两种方法的优缺点。
3)利用双线性变换法分别设计满足下列指标的巴特沃思型、切比雪夫型与椭圆型数字低通滤波器,并作图验证设计结果: fc =1、2kHz,δ≤0、5dB,fr =2kHz,,At≥40dB,fs =8kHz。
比较这三种滤波器的阶数。
(4) 分别用脉冲响应不变法与双线性变换法设计一巴特沃思型数字带通滤波器,已知fs=30kHz,其等效的模拟滤波器指标为δ<3dB,2kHz<f≤3kHz;At≥5dB, f ≥6kHz;At≥20dB,f≤1、5kHz 。
由上图可以瞧出,用脉冲响应不变法由于滤波器的混叠作用在过度带与阻带都衰减的较双线性变换法慢。
数字信号处理实验报告全.doc
数字信号处理实验报告全实验一、离散时间系统及离散卷积1、单位脉冲响应源程序function pr1 定义函数pr1 a[1,-1,0.9]; 定义差分方程yn-yn-10.9yn-2xn b1; ximpseq0,-40,140; 调用impseq函数n-40140; 定义n从-40 到140 hfilterb,a,x; 调用函数给纵座标赋值figure1 绘图figure 1 冲激响应stemn,h; 在图中绘出冲激title 冲激响应; 定义标题为冲激响应xlabel n ; 绘图横座标为n ylabel hn ; 绘图纵座标为hn figure2 绘图figure 2 [z,p,g]tf2zpb,a; 绘出零极点图zplanez,p function [x,n]impseqn0,n1,n2声明impseq函数n[n1n2]; x[n-n00]; 结果Figure 1 Figure 2 2、离散系统的幅频、相频的分析源程序function pr2 b[0.0181,0.0543,0.0543,0.0181]; a[1.000,-1.76,1.1829,-0.2781]; m0lengthb-1; m从0 到 3 l0lengtha-1; l从0 到3 K5000; k1K; wpi*k/K; 角频率w Hb*exp-j*m *w./a*exp-j*l *w;对系统函数的定义magHabsH; magH为幅度angHangleH; angH为相位figure1 subplot2,1,1; 在同一窗口的上半部分绘图plotw/pi,magH; 绘制wpi-magH 的图形grid; axis[0,1,0,1]; 限制横纵座标从0到1 xlabel wpi ; x座标为wpi ylabel |H| ; y座标为angleH title 幅度,相位响应; 图的标题为幅度,相位响应subplot2,1,2; 在同一窗口的下半部分绘图plotw/pi,angH; 绘制wpi-angH的图形grid;为座标添加名称xlabel wpi ; x座标为wpi ylabel angleH ; y 座标为angleH 结果3、卷积计算源程序function pr3 n-550; 声明n从-5到50 u1stepseq0,-5,50; 调用stepseq函数声用明u1un u2stepseq10,-5,50; 调用stepseq函数声用明u2un-10 输入xn和冲激响应hn xu1-u2; xnun-un-10 h0.9.n.*u1; hn0.9n*un figure1 subplot3,1,1; 绘制第一个子图stemn,x; 绘制图中的冲激axis[-5,50,0,2]; 限定横纵座标的范围title 输入序列; 规定标题为输入序列xlabel n ; 横轴为n ylabel xn ; 纵轴为xn subplot3,1,2; 绘制第二个子图stemn,h; 绘制图中的冲激axis[-5,50,0,2]; 限定横纵座标的范围title 冲激响应序列; 规定标题为冲激响应序列xlabel n ; 横轴为n ylabel hn ; 纵轴为hn 输出响应[y,ny]conv_mx,n,h,n; 调用conv_m函数subplot3,1,3; 绘制第三个子图stemny,y; axis[-5,50,0,8]; title 输出响应; 规定标题为输出响应xlabel n ; ylabel yn ; 纵轴为yn stepseq.m子程序实现当nn0时xn的值为1 function [x,n]stepseqn0,n1,n2 nn1n2; x[n-n00]; con_m的子程序实现卷积的计算function [y,ny]conv_mx,nx,h,nh nybnx1nh1; nyenxlengthxnhlengthh; ny[nybnye]; yconvx,h; 结果实验二、离散傅立叶变换与快速傅立叶变换1、离散傅立叶变换(DFT)源程序function pr4 F50; N64; T0.000625; n1N; xcos2*pi*F*n*T; xncospi*n/16 subplot2,1,1; 绘制第一个子图xn stemn,x; 绘制冲激title xn ; 标题为xn xlabel n ; 横座标为n Xdftx,N; 调用dft函数计算xn的傅里叶变换magXabsX; 取变换的幅值subplot2,1,2; 绘制第二个子图DFT|X| stemn,X; title DFT|X| ; xlabel fpi ; 横座标为fpi dft的子程序实现离散傅里叶变换function [Xk]dftxn,N n0N-1; k0N-1; WNexp-j*2*pi/N; nkn *k; WNnkWN.nk; Xkxn*WNnk; 结果F50,N64,T0.000625时的波形F50,N32,T0.000625时的波形2、快速傅立叶变换(FFT)源程序function pr5 F50;N64;T0.000625; n1N; xcos2*pi*F*n*T; xncospi*n/16 subplot2,1,1;plotn,x; title xn ;xlabel n ; 在第一个子窗中绘图xn Xfftx;magXabsX; subplot2,1,2;plotn,X; title DTFT|X| ;xlabel fpi ; 在第二个子图中绘图xn的快速傅里叶变换结果3、卷积的快速算法源程序function pr6 n015; x1.n; h4/5.n; x16320; h16320; 到此xn1, n015; xn0,n1632 hn4/5n, n015; hn0,n1632 subplot3,1,1; stemx; title xn ; axis[1,32,0,1.5]; 在第一个子窗绘图xn横轴从1到32,纵轴从0到1.5 subplot3,1,2; stemh; title hn ; axis[1,32,0,1.5]; 在第二个子窗绘图hn横轴从1到32,纵轴从0到1.5 Xfftx; Xn为xn的快速傅里叶变换Hffth; Hn为hn的快速傅里叶变换YX.*H; YnXn*Hn Yconvx,h; yifftY; yn为Yn的傅里叶反变换subplot3,1,3 在第三个子窗绘图yn横轴从1到32,纵轴从0到6 stemabsy; title ynxn*hn ; axis[1,32,0,6]; 结果实验三、IIR数字滤波器设计源程序function pr7 wp0.2*pi;ws0.3*pi; Rp1; As15; T1; Fs1/T; OmegaP2/T*tanwp/2; OmegaPw2*tan0.1*pi OmegaS2/T*tanws/2; OmegaSw2*tan0.15*pi epsqrt10Rp/10-1; Ripplesqrt1/1ep.2; Attn1/10As/20;Nceillog1010Rp/10-1/10As/10-1/2*log10OmegaP/OmegaS; OmegaCOmegaP/10.Rp/10-1.1/2*N; [cs,ds]u_buttapN,OmegaC; [b,a]bilinearcs,ds,Fs; [mag,db,pha,w]freqz_mb,a; subplot3,1,1; 在第一个子窗绘制幅度响应的图形plotw/pi,mag; title 幅度响应; xlabel wpi ; ylabel H ; axis[0,1,0,1.1]; setgca, XTickmode , manual , XTick ,[0,0.2,0.35,1.1]; setgca, YTickmode , manual , YTick ,[0,Attn,Ripple,1]; grid; subplot3,1,2; 在第二个子窗以分贝为单位绘制幅度响应的图形plotw/pi,db; title 幅度响应dB ; xlabel wpi ; ylabel H ; axis[0,1,-40,5]; setgca, XTickmode , manual , XTick ,[0,0.2,0.35,1.1]; setgca, YTickmode , manual , YTick ,[-50,-15,-1,0]; grid; subplot3,1,3; 在第三个子窗绘制相位响应的图形plotw/pi,pha; title 相位响应; xlabel wpi ; ylabel pi unit ; axis[0,1,0,1.1]; setgca, XTickmode , manual , XTick ,[0,0.2,0.35,1.1]; setgca, YTickmode , manual , YTick ,[-1,0,1]; grid; function [b,a]u_buttapN,OmegaC [z,p,k]buttapN; pp*OmegaC; kk*OmegaC.N; Brealpolyz; b0k; bk*B; arealpolyp; function [mag,db,pha,w]freqz_mb,a[H,w]freqzb,a,1000, whole ; HH1501 ; ww1501 ; magabsH; db20*log10mageps/maxmag; phaangleH; 结果实验四、FIR数字滤波器的设计源程序function pr8 wp0.2*pi; ws0.3*pi; tr_widthws-wp; Mceil6.6*pi/tr_width1; n0M-1; wcwswp/2; alphaM-1/2; mn-alphaeps; hdsinwc*m./pi*m; w_hamhammingM ; hhd.*w_ham; [mag,db,pha,w]freqz_mh,[1]; delta_w2*pi/1000; Rp-mindb1wp/delta_w1; As-roundmaxdbws/delta_w1501; subplot2,2,1; stemn,hd; title 理想冲激响应; axis[0,M-1,-0.1,0.3]; ylabel hdn ; subplot2,2,2; stemn,h; title 实际冲激响应; axis[0,M-1,-0.1,0.3]; ylabel hn ; subplot2,2,3; plotw/pi,pha; title 滤波器相位响应; axis[0,1,-pi,pi]; ylabel pha ; setgca, XTickmode , manual , XTick ,[0,0.2,0.3,1.1]; setgca, YTickmode , manual , YTick ,[-pi,0,pi]; grid; subplot2,2,4; plotw/pi,db; title 滤波器幅度响应; axis[0,1,-100,10]; ylabel Hdb ; setgca, XTickmode , manual , XTick ,[0,0.2,0.3,1.1]; setgca, YTickmode , manual , YTick ,[-50,-15,0]; function [mag,db,pha,w]freqz_mb,a [H,w]freqzb,a,1000, whole ; HH1501 ; ww1501 ; magabsH; db20*log10mageps/maxmag; phaangleH; 结果。
数字信号处理实验指导书
《数字信号处理》实验指导书信息与机电工程学院实验中心2017-11-20实验一 常见离散信号的MATLAB 产生和图形显示一、实验目的:加深对常用离散信号的理解; 二、实验原理:1、基础知识:R1.1 单位样本序列10[]0n n n δ=⎧=⎨≠⎩如果()n δ在时间轴上延迟了k 个单位,得到()n k δ-,即:1[]0n k n k n kδ=⎧-=⎨≠⎩R1.2 单位阶跃序列10[]0n u n n ≥⎧=⎨<⎩ R1.3 指数序列[]n x n A α=,其中()00j e σωα+=,j A A e φ=,则前式化为()000000[]cos()sin()n j n n n x n A eA e n j A e n σωφσσωφωφ++==+++R1.4 正弦序列0[]cos()x n A n ωφ=+,其中A ,0ω,φ是实数,分别称为正弦序列的振幅、角频率和初始相位。
00/2f ωπ=称为频率。
2、用到的MATLAB 命令 运算符和特殊符号 : . + -* / .^ ; %基本矩阵和矩阵控制 i ones pirand randnzeros基本函数 cos sin exp imag real二维图形 axis gird legendplotstem title xlabel ylabelstairs 通用图形函数 clf subplot三、实验内容及要求:编制程序产生信号,并绘出其图形。
例1.1单位样本和单位阶跃序列% 程序 P1.1% 一个单位样本序列的产生clf;% 产生一个从-10到20的向量n = -10:20;% 产生单位样本序列u = [zeros(1,10) 1 zeros(1,20)];% 绘制单位样本序列stem(n,u);xlabel('时间序号 n');ylabel('振幅');title('单位样本序列');axis([-10 20 0 1.2]);习题:Q1.1 运行程序P1.1,以产生单位样本序列u[n]并记录它。
《数字信号处理》实验指导书(完整)
《数字信号处理》实验指导书通信教研室安阳工学院二零零九年三月第1章 系统响应及系统稳定性1.1 实验目的● 学会运用MATLAB 求解离散时间系统的零状态响应;● 学会运用MATLAB 求解离散时间系统的单位取样响应;● 学会运用MATLAB 求解离散时间系统的卷积和。
1.2 实验原理及实例分析1.2.1 离散时间系统的响应离散时间LTI 系统可用线性常系数差分方程来描述,即∑∑==-=-Mj jN i i j n x b i n y a 00)()( (1-1) 其中,i a (0=i ,1,…,N )和j b (0=j ,1,…,M )为实常数。
MATLAB 中函数filter 可对式(13-1)的差分方程在指定时间范围内的输入序列所产生的响应进行求解。
函数filter 的语句格式为y=filter(b,a,x)其中,x 为输入的离散序列;y 为输出的离散序列;y 的长度与x 的长度一样;b 与a 分别为差分方程右端与左端的系数向量。
【实例1-1】 已知某LTI 系统的差分方程为)1(2)()2(2)1(4)(3-+=-+--n x n x n y n y n y试用MATLAB 命令绘出当激励信号为)()2/1()(n u n x n=时,该系统的零状态响应。
解:MATLAB 源程序为>>a=[3 -4 2];>>b=[1 2];>>n=0:30;>>x=(1/2).^n;>>y=filter(b,a,x);>>stem(n,y,'fill'),grid on>>xlabel('n'),title('系统响应y(n)')程序运行结果如图1-1所示。
1.2.2 离散时间系统的单位取样响应系统的单位取样响应定义为系统在)(n 激励下系统的零状态响应,用)(n h 表示。
数字信号处理实验报告完整版[5篇模版]
数字信号处理实验报告完整版[5篇模版]第一篇:数字信号处理实验报告完整版实验 1利用 T DFT 分析信号频谱一、实验目的1.加深对 DFT 原理的理解。
2.应用 DFT 分析信号的频谱。
3.深刻理解利用DFT 分析信号频谱的原理,分析实现过程中出现的现象及解决方法。
二、实验设备与环境计算机、MATLAB 软件环境三、实验基础理论T 1.DFT 与与 T DTFT 的关系有限长序列的离散时间傅里叶变换在频率区间的N 个等间隔分布的点上的 N 个取样值可以由下式表示:212 /0()|()()0 1Nj knjNk NkX e x n e X k k Nπωωπ--====≤≤-∑由上式可知,序列的 N 点 DFT ,实际上就是序列的 DTFT 在 N 个等间隔频率点上样本。
2.利用 T DFT 求求 DTFT方法 1 1:由恢复出的方法如下:由图 2.1 所示流程可知:101()()()Nj j n kn j nNn n kX e x n e X k W eNωωω∞∞----=-∞=-∞=⎡⎤==⎢⎥⎣⎦∑∑∑由上式可以得到:IDFT DTFT第二篇:数字信号处理实验报告JIANGSUUNIVERSITY OF TECHNOLOGY数字信号处理实验报告学院名称:电气信息工程学院专业:班级:姓名:学号:指导老师:张维玺(教授)2013年12月20日实验一离散时间信号的产生一、实验目的数字信号处理系统中的信号都是以离散时间形态存在的,所以对离散时间信号的研究是数字信号的基本所在。
而要研究离散时间信号,首先需要产生出各种离散时间信号。
使用MATLAB软件可以很方便地产生各种常见的离散时间信号,而且它还具有强大绘图功能,便于用户直观地处理输出结果。
通过本实验,学生将学习如何用MATLAB产生一些常见的离散时间信号,实现信号的卷积运算,并通过MATLAB中的绘图工具对产生的信号进行观察,加深对常用离散信号和信号卷积和运算的理解。
数字信号处理实验报告
数字信号处理实验报告实验一 信号的产生及傅立叶分析(设计性)一 实验目的1 学会利用计算机仿真信号。
2 理解信号采样思想。
3学会信号的频谱分析方法。
二 实验原理奈奎斯特抽样定理:要想抽样后能够不失真的还原出原信号,则抽样频率必须大于两倍信号谱的最高频率。
离散傅立叶变换(DFT ): 正变换反变换)(n x 和)(k X 都是点数为N 的有限长序列。
实质上有限长序列都是作为周期序列的一个周期来表示的,都隐含有周期性意义。
三 实验内容1 几种常用序列(如正弦、矩形、指数序列等)的产生。
1.用stem 函数来画出序列的波形,通过改变N 和s 得值来改变时间长度、抽样频率 N=500;k=0:N; s=0.03;X=5*sin(s*pi*k);plot(k,X,k,zeros(1,N+1));Xlabel('k'); Ylabel('X[k]'); title('余弦序列');10)()]([)(1-≤≤==∑--=N k Wn x n x DFT k X N n nk N10)(1)]([)(1-≤≤==∑--=-N n Wk X Nk X IDFT n x N k nk N2.指数序列 clear ;clc%c :指数序列的幅度 %a :指数序列的底数%k1:绘制序列的起始序号 %k2:绘制序列的终止序号c=1;a=0.75;k1=0;k2=20;k=k1:k2; x=c*(a.^k);stem(k,x);%'filled'Xlabel('k'); Ylabel('x');title('Ö¸ÊýÐòÁÐ');3各种序列t=0:0.01:1;k=1:200;x1=0.1*exp(-2*t); %指数序列 x2=2*cos(2*pi*4*t); %余弦序列 x3=[ones(1,10) zeros(1,90) ones(1,10) zeros(1,90)]; subplot(3,1,1); plot(t,x1); title('指数序列'); subplot(3,1,2); plot(t,x2); title('余弦序列'); subplot(3,1,3); plot(k,x3); title('矩形序列');kX [k ]kx指数信号余弦信号矩形信号4 编程实现序列的离散傅里叶变换(DFT),输入x(n),输出X(k)并且对于不同序列(如矩形序列等)做DFT.clear; clck=0:31; x1=2*((0.75).^k);subplot 321; stem(k,x1); title('指数序列');y1=fft(x1,32);subplot 322; stem(k,y1); title('指数序列DFT');k=0:31; x2=sin(k);subplot 323; stem(k,x2); title('正弦序列Sin(k)');y2=fft(x2,32);subplot 324; stem(k,y2); title('正弦序列DFT');x3=[ones(1,8) zeros(1,8) ones(1,8) zeros(1,8)];subplot 325; stem(k,x3); title('矩形序列');y3=fft(x3,32);subplot 326; stem(k,y3); title('矩形序列DFT');指数序列指数序列DFT正弦序列Sin(k)010203040正弦序列DFT矩形序列矩形序列DFT实验二 快速傅立叶变换FFT 及频谱分析(设计性)一 实验目的1 进一步加深对DFT 算法原理和基本性质的理解2 熟悉FFT 算法原理和FFT 的子程序应用3 学习用FFT 对连续时间信号进行频谱分析的方法,了解可能出现的分析误差及原因二 实验原理(参考P187,P189)FFT 只是DFT 的一种快速算法,利用FFT 可减少运算量,提高速度。
数字信号处理实验报告(实验三)
实验三 用双线性变换法设计IIR 数字滤波器1. 实验目的(1) 熟悉用双线性变换法设计IIR 数字滤波器的原理与方法。
(2) 掌握数字滤波器的计算机仿真方法。
(3) 通过观察对实际心电图信号的滤波作用, 获得数字滤波的感性知识。
2. 实验内容(1) 用双线性变换法设计一个巴特沃斯低通IIR 数字滤波器。
设计指标参数为:在通带内频率低于0.2π时,最大衰减小于1dB ;在阻带内[0.3π, π] 频率区间上,最小衰减大于15dB 。
(2) 以 0.02π为采样间隔, 打印出数字滤波器在频率区间[0, π/2]上的幅频响应特性曲线。
(3) 用所设计的滤波器对实际心电图信号采样序列(在本实验后面给出)进行仿真滤波处理,并分别打印出滤波前后的心电图信号波形图, 观察总结滤波作用与效果。
3.实验原理为了克服用脉冲响应不变法产生频谱混叠现象,可以采用非线性频率压缩方法(正切变换),从s 平面映射到s1平面,再从s1平面映射到z 平面,即实现了双线性变换。
4. 实验步骤(1) 复习有关巴特沃斯模拟滤波器设计和用双线性变换法设计IIR 数字滤波器的内容, 按照例 6.4.2, 用双线性变换法设计数字滤波器系统函数H(z)。
例 6.4.2 中已求出满足本实验要求的数字滤波器系统函数:(2-1)161212120.0007378(1)()(1 1.2680.705)(1 1.01060.3583)(10.9040.215)z H z zz zz z z -------+=-+-+-+31()k K H z ==∏(2-2)A=0.09036B1=1.2686, C1=-0.7051 B2=1.0106, C2=-0.3583 B3=0.9044, C3=-0.2155由(2-1)式和(2-2)式可见,滤波器H(z)由三个二阶滤波器H1(z),H2(z)和H3(z)级联组成,如图 2-1 所示。
(2) 编写滤波器仿真程序,计算H(z)对心电图信号采样序列x(n)的响应序列y(n)。
硕士信号处理实验报告(3篇)
第1篇一、实验背景随着信息技术的飞速发展,数字信号处理(DSP)技术已成为通信、图像处理、语音识别等领域的重要工具。
本实验旨在通过一系列实验,加深对数字信号处理基本原理和方法的理解,提高实际应用能力。
二、实验目的1. 理解数字信号处理的基本概念和原理。
2. 掌握常用信号处理算法的MATLAB实现。
3. 培养分析和解决实际问题的能力。
三、实验内容本实验共分为五个部分,具体如下:1. 离散时间信号的基本操作(1)实验目的:熟悉离散时间信号的基本操作,如加法、减法、乘法、除法、延时、翻转等。
(2)实验步骤:- 使用MATLAB生成两个离散时间信号。
- 对信号进行基本操作,如加法、减法、乘法、除法、延时、翻转等。
- 观察并分析操作结果。
2. 离散时间系统的时域分析(1)实验目的:掌握离散时间系统的时域分析方法,如单位脉冲响应、零状态响应、零输入响应等。
(2)实验步骤:- 使用MATLAB设计一个离散时间系统。
- 计算系统的单位脉冲响应、零状态响应和零输入响应。
- 分析系统特性。
(1)实验目的:掌握离散时间信号的频域分析方法,如快速傅里叶变换(FFT)、离散傅里叶变换(DFT)等。
(2)实验步骤:- 使用MATLAB生成一个离散时间信号。
- 对信号进行FFT和DFT变换。
- 分析信号频谱。
4. 数字滤波器的设计与实现(1)实验目的:掌握数字滤波器的设计与实现方法,如巴特沃斯滤波器、切比雪夫滤波器、椭圆滤波器等。
(2)实验步骤:- 使用MATLAB设计一个低通滤波器。
- 使用窗函数法实现滤波器。
- 对滤波器进行性能分析。
5. 信号处理在实际应用中的案例分析(1)实验目的:了解信号处理在实际应用中的案例分析,如语音信号处理、图像处理等。
(2)实验步骤:- 选择一个信号处理应用案例。
- 分析案例中使用的信号处理方法。
- 总结案例中的经验和教训。
四、实验结果与分析1. 离散时间信号的基本操作实验结果表明,离散时间信号的基本操作简单易懂,通过MATLAB可以实现各种操作,方便快捷。
数字信号处理实验报告_完整版
实验1 利用DFT 分析信号频谱一、实验目的1.加深对DFT 原理的理解。
2.应用DFT 分析信号的频谱。
3.深刻理解利用DFT 分析信号频谱的原理,分析实现过程中出现的现象及解决方法。
二、实验设备与环境 计算机、MATLAB 软件环境 三、实验基础理论1.DFT 与DTFT 的关系有限长序列 的离散时间傅里叶变换 在频率区间 的N 个等间隔分布的点 上的N 个取样值可以由下式表示:212/0()|()()01N jkn j Nk N k X e x n eX k k N πωωπ--====≤≤-∑由上式可知,序列 的N 点DFT ,实际上就是 序列的DTFT 在N 个等间隔频率点 上样本 。
2.利用DFT 求DTFT方法1:由恢复出的方法如下:由图2.1所示流程可知:101()()()N j j nkn j nN n n k X e x n eX k W e N ωωω∞∞----=-∞=-∞=⎡⎤==⎢⎥⎣⎦∑∑∑ 由上式可以得到:IDFTDTFT( )12()()()Nj k kX e X k Nωπφω==-∑ 其中为内插函数12sin(/2)()sin(/2)N j N x eN ωωφω--= 方法2:实际在MATLAB 计算中,上述插值运算不见得是最好的办法。
由于DFT 是DTFT 的取样值,其相邻两个频率样本点的间距为2π/N ,所以如果我们增加数据的长度N ,使得到的DFT 谱线就更加精细,其包络就越接近DTFT 的结果,这样就可以利用DFT 计算DTFT 。
如果没有更多的数据,可以通过补零来增加数据长度。
3.利用DFT 分析连续信号的频谱采用计算机分析连续时间信号的频谱,第一步就是把连续信号离散化,这里需要进行两个操作:一是采样,二是截断。
对于连续时间非周期信号,按采样间隔T 进行采样,阶段长度M ,那么:1()()()M j tj nT a a a n X j x t edt T x nT e ∞--Ω-Ω=-∞Ω==∑⎰对进行N 点频域采样,得到2120()|()()M jkn Na a M kn NTX j T x nT eTX k ππ--Ω==Ω==∑因此,可以将利用DFT 分析连续非周期信号频谱的步骤归纳如下: (1)确定时域采样间隔T ,得到离散序列(2)确定截取长度M ,得到M 点离散序列,这里为窗函数。
数字信号处理实验报告完整版
实验1 利用DFT 分析信号频谱一、实验目的1.加深对DFT 原理的理解。
2.应用DFT 分析信号的频谱。
3.深刻理解利用DFT 分析信号频谱的原理,分析实现过程中出现的现象及解决方法。
二、实验设备与环境 计算机、MATLAB 软件环境 三、实验基础理论1.DFT 与DTFT 的关系 有限长序列的离散时间傅里叶变换在频率区间的N 个等间隔分布的点上的N 个取样值可以由下式表示:212/0()|()()01N jkn j Nk N k X e x n eX k k N πωωπ--====≤≤-∑由上式可知,序列的N 点DFT,实际上就是序列的DTFT 在N 个等间隔频率点上样本。
2.利用DFT 求DTFT方法1:由恢复出的方法如下:由图2.1所示流程可知:101()()()N j j nkn j nN n n k X e x n eX k W e N ωωω∞∞----=-∞=-∞=⎡⎤==⎢⎥⎣⎦∑∑∑ 由上式可以得到:IDFTDTFTX (ejω)12()()()Nj k kX e X k Nωπφω==-∑ 其中为内插函数12sin(/2)()sin(/2)N j N x e N ωωφω--=方法2:实际在MATLAB 计算中,上述插值运算不见得是最好的办法。
由于DFT 是DTFT 的取样值,其相邻两个频率样本点的间距为2π/N ,所以如果我们增加数据的长度N ,使得到的DFT 谱线就更加精细,其包络就越接近DTFT 的结果,这样就可以利用DFT 计算DTFT 。
如果没有更多的数据,可以通过补零来增加数据长度。
3.利用DFT 分析连续信号的频谱采用计算机分析连续时间信号的频谱,第一步就是把连续信号离散化,这里需要进行两个操作:一是采样,二是截断。
对于连续时间非周期信号,按采样间隔T 进行采样,阶段长度M ,那么:1()()()M j tj nT a a a n X j x t edt T x nT e ∞--Ω-Ω=-∞Ω==∑⎰对进行N 点频域采样,得到2120()|()()M jkn Na a M kn NTX j T x nT eTX k ππ--Ω==Ω==∑因此,可以将利用DFT 分析连续非周期信号频谱的步骤归纳如下: (1)确定时域采样间隔T ,得到离散序列(2)确定截取长度M ,得到M 点离散序列,这里为窗函数。
数字信号处理实验指导书(M)
数字信号处理实验电子信息科学与技术实验室2007年7月目录实验一离散时间信号的时域表示 (3)实验二离散信号的卷积和 (6)实验三离散傅立叶变换及其特性验证 (8)实验四信号处理中FFT的应用 (11)实验五离散系统的Z域分析 (15)实验六无限冲激响应(IIR)数字滤波器的三种结构 (19)实验七冲激响应不变法IIR数字滤波器设计 (23)实验八双线性变换法IIR数字滤波器设计 (26)实验一 离散时间信号的时域表示一、实验目的1、熟悉Matlab 命令,掌握离散时间信号-序列的时域表示方法。
2、掌握用Matlab 描绘二维图像的方法。
3、掌握用Matlab 对序列进行基本的运算和时域变换的方法。
二、实验原理与计算方法(一)序列的表示方法 序列的表示方法有列举法、解析法和图形法,相应的用Matlab 也可以有这样几种表示方法,分别介绍如下:1、列举法 在Matlab 中,用一个列向量来表示一个有限长序列,由于一个列向量并不包含位置信息,因此需要用表示位置的n 和表示量值的x 两个向量来表示任意一个序列,如:例1.1:>>n=[-3,-2,-1,0,1,2,3,4]; >>x=[2,1,-1,0,1,4,3,7];如果不对向量的位置进行定义,则Matlab 默认该序列的起始位置为n=1。
由于内存有限,Matlab 不能表示一个无限序列。
2、解析法对于有解析表达式的确定信号,首先定义序列的范围即n 的值,然后直接写出该序列的表达式,如:例1.2:实现实指数序列nn x )9.0()(=,100≤≤n 的Matlab 程序为:>>n=[0:10]; >>x=(0.9).^n;例 1.3:实现正余弦序列)5.0sin(2)31.0cos(3)(n n n x πππ++=,155≤≤n 的Matlab 程序为:>>n=[5:15];>>x=3*cos(0.1*pi*n+pi/3)+2*sin(0.5*pi*n); 3、图形法在Matlab 中用图形法表示一个序列,是在前两种表示方法的基础上将序列的各个量值描绘出来,即首先对序列进行定义,然后用相应的画图语句画图,如:例1.4:绘制在例1.1中用列举法表示的序列的图形,则在向量定义之后加如下相应的绘图语句:>>stem(n,x);此时得到的图形的横坐标范围由向量n 的值决定,为-3到4,纵坐标的范围由向量x 的值决定,为-1到7。
数字信号处理实验五报告
实验5F I R滤波器的设计一、实验目的1.掌握用窗函数法,频率采样法及优化设计法设计FIR 滤波器的原理及方法。
2.熟悉线性相位FIR 滤波器的幅频特性和相频特性。
3.了解各种不同窗函数对滤波器性能的影响。
二、实验内容a)N=45,计算并画出矩形窗、汉明窗、布莱克曼窗的归一化的幅度谱,并比较各自的主要特点。
各自特点:矩形窗函数具有最窄的主瓣宽度,但有最大的旁瓣峰值;汉明窗函数的主瓣稍宽,而旁瓣较小;布莱克曼窗函数主瓣最宽,旁瓣最小。
矩形窗设计的滤波器过渡带最窄,但是阻带最小衰减也最差;布莱克曼窗设计的滤波器阻带衰减最好,过渡带最宽,约为矩形窗设计的三倍。
汉明窗设计的滤波器处于以上二者之间。
b)N=15,带通滤波器的两个通带边界分别是ω1=π,ω2=π。
用汉宁窗设计此线性相位带通滤波器,观察它的实际3dB 和20dB 带宽。
N=45,重复这一设计,观察幅频和相位特性的变化,注意长度N 变化的影响。
N增加,3db带宽和20db带宽分别减小,滤波器特性变好,过渡带变陡,幅频曲线显示其通带较平缓,波动小,阻带衰减大,相频特性曲线显示其相位随频率变化也变大。
c)分别改用矩形窗和布莱克曼窗,设计(2)中的带通滤波器,观察并记录窗函数对滤波器幅频特性的影响,比较三种窗的特点。
矩形窗设计的滤波器过渡带最窄,但阻带最小衰减也最差;汉宁窗设计的滤波器过渡带稍宽,但有较好的阻带衰减;布莱克曼窗设计的滤波器阻带衰减最好,但过渡带最宽。
当使用同种窗设计滤波器时,N越大,主瓣宽度越窄,通带越平坦,过渡带宽越小。
对于同一个N值,当用不同窗设计时,矩形窗的过渡带最窄,但阻带衰减最差;布莱克曼窗的阻带衰减最好,但过渡带最宽;汉明窗的两种特性介于前两者之间。
d)用Kaiser 窗设计一专用线性相位滤波器,N=40,当β=4、6、10 时,分别设计、比较它们的幅频和相频特性,注意β取不同值时的影响。
由图中可以看出,β越大,则窗越窄,过渡带宽越大,主瓣的宽度也相应增加,而频谱的旁瓣越小,阻带最小衰减也越大。
数字信号处理实验报告格式(1)(1)
《数字信号处理》实验报告实验一、系统响应与系统稳定性专业:通信工程班级:通信1204班实验一、系统响应及系统稳定性一、设计目的(1)掌握求系统响应的方法。
(2)掌握时域离散系统的时域特性。
(3)分析,观察及检验系统的稳定性。
二、实验原理和方法在时域中,描写系统特性的方法是差分方程和单位脉冲响应,在频域可以用系统函数描述系统特性。
已知输入信号, 可以由差分方程、单位脉冲响应或系统函数求出系统对于该输入信号的响应,本实验仅在时域求解。
在计算机上适合用递推法求差分方程的解,最简单的方法是采用MATLAB语言的工具箱函数filter函数。
也可以用MATLAB语言的工具箱函数conv函数计算输入信号和系统的单位脉冲响应的线性卷积,求出系统的响应。
系统的时域特性指的是系统的线性时不变性质、因果性和稳定性。
重点分析实验系统的稳定性,包括观察系统的暂态响应和稳定响应。
系统的稳定性是指对任意有界的输入信号,系统都能得到有界的系统响应。
或者系统的单位脉冲响应满足绝对可和的条件。
系统的稳定性由其差分方程的系数决定。
实际中检查系统是否稳定,不可能检查系统对所有有界的输入信号,输出是否都是有界输出,或者检查系统的单位脉冲响应满足绝对可和的条件。
可行的方法是在系统的输入端加入单位阶跃序列,如果系统的输出趋近一个常数(包括零),就可以断定系统是稳定的[19]。
系统的稳态输出是指当n→∞时,系统的输出。
如果系统稳定,信号加入系统后,系统输出的开始一段称为暂态效应,随n的加大,幅度趋于稳定,达到稳态输出。
注意在以下实验中均假设系统的初始状态为零三、实验内容和分析实验内容编程如下:(1)给定一个低通滤波器的差分方程为y(n)=0.05x(n)+0.05x(n-1)+0.9y(n-1)输入信号 x1(n)=R8(n), x2(n)=u(n)① 分别求出x 1(n)=R 8(n)和x 2(n)=u(n)的系统响应,并画出其波形。
② 求出系统的单位脉冲响应,画出其波形。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数字信号处理实验指导书长治学院电子信息科学与技术目录数字信号处理实验指导书 (1)实验一基本信号的产生 (3)实验二采样定理 (5)实验三快速傅里叶变换原理 (11)实验四快速傅立叶变换(FFT)应用 (14)实验五用双线性变换法设计IIR数字滤波器 (24)实验六用窗函数法设计FIR数字滤波器 (27)实验一 基本信号的产生实验目的1、掌握序列的表示方法,了解其数学表达式和图形。
2、熟悉不同序列的特征。
3、掌握序列间的运算。
4、掌握不同序列在计算机中生成及绘制信号图形的方法。
实验内容1、产生一单位脉冲序列⎩⎨⎧≠==-000,0,1)(n n n n n n δ,要求50=n ,序列的长度为20,起始点为0=n 。
程序:a=[zeros(1,5),1,zeros(1,14)];n=0:19;stem(n,a)2、产生一单位阶跃序列⎩⎨⎧<≥=-000,0,1)(n n n n n n u ,要求50=n ,序列的长度为20,起始点为0=n 。
程序:a=[zeros(1,5),ones(1,15)]; n=0:19; stem(n,a)3、矩形序列⎩⎨⎧-≤≤=n 0101)(其他N n n R N ,要求10=N 。
程序:a=ones(1,10); n=0:9; stem(n,a)4、产生一个实指数序列)()(n u a n x n =,8.0=a ,长度为20,起始点为0=n 。
程序:n=0:19; a=0.8.^n; stem(n,a)5、产生一个正弦序列)sin()(0φω+=n A n x ,要求000,8/,2===φπωA ,序列的长度为20,起始点为0=n 。
程序:n=0:19;x=2*sin(pi/8*n); stem(n,x)6、产生复指数序列nj Aen x 0)(ω=,幅度为1,8/0πω=,序列长度为20,实部和虚部分别表示出来,起始点为0=n 。
程序(虚部)n=0:19; x=exp(j*pi/8*n); stem(n,imag(x)) 程序(实部)n=0:19; x=exp(j*pi/8*n); stem(n,real(x))7、已知序列]0,3.0,5.0,1[)(1=n x ,n 的取值是1~4,]1,8.0,5.0,4.0,3.0,2.0[)(2=n xn 的取值是3~8,求序列)(1n x 与)(2n x 的和与乘,并分别画出图形。
和程序:n1=1:4;x1=[1 0.5 0.3 0]; n2=3:8;x2=[0.2 0.3 0.4 0.5 0.8 1]; n=1:8;x1=[x1 zeros(1,8-length(n1))]; x2=[zeros(1,8-length(n2)) x2]; x=x1+x2 stem(n,x) 积程序:n1=1:4;x1=[1 0.5 0.3 0]; n2=3:8;x2=[0.2 0.3 0.4 0.5 0.8 1]; n=1:8;x1=[x1 zeros(1,8-length(n1))]; x2=[zeros(1,8-length(n2)) x2]; x=x1.*x2 stem(n,x)实验二采样定理实验目的1.熟悉理想采样的性质,了解信号采样和欠采样后信号的频谱变化,加深对采样定理的理解。
2.熟悉离散信号和系统的时域特性。
3.掌握线性卷积的计算编程方法,利用卷积的方法观察、分桥系统响应的时域特性。
4.掌握序列傅氏变换的计算机实现方法,利用序列的傅氏变换对离散信号、系统及系统响应进行频域分析。
实验内容1、设某LTI系统的单位脉冲响应)nh nu=8.0(n()1)当输入为矩形脉冲)unx时,求此LTI系统的输出)=nnu(-(-)10)(y。
(n2)用MATLAB实现,并画出图形。
ones(1,10),zeros(1,40)的程序:x=[ones(1,10)];x1=[ones(1,10),zeros(1,40)];N1=length(x);n1=0:N1-1;N2=50;n2=0:N2-1;h=0.8.^n2;y=conv(x,h)N=N1+N2-1;n=0:N-1;subplot(3,1,1);stem(n2,x1);subplot(3,1,2);stem(n2,h);subplot(3,1,3); stem(n,y);ones(1,10)的程序:x=[ones(1,10)];N1=length(x);n1=0:N1-1;N2=50;n2=0:N2-1;h=0.8.^n2;y=conv(x,h)N=N1+N2-1;n=0:N-1;subplot(3,1,1); stem(n1,x); subplot(3,1,2);stem(n2,h);subplot(3,1,3);stem(n,y);01234567892、用MATLAB实现序列)u的离散时间傅里叶变换并分别画出变换h nn(n8.0()后的幅频特性曲线和相频特性曲线图形。
程序一:h=0.8.^[0:20];dt=2*pi/8;w=linspace(0,2*pi,1000)/dt;h0 = freqz(h,1,w) ;subplot(4,1,1),plot(w,abs(h0)),grid,shgh1=real(h0);h2=imag(h0);h3=h2/h1;subplot(4,1,2),plot(w,h1)subplot(4,1,3),plot(w,h2) subplot(4,1,4),plot(w,h3)01234567850123456785012345678-505012345678-22程序二: h=0.8.^[0:20]; dt=2*pi/8;w=linspace(0,2*pi,10000)/dt; h0 =freqz(h,1,w);subplot(4,1,1),plot(w,abs(h0));grid h1=real(h0); h2=imag(h0);subplot(4,1,2),plot(w,h1) subplot(4,1,3),plot(w,h2)subplot(4,1,4),plot(w,angle(h0))01234567850123456785012345678-505012345678-113、对连续信号)()sin()(0t u t Ae t x at a Ω=-进行采样,可得到采样序列)()sin()()(0n u nT Ae nT x n x anT a a Ω==-500<≤n ,输入参数如下面所示,250π=a ,128.444=A π2500=Ω,)(n x a 的傅立叶变换为∑=-=490)()(n n j a j a e n x e X ωω,编程绘制实现幅频特性曲线)(ωj a e X分析采样序列的特性1)取采样频率kHz f s 1=,即ms T 1=。
观察所得采样)(n x a 的幅频特性)(ωj a e X 。
2)改变采样频率Hz f s 300=,观察)(ωj a e X 的变化,并作记录(保存曲线),进一步降低采样频率Hz f s 200=,观察频谱混叠是否明显存在,说明原因,并记录这时的曲线。
当T=0.001;T=1/300;T=0.005时的程序(dtft): T=input('T=') n=:50; %T=0.001;t=n*T;A=444.128;a=50*sqrt(2)*pi;W0=50*sqrt(2)*pi;xa1=A.*exp(-a.*t).*sin(W0.*t);xa=sin(W0.*t);dt=2*pi/8;w=linspace(0,2*pi,1000)/dt;x0 = dtft(xa,w) *dt;x01= dtft(xa1,w) *dt;subplot(2,1,1);plot(w,abs(x0)),grid,subplot(2,1,2);plot(w,abs(x01)),grid当T=0.001;T=1/300;T=0.005时的程序(freqz):n=0:50;T=0.001;t=n*T;A=444.128;a=50*sqrt(2)*pi;W0=50*sqrt(2)*pi;xa1=A.*exp(-a.*t).*sin(W0.*t);xa=sin(W0.*t);dt=2*pi/8;w=linspace(0,2*pi,1000)/dt;x0 =freqz(xa,1,w);x01=freqz(xa1,1,w);subplot(2,1,1);plot(w,abs(x0)),grid,subplot(2,1,2);plot(w,abs(x01)),grid0123456781020301234567802004006008001000实验三 快速傅里叶变换原理实验目的(1)攀握FFT 算法原理:(2)掌握计算FFT 的计算机实现方法。
实验内容(1) 编制8点FFT 运算子程序; C 语言程序 #include "stdio.h" #include "math.h" #define PI 3.1415926/***************fft*************/int FFT(Re,Im,m,inverse)double Re[],Im[];int m,inverse;{double Ur,Ui,Wr,Wi,Tr,Ti;int N,Ln,I,J,NV2,NM1,LE1,LE,IP,L,K;N=1;Ln=0;do{N*=2;Ln++;}while(N<m);NV2=N/2;NM1=N-1;J=1;for(I=1;I<=NM1;I++){if(I>=J)goto OK1;Tr=Re[J-1];Re[J-1]=Re[I-1];Re[I-1]=Tr;Ti=Im[J-1];Im[J-1]=Im[I-1];Im[I-1]=Ti;OK1:K=NV2;OK2:if(K>=J)goto OK3;J=J-K;K=K/2;goto OK2;OK3:J=J+K;}LE=1;for(L=1;L<=Ln;L++){LE=LE*2;LE1=LE/2;Ur=1.0;Ui=0.0;Wr=cos(PI/(double)LE1);Wi=0-sin(PI/(double)LE1);for(J=1;J<=LE1;J++){for(I=J;I<N;I+=LE){IP=I+LE1;Tr=Re[IP-1]*Ur-Im[IP-1]*Ui;Ti=Re[IP-1]*Ui-Im[IP-1]*Ur;Re[IP-1]=Re[I-1]-Tr;Im[IP-1]=Im[I-1]-Ti;Re[I-1]=Re[I-1]+Tr;Im[I-1]=Im[I-1]+Ti;}Tr=Wr*Ur-Wi*Ui;Ti=Wi*Ur+Wr*Ui;Ur=Tr;Ui=Ti;}}if(inverse)return(1);for(I=1;I<=N;I++){Re[I-1]=Re[I-1]/(double)N;Im[I-1]=Im[I-1]/(double)N;}return (0);}main(){double Re[16],Im[16]; int m=8,i;int inverse=1,Result; for(i=0;i<16;i++) {Re[i]=1.0; Im[i]=0.0; }Result=FFT(Re,Im,m,inverse); printf("\nResult=%d\n",Result); for(i=0;i<m;i++)printf("Re=%f\tIm=%f\n",Re[i],Im[i]); getch(); }(2)利用该子程序计算下面序列的)(k X ;1)(+=n n x ,60<≤n ,补零至8=N(3)分析屏幕绘制的各种信号是否正确;实验四 快速傅立叶变换的应用1.实验目的(1)进一步加深DFT 算法原理和基本性质的理解(因为FFT 只是DFT 的一种快速算法,所以FFT 的运算结果必然满足DFT 的基本性质)。