数字信号处理实验报告_完整版
- 格式:docx
- 大小:560.39 KB
- 文档页数:57
实验一 信号、系统及系统响应一、实验目的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,观察频谱混淆现象是否明显存在,说明原因,并记录这时候的幅频特性曲线。
《数字信号处理》实验报告学院:信息科学与工程学院专业班级:通信1303姓名学号:实验一 常见离散时间信号的产生和频谱分析一、 实验目的(1) 熟悉MATLAB 应用环境,常用窗口的功能和使用方法;(2) 加深对常用离散时间信号的理解;(3) 掌握简单的绘图命令;(4) 掌握序列傅里叶变换的计算机实现方法,利用序列的傅里叶变换对离散信号进行频域分析。
二、 实验原理(1) 常用离散时间信号a )单位抽样序列⎩⎨⎧=01)(n δ00≠=n n 如果)(n δ在时间轴上延迟了k 个单位,得到)(k n -δ即:⎩⎨⎧=-01)(k n δ0≠=n k n b )单位阶跃序列⎩⎨⎧=01)(n u 00<≥n n c )矩形序列 ⎩⎨⎧=01)(n R N 其他10-≤≤N nd )正弦序列)sin()(ϕ+=wn A n xe )实指数序列f )复指数序列()()jw n x n e σ+=(2)离散傅里叶变换:设连续正弦信号()x t 为0()sin()x t A t φ=Ω+这一信号的频率为0f ,角频率为002f πΩ=,信号的周期为00012T f π==Ω。
如果对此连续周期信号()x t 进行抽样,其抽样时间间隔为T ,抽样后信号以()x n 表示,则有0()()sin()t nT x n x t A nT φ===Ω+,如果令w 为数字频率,满足000012s sf w T f f π=Ω=Ω=,其中s f 是抽样重复频率,简称抽样频率。
为了在数字计算机上观察分析各种序列的频域特性,通常对)(jw e X 在[]π2,0上进行M 点采样来观察分析。
对长度为N 的有限长序列x(n), 有∑-=-=10)()(N n n jw jw k k e n x e X其中 1,,1,02-==M k k Mw k ,π 通常M 应取得大一些,以便观察谱的细节变化。
取模|)(|k jw e X 可绘出幅频特性曲线。
实验一 信号、系统及系统响应一、 实验目的1、熟悉连续信号经理想采样前后的频谱变化关系,加深对时域采样定理的理解;2、熟悉时域离散系统的时域特性;3、利用卷积方法观察分析系统的时域特性;4、掌握序列傅立叶变换的计算机实现方法,利用序列的傅立叶变换对连续信号、离散信号及系统响应进行频域分析。
二、 实验原理及方法采样是连续信号数字处理的第一个关键环节。
对采样过程的研究不仅可以了解采样前后信号时域和频域特性发生变化以及信号信息不丢失的条件,而且可以加深对傅立叶变换、Z 变换和序列傅立叶变换之间关系式的理解。
对一个连续信号)(t x a 进行理想采样的过程可用下式表示:)()()(^t p t t xx aa=其中)(^t x a 为)(t x a 的理想采样,p(t)为周期脉冲,即∑∞-∞=-=m nT t t p )()(δ)(^t x a的傅立叶变换为)]([1)(^s m a m j X T j a XΩ-Ω=Ω∑∞-∞=上式表明^)(Ωj Xa为)(Ωj Xa的周期延拓。
其延拓周期为采样角频率(T /2π=Ω)。
只有满足采样定理时,才不会发生频率混叠失真。
在实验时可以用序列的傅立叶变换来计算^)(Ωj X a 。
公式如下:Tw jw ae X j X Ω==Ω|)()(^离散信号和系统在时域均可用序列来表示。
为了在实验中观察分析各种序列的频域特性,通常对)(jw e X 在[0,2π]上进行M 点采样来观察分析。
对长度为N 的有限长序列x(n),有:n jw N n jw k ke m x eX--=∑=)()(1其中,k Mk πω2=,k=0,1,……M-1 时域离散线性非移变系统的输入/输出关系为 ∑∞-∞=-==m m n h m x n h n x n y )()()(*)()(上述卷积运算也可在频域实现)()()(ωωωj j j e H e X eY =三、 实验程序s=yesinput(Please Select The Step Of Experiment:\n 一.(1时域采样序列分析 s=str2num(s); close all;Xb=impseq(0,0,1); Ha=stepseq(1,1,10);Hb=impseq(0,0,3)+2.5*impseq(1,0,3)+2.2*impseq(2,0,3)+impseq(3,0,3); i=0;while(s);%时域采样序列分析 if(s==1) l=1; k=0;while(1)if(k==0)A=yesinput('please input the Amplitude:\n',...444.128,[100,1000]); a=yesinput('please input the Attenuation Coefficient:\n',...222.144,[100,600]); w=yesinput('please input the Angle Frequence(rad/s):\n',...222.144,[100,600]); end k=k+1;fs=yesinput('please input the sample frequence:\n',...1000,[100,1200]); Xa=FF(A,a,w,fs); i=i+1;string+['fs=',num2str(fs)]; figure(i)DFT(Xa,50,string); 1=yesinput 1=str2num(1); end%系统和响应分析else if(s==2)kk=str2num(kk);while(kk)if(kk==1)m=conv(Xb,Hb);N=5;i=i+1;figure(i)string=('hb(n)');Hs=DFT(Hb,4,string);i=i+1;figure(i)string('xb(n)');DFT(Xb,2,string);string=('y(n)=xb(n)*hb(n)');else if (kk==2)m=conv(Ha,Ha);N=19;string=('y(n)=ha(n)*(ha(n)');else if (kk==3)Xc=stepseq(1,1,5);m=conv(Xc,Ha);N=14;string=('y(n)=xc(n)*ha(n)');endendendi=i+1;figure(i)DFT(m,N,string);kk=yesinputkk=str2num(kk);end卷积定理的验证else if(s==3)A=1;a=0.5;w=2,0734;fs=1;Xal=FF(A,a,w,fs);i=i+1;figure(i)string=('The xal(n)(A=1,a=0.4,T=1)'); [Xa,w]DFT(Xal,50,string);i=i+1;figure(i)string =('hb(n)');Hs=DFT(Hb,4,string);Ys=Xs.*Hs;y=conv(Xal,Hb);N=53;i=i+1;figure(i)string=('y(n)=xa(n)*hb(n)');[yy,w]=DFT(y,N,string);i=i+1;figure(i)subplot(2,2,1)plot(w/pi,abs(yy));axis([-2 2 0 2]);xlabel('w/pi');ylabel('|Ys(jw)|');title(FT[x(n)*h(n)]');subplot(2,2,3)plot(w/pi,abs(Ys));axis([-2 2 0 2]);xlabel('w/pi');ylabel('|Ys(jw)|');title('FT[xs(n)].FT[h(n)]');endendend子函数:离散傅立叶变换及X(n),FT[x(n)]的绘图函数function[c,l]=DFT(x,N,str)n=0:N-1;k=-200:200;w=(pi/100)*k;l=w;c=x*Xc=stepseq(1,1,5);子函数:产生信号function c=FF(A,a,w,fs)n=o:50-1;c=A*exp((-a)*n/fs).*sin(w*n/fs).*stepseq(0,0,49); 子函数:产生脉冲信号function [x,n]=impseq(n0,n1,n2)n=[n1:n2];x=[(n-n0)==0];子函数:产生矩形框信号function [x,n]=stepseq(n0,n1,n2) n=[n1:n2];x=[(n-n0>=0)];四、 实验内容及步骤1、认真复习采样理论,离散信号与系统,线性卷积,序列的傅立叶变换及性质等有关内容,阅读本实验原理与方法。
数字信号处理实验报告全实验一、离散时间系统及离散卷积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; 结果。
数字信号处理实验报告实验一:频谱分析与采样定理一、实验目的1.观察模拟信号经理想采样后的频谱变化关系。
2.验证采样定理,观察欠采样时产生的频谱混叠现象3.加深对DFT算法原理和基本性质的理解4.熟悉FFT算法原理和FFT的应用二、实验原理根据采样定理,对给定信号确定采样频率,观察信号的频谱三、实验内容和步骤实验内容(1)在给定信号为:1.x(t)=cos(100*π*at)2.x(t)=exp(-at)3.x(t)=exp(-at)cos(100*π*at)其中a为实验者的学号,用DFT分析上述各信号的频谱结构,选取不同的采样频率和截取长度,试分析频谱发生的变化。
实验内容(2)设x(n)=cos(0.48*π*n)+ cos(0.52*π*n),对其进行以下频谱分析:10点DFT,64点DFT,及在10点序列后补零至64点的DFT 试分析这三种频谱的特点。
四、实验步骤1.复习采样理论、DFT的定义、性质和用DFT作谱分析的有关内容。
2.复习FFT算法原理和基本思想。
3.确定实验给定信号的采样频率,编制对采样后信号进行频谱分析的程序五、实验程序和结果实验1内容(1)N=L/T+1;t=0:T:L;a=48;D1=2*pi/(N*T); % 求出频率分辨率k1=floor((-(N-1)/2):((N-1)/2)); % 求对称于零频率的FFT位置向量%%%%%%%%%%%%%%%%%%%%%%%%%figure(1),x1=cos(100*pi*a*t);y1=T*fftshift(fft(x1));%虽然原来是周期信号,但做了截断后,仍可当作非周期信号。
subplot(2,1,1),plot(t,x1);title('正弦信号');subplot(2,1,2),plot(k1*D1,abs(y1));title('正弦信号频谱'); %%%%%%%%%%%%%%%%%%%%% figure(2), x2=exp(-a*t);y2=T*fftshift(fft(x2));%有限长(长度为N)离散时间信号x1的dft 再乘T 来近似模拟信号的频谱,长度为Nsubplot(2,1,1),plot(t,x2);title('指数信号');subplot(2,1,2),plot(k1*D1,abs(y2));title('指数信号频谱'); %%%%%%%%%%%%%%%%%%%%% figure(3), x3=x1.*x2;y3=T*fftshift(fft(x3))subplot(2,1,1),plot(t,x3);title('两信号相乘');subplot(2,1,2),plot(k1*D1,abs(y3));title('两信号相乘频谱');0.020.040.060.080.10.120.140.16-1-0.500.51正弦信号-4000-3000-2000-10000100020003000400000.020.040.06正弦信号频谱00.020.040.060.080.10.120.140.160.51-4000-3000-2000-10000100020003000400000.010.020.03指数信号频谱0.020.040.060.080.10.120.140.16-1-0.500.51两信号相乘-4000-3000-2000-10000100020003000400000.0050.010.015两信号相乘频谱T=0.0005 L=0.150.020.040.060.080.10.120.140.16-1-0.500.51-8000-6000-4000-2000200040006000800000.020.040.060.08正弦信号频谱00.020.040.060.080.10.120.140.160.51指数信号-8000-6000-4000-20000200040006000800000.010.020.03指数信号频谱0.020.040.060.080.10.120.140.16-1-0.500.51-8000-6000-4000-20000200040006000800000.0050.010.015两信号相乘频谱T=0.002 L=0.150.020.040.060.080.10.120.140.16-1-0.500.51正弦信号-2000-1500-1000-50050010001500200000.020.040.060.08正弦信号频谱00.020.040.060.080.10.120.140.160.51-2000-1500-1000-500050010001500200000.010.020.03指数信号频谱0.020.040.060.080.10.120.140.16-1-0.500.51两信号相乘-2000-1500-1000-500050010001500200000.0050.010.015两信号相乘频谱T=0.001 L=0.180.020.040.060.080.10.120.140.160.18-1-0.500.51-4000-3000-2000-1000100020003000400000.020.040.060.08正弦信号频谱00.020.040.060.080.10.120.140.160.180.51指数信号-4000-3000-2000-10000100020003000400000.010.020.03指数信号频谱0.020.040.060.080.10.120.140.160.18-1-0.500.51-4000-3000-2000-10000100020003000400000.0050.010.015两信号相乘频谱T=0.001 L=0.120.020.040.060.080.10.12-1-0.500.51正弦信号-4000-3000-2000-10000100020003000400000.020.040.06正弦信号频谱00.020.040.060.080.10.120.51-4000-3000-2000-10000100020003000400000.010.020.03指数信号频谱0.020.040.060.080.10.12-1-0.500.51两信号相乘-4000-3000-2000-10000100020003000400000.0050.010.015两信号相乘频谱实验1内容(2)>> N=10;n=1:NT=1x1=cos(0.48*pi*n*T)+cos(0.52*pi*n*T)X1=fft(x1,10)k=1:N;w=2*pi*k/10subplot(3,2,1);stem(n,x1);axis([0,10,-3,3]);title('信号x(n)');subplot(3,2,2);stem(w/pi,abs(X1));axis([0,1,0,10]);title('DFTx(n)');%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% N2=100;n2=1:N2T=1x1=cos(0.48*pi*[1:10]*T)+cos(0.52*pi*[1:10]*T)x2=[x1,zeros(1,90)]X2=fft(x2,N2)k2=1:N2;w2=2*pi*k2/100subplot(3,2,3);stem(x2);axis([0,100,-3,3]);title('信号x(n)补零');subplot(3,2,4);plot(w2/pi,abs(X2));axis([0,1,0,10]);title('DFTx(n)');%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% N3=100;n3=1:N3T=1x3=cos(0.48*pi*n3*T)+cos(0.52*pi*n3*T)X3=fft(x3,100)k3=1:N3;w3=2*pi*k3/100subplot(3,2,5);stem(n3,x3);axis([0,100,-3,3]);title('信号x(n)');subplot(3,2,6);stem(w3/pi,abs(X3));axis([0,1,0,10]);title('DFTx(n)');n =1 2 3 4 5 6 7 8 9 10 T =1510-202信号x(n)0.510510DFTx(n)50100信号x(n)补零0.510510DFTx(n)50100信号x(n)DFTx(n)实验二 卷积定理一、实验目的通过本实验,验证卷积定理,掌握利用DFT 和FFT 计算线性卷积的方法。
一、实验目的1. 理解数字信号处理的基本概念和原理。
2. 掌握离散时间信号的基本运算和变换方法。
3. 熟悉数字滤波器的设计和实现。
4. 培养实验操作能力和数据分析能力。
二、实验原理数字信号处理(Digital Signal Processing,DSP)是利用计算机对信号进行采样、量化、处理和分析的一种技术。
本实验主要涉及以下内容:1. 离散时间信号:离散时间信号是指时间上离散的信号,通常用序列表示。
2. 离散时间系统的时域分析:分析离散时间系统的时域特性,如稳定性、因果性、线性等。
3. 离散时间信号的变换:包括离散时间傅里叶变换(DTFT)、离散傅里叶变换(DFT)和快速傅里叶变换(FFT)等。
4. 数字滤波器:设计、实现和分析数字滤波器,如低通、高通、带通、带阻滤波器等。
三、实验内容1. 离散时间信号的时域运算(1)实验目的:掌握离散时间信号的时域运算方法。
(2)实验步骤:a. 使用MATLAB生成两个离散时间信号;b. 进行时域运算,如加、减、乘、除等;c. 绘制运算结果的时域波形图。
2. 离散时间信号的变换(1)实验目的:掌握离散时间信号的变换方法。
(2)实验步骤:a. 使用MATLAB生成一个离散时间信号;b. 进行DTFT、DFT和FFT变换;c. 绘制变换结果的频域波形图。
3. 数字滤波器的设计和实现(1)实验目的:掌握数字滤波器的设计和实现方法。
(2)实验步骤:a. 设计一个低通滤波器,如巴特沃斯滤波器、切比雪夫滤波器等;b. 使用MATLAB实现滤波器;c. 使用MATLAB对滤波器进行时域和频域分析。
4. 数字滤波器的应用(1)实验目的:掌握数字滤波器的应用。
(2)实验步骤:a. 采集一段语音信号;b. 使用数字滤波器对语音信号进行降噪处理;c. 比较降噪前后的语音信号,分析滤波器的效果。
四、实验结果与分析1. 离散时间信号的时域运算实验结果显示,通过MATLAB可以方便地进行离散时间信号的时域运算,并绘制出运算结果的时域波形图。
数字信号处理实验报告一、实验目的本次数字信号处理实验的主要目的是通过实际操作和观察,深入理解数字信号处理的基本概念和方法,掌握数字信号的采集、处理和分析技术,并能够运用所学知识解决实际问题。
二、实验设备与环境1、计算机一台,安装有 MATLAB 软件。
2、数据采集卡。
三、实验原理1、数字信号的表示与采样数字信号是在时间和幅度上都离散的信号,可以用数字序列来表示。
在采样过程中,根据奈奎斯特采样定理,为了能够准确地恢复原始信号,采样频率必须大于信号最高频率的两倍。
2、离散傅里叶变换(DFT)DFT 是将时域离散信号变换到频域的一种方法。
通过 DFT,可以得到信号的频谱特性,从而分析信号的频率成分。
3、数字滤波器数字滤波器是对数字信号进行滤波处理的系统,分为有限冲激响应(FIR)滤波器和无限冲激响应(IIR)滤波器。
FIR 滤波器具有线性相位特性,而 IIR 滤波器则在性能和实现复杂度上有一定的优势。
四、实验内容与步骤1、信号的采集与生成使用数据采集卡采集一段音频信号,或者在 MATLAB 中生成一个模拟信号,如正弦波、方波等。
2、信号的采样与重构对采集或生成的信号进行采样,然后通过插值算法重构原始信号,观察采样频率对重构信号质量的影响。
3、离散傅里叶变换对采样后的信号进行DFT 变换,得到其频谱,并分析频谱的特点。
4、数字滤波器的设计与实现(1)设计一个低通 FIR 滤波器,截止频率为给定值,观察滤波前后信号的频谱变化。
(2)设计一个高通 IIR 滤波器,截止频率为给定值,比较滤波前后信号的时域和频域特性。
五、实验结果与分析1、信号的采集与生成成功采集到一段音频信号,并在MATLAB 中生成了各种模拟信号,如正弦波、方波等。
通过观察这些信号的时域波形,对不同类型信号的特点有了直观的认识。
2、信号的采样与重构当采样频率足够高时,重构的信号能够较好地恢复原始信号的形状;当采样频率低于奈奎斯特频率时,重构信号出现了失真和混叠现象。
数字信号处理实验报告完整版[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中的绘图工具对产生的信号进行观察,加深对常用离散信号和信号卷积和运算的理解。
数字信号处理实验报告实验一:混叠现象的时域与频域表现实验原理:当采样频率Fs不满足采样定理,会在0.5Fs附近引起频谱混叠,造成频谱分析误差。
实验过程:考虑频率分别为3Hz,7Hz,13Hz 的三个余弦信号,即:g1(t)=cos(6πt), g2(t)=cos(14πt), g3(t)=cos(26πt),当采样频率为10Hz 时,即采样间隔为0.1秒,则产生的序列分别为:g1[n]=cos(0.6πn), g2[n]=cos(1.4πn), g3[n]=cos(2.6πn)对g2[n],g3[n] 稍加变换可得:g2[n]=cos(1.4πn)=cos((2π-0.6π)n)= cos(0.6πn)g3[n]=cos(2.6πn)= cos((2π+0.6π)n)=cos(0.6πn)利用Matlab进行编程:n=1:300;t=(n-1)*1/300;g1=cos(6*pi*t);g2=cos(14*pi*t);g3=cos(26*pi*t);plot(t,g1,t,g2,t,g3);k=1:100;s=k*0.1;q1=cos(6*pi*s);q2=cos(14*pi*s);q3=cos(26*pi*s);hold on; plot(s(1:10),q1(1:10),'bd');figuresubplot(2,2,1);plot(k/10,abs(fft(q1)))subplot(2,2,2);plot(k/10,abs(fft(q2)))subplot(2,2,3);plot(k/10,abs(fft(q3)))通过Matlab软件的图像如图所示:如果将采样频率改为30Hz,则三信号采样后不会发生频率混叠,可运行以下的程序,观察序列的频谱。
程序编程改动如下:k=1:300;q=cos(6*pi*k/30);q1=cos(14*pi*k/30);q2=cos(26*pi*k/30);subplot(2,2,1);plot(k/10,abs(fft(q)))subplot(2,2,2);plot(k/10,abs(fft(q1)))subplot(2,2,3);plot(k/10,abs(fft(q2)))得图像:问题讨论:保证采样后的信号不发生混叠的条件是什么?若信号的最高频率为17Hz,采样频率为30Hz,问是否会发生频率混叠?混叠成频率为多少Hz的信号?编程验证你的想法。
实验一:离散时间信号的表示与运算一:实验内容、原理描述及实验结果 1. 离散时间信号的表示离散时间信号定义为一时间函数,它只在某些离散的瞬时给出函数值,而在其他处无定义。
因此,它是时间上不连续按一定先后次序排列的一组数的集合,故称为时间序列,简称序列,通常表示为{x (n )} -∞<n<+∞ (1) 单位采样序列例1.1 用matlab 编写生成单位脉冲序列函数的程序,n ∈(-5,5)。
程序代码如下:n0=0;n1=-5;n2=5;n=[n1:n2];nc=length(n);x=zeros(1,nc);for i=1:ncif n(i)==n0 x(i)=1; endendstem(n,x)xlabel('n');ylabel('x(n)');title('delta sequence'); grid或者:n0=0;n1=-5;n2=5;n=[n1:n2];x=[(n-n0)==0];stem(n,x);xlabel('n');ylabel('x(n)');title('delta sequence');grid 图形如下:nx (n )(2)单位阶跃序列例1.2 用matlab 编写生成单位阶跃序列函数的程序,n ∈(-5,5)。
程序代码如下:n0=0;n1=-5;n2=5;n=[n1:n2];x=[(n-n0)>=0];stem(n,x)xlabel('n');ylabel('x(n)');title('step sequence');grid图形如下:nx (n )(3)单位斜坡序列例1.3 用matlab 编写生成单位斜坡序列函数的程序,n ∈(0,5)。
程序代码如下:n1=0;n2=5;n=[n1:1:n2];x=n;stem(n,x)xlabel('n');ylabel('x(n)');title('ramp sequence');grid图形如下:nx (n )(4)正余弦序列例1.4 用matlab 编写正弦序列x(n)=5sin(0.1πn+π/3)函数的程序。
实验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 点离散序列,这里为窗函数。
(3)确定频域采样点数N ,要求N ≥M 。
(4)利用FFT 计算离散序列的N 点DFT ,得到. (5)根据上式由计算采样点的近似值。
采用上述方法计算信号的频谱需要注意如下三个问题:(1)频谱混叠。
如果不满足采样定理的条件,频谱会出现混叠误差。
对于频谱无限宽的信号,应考虑覆盖大部分主要频率分量的范围。
(2)栅栏效应和频谱分辨率。
使用DFT 计算频谱,得到的结果只是N 个频谱样本值,样本值之间的频谱是未知的,像通过一个栅栏观察频谱,称为“栅栏效应”。
频谱分辨率与记录长度成反比,要提高频谱分辨率,就要增加记录时间。
(3)频谱泄露。
对信号截断会把窗函数的频谱引入信号频谱,造成频谱泄露。
解决这个问题的主要办法是采用旁瓣小的窗函数,频谱泄露和窗函数均会引起误差。
因此,要合理选取采样间隔和截取长度,必要时还需考虑加适当的窗。
对于连续时间周期信号,我们在采用计算机进行计算时,也总是要进行截断,序列总是有限长的,仍然可以采用上述方法近似计算。
4.可能用到的MATLAB 函数与代码实验中DFT 运算可采用MATLAB 中提供的函数fft 来实现。
DTFT 可采用MATLAB 矩阵运算的方法进行计算,如下式所示:[][][][][]⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎣⎡⋅⋅⋅⋅⋅⋅==Ω-Ω-Ω-=Ω-Ω∑N Njn jn jn N n n n nj nj e e e n x n x n x e n x eX 211.,,,)(21四、实验内容 1、已知}1,1,1,2{)(-=↑n x ,完成如下要求:(1)计算其DTFT ,并画出[]ππ,-区间的波形。
(2)计算4点DFT ,并把结果显示在(1)所画的图形中。
(3)对x(n)补零,计算64点DFT ,并显示结果。
(4) 根据实验结果,分析是否可以由DFT 计算DTFT ,如果可以,如何实现。
解:(1)计算其DTFT ,并画出[]ππ,-区间的波形。
>> n=0:3;>> x=[2 -1 1 1]; >> w=-pi:0.01*pi:pi; >> X=x*exp(-j*n'*w);>> subplot(211); >> plot(w,abs(X));>> xlabel('\Omega/\pi'); >> title('Magnitude'); >> axis tight; >> subplot(212);>> plot(w,angle(X)/pi); >> xlabel('\Omega/\pi'); >> title('Phase'); >> axis tight;(2)计算4点DFT ,并把结果显示在(1)所画的图形中。
>> Xk=fft(x); >> subplot(211); >> hold on;>> stem(n,abs(Xk),'filled'); >> plot(w,abs(X)); >> axis tight;>> xlabel('\Omega/\pi'); >> title('Magnitude'); >> subplot(212); >> hold on;>> plot(w,angle(X)/pi);>> stem(n,angle(Xk),'filled'); >> axis tight;-3-2-10123123Ω/πMagnitude-3-2-10123-0.50.5Ω/πPhase>> xlabel('\Omega/\pi'); >> title('Phase');运行结果如下:(3)对x(n)补零,计算64点DFT ,并显示结果。
>> x=[2 -1 1 1 zeros(1,60)]; >> n=0:63; >> Xk=fft(x); >> subplot(211);>> stem(n,abs(Xk),'filled'); >> subplot(212);>> stem(n,angle(Xk),'filled');-3-2-10123123Ω/πMagnitude-3-2-10123-1-0.500.51Ω/πPhase(4) 根据实验结果,分析是否可以由DFT 计算DTFT ,如果可以,如何实现。
可以由 DFT 计算 DTFT ,序列补零后,长度越长,DFT 点越多,其 DFT 越逼近 DTFT 连续波形。
所以令序列补零至足够长时其 DFT 序列的波形与 DTFT 的波形在一定的分辨率下已经相同。
2、考察序列x(n)=cos(0.48πn)+cos(0.52πn)(1)0<=n<=10时,用DFT 估计x(n)的频谱;将x(n)补零加长到长度为100点序列用DFT 估计x(n)的频谱,要求画出相应波形。
(2)0<=n<=100时,用DFT 估计x(n)的频谱。
并画出波形。
(3)根据实验结果,分析怎样提高频谱分辨率解:(1)0<=n<=10时,用DFT 估计x(n)的频谱;将x(n)补零加长到长度为100点序列用DFT 估计x(n)的频谱,要求画出相应波形。
>> n=0:10;>> x=cos(0.48*pi.*n)+cos(0.52*pi.*n); >> Xk=fft(x); >> subplot(211);0102030405060701234010203040506070-2-1012>> stem(n,Xk,'filled');>> x=[cos(0.48*pi.*n)+cos(0.52*pi.*n) zeros(1,89)]; >> Xk=fft(x); >> subplot(212); >> stem(Xk,'filled');12345678910-2024680102030405060708090100-10-50510(2)0<=n<=100时,用DFT 估计x(n)的频谱。
并画出波形。
程序代码如下:>> n=0:100;>> x=cos(0.48*pi.*n)+cos(0.52*pi.*n); >> Xk=fft(x);>> stem(Xk,'filled'); >> axis tight;(3)根据实验结果,分析怎样提高频谱分辨率 可以通过如下三种方式来增加分辨率。
a 、增加时域内信号采样时间 b 、提高采样频率 c 、补零3、已知信号x(t)=0.15sin(2πf 1t)+sin(2πf 2t)-0.1sin(2πf 3t),其f1=1Hz,f2=2Hz,f3=3Hz 。
从x(t)的表达式可以看出,它包含三个频率的正弦波,但是,从其时域波形来看,似乎是一个正弦信号,利用DFT 做频谱分析,确定适合的参数,使得到的频谱的频率分辨率符合需要。
102030405060708090100-30-20-10102030n=0:10;x=0.15*sin(2*pi.*n)+sin(4*pi.*n)-0.1*sin(6*pi.*n);Xk=fft(x);stem(abs(Xk),'filled');n=0:100;x=0.15*sin(0.2*pi.*n)+sin(0.4*pi.*n)-0.1*sin(0.6*pi.*n); Xk=fft(x);stem(abs(Xk),'filled');n=0:200;x=0.15*sin(0.1*pi.*n)+sin(0.2*pi.*n)-0.1*sin(0.3*pi.*n); Xk=fft(x);stem(abs(Xk),'filled');结果分析:上图为x(t)信号截取过后的连续时间信号的傅里叶变换幅频特性曲线,截取周期为100s (即为采样时间M ),根据 (j )k X Mc Ω= 的特点,知1hz 处的幅值为 0.15(j2*1)1007.52X π=⨯= , (j2*2)5X π=,(j2*3)50X π=与图像相符。