收藏 分销(赏)

13071089王要山--数字信号处理实验报告.docx

上传人:精**** 文档编号:9708809 上传时间:2025-04-04 格式:DOCX 页数:40 大小:3.08MB 下载积分:12 金币
下载 相关 举报
13071089王要山--数字信号处理实验报告.docx_第1页
第1页 / 共40页
13071089王要山--数字信号处理实验报告.docx_第2页
第2页 / 共40页


点击查看更多>>
资源描述
武 汉 学 院 实 验 报 告 实 验课名称: 数字信号处理 学 生 姓 名: 王要山 专 业 班 级: 信息1302 学 号: 13071089 开 课 时 间: 2016.3.4 教务处 制 《数字信号处理》实验报告 实验序号:02     实验项目名称:离散时间信号与系统 学 号 13071089 姓  名 王要山 专业、班级 软件工程(电子信息工程)1302 实验地点 计—201 指导教师 李承 时 间 2016.4.1 一、实验目的及要求 通过本次实验,熟练掌握运用Matlab进行离散时间信号的表示,加深对常用离散信号的理解;并且能够独立运行,完整的完成实验内容。 二、实验设备(环境)及要求 CPU :P4 3.30GHZ 内存:3.40G 操作系统:WINDOWS XP 版本2002 SP3 软件:MATLAB R2009b 三、 实验原理 1. 单位抽样序列 在MATLAB中可以利用zeros()函数实现。 或 如果在时间轴上延迟了k个单位,得到即: 2. 单位阶跃序列 在MATLAB中可以利用ones()函数实现。 3. 正弦序列 在MATLAB中 4. 复正弦序列 在MATLAB中 5. 实指数序列 在MATLAB中 四、实验步骤 1. 产生64点的单位抽样序列δ(n)、64点并移位20位的单位抽样序列δ(n-20) 程序: N=64; x=zeros(1,N); x(1)=1; n=0:N-1; stem(n,x) figure(1); stem(n,x);xlabel('单位抽样序列') axis([-1 65 0 1.1]) N=64; k=20; x=zeros(1,N); x(k+1)=1; n=0:N-1; figure(2); stem(n,x);xlabel('移位20位的单位抽样序列') axis([-1 65 0 1.1]) 实验结果: 2. 产生任意序列f(n)=8.0δ(n)+3.4δ(n-1)+1.8δ(n-2) +5.6δ(n-3)+ 2.9δ(n-4)+0.7δ(n-5)。 程序: N=8; x=zeros(1,N); x(1)=8.0; x(2)=3.4; x(3)=1.8; x(4)=5.6; x(5)=2.9; x(6)=0.7; n=0:N-1; stem(n,x);xlabel('任意序列f(n)') axis([-1 8 0 8.2]) 实验结果: 3. 产生N=32点的单位阶跃序列及斜率为3,n0=4,点数为32点的斜坡序列g(n)=B(n-n0) 程序: N=32; x=ones(1,N); n=0:N-1; stem(n,x);xlabel('单位阶跃序列') axis([-1 32 0 1.1]) clear all; N=32; k=4; B=3; t0=1; x=[zeros(1,k) ones(1,N-k)]; for i=1:N x(i)=B*x(i)*(i-k); end n=0:N-1; stem(n,x);xlabel('斜坡序列') axis([-1 32 0 90]) 4. 产生幅度A=3,频率f=100,初始相位=1.2,点数为32点的正弦序列。 程序: clear all; N=32; A=3; f=100; fai=1.2; n=0:N-1; x=A*sin(2*pi*f*(n/N)+fai); stem(n,x);xlabel('正弦序列') axis([-1 32 -3.2 3.2]) 实验结果: 5. 产生幅度A=3,a=0.7,点数为32点的实指数序列。 程序: clear all; N=32; A=3; a=0.7; n=0:N-1; x=A*a.^n; stem(n,x);xlabel('实指数序列') axis([-1 32 0 3.2]) 实验结果: 五、实验要求 (1)熟悉MATLAB软件,预先阅读前面章节中有关预备知识。 (2)根据实验内容,编写实验程序,上机运行;并进行结果验证,如有不同,查找原因,解决问题。 六、实验报告要求 (1)说明实验步骤; (2)给出原程序; (3)给出运行结果; (4)说明实验上机体会。 教师评语: 签名: 日期: 成绩 40 / 40 《数字信号处理》实验报告 实验序号:04      实验项目名称:相关的MATLAB命令及应用 学 号 13071089 姓  名 王要山 专业、班级 电子信息工程方向 实验地点 计—302 指导教师 李承 时 间 2016.4.15 一、 实验目的 1. 学会运用MATLAB求离散时间信号的z变换和z反变换; 2. 掌握z变换与z反变换的的MATLAB实现; 二、实验内容 编制程序完成相关z变换与z反变换。 三、实验原理 1.利用MATLAB实现z域的部分分式展开式 MATLAB的信号处理工具箱提供了一个对进行部分分式展开的函数residuez(),其调用形式为: [r,p,k]=residuez(num,den) 式中,num和den分别为的分子多项式和分母多项式的系数向量,为部分分式的系数向量,p为极点向量,k为多项式的系数向量。 2.Z变换和Z反变换 MATLAB的符号数学工具箱提供了计算Z变换的函数ztrans()和Z反变换的函数iztrans(),其调用形式为 上面两式中,右端的和分别为时域表示式和域表示式的符号表示,可应用函数sym来实现,其调用格式为 式中,A为待分析的表示式的字符串,S为符号化的数字或变量。 例1 求指数序列的Z变换; 解:(1)Z变换的MATLAB程序 % Z变换的程序实现 f=sym('a^n'); F=ztrans(f) 程序运行结果为: z/a/(z/a-1) 可以用simplify( )化简得到 : -z/(-z+a) 例2 求的Z反变换。 解 Z反变换的MATLAB程序 % Z反变换实现程序 F=sym('a*z/(z-a)^2'); f=iztrans(F) 程序运行结果为 f = a^n*n 四、实验步骤 题1、试用ztrans函数求下列函数的z变换。 (1); MATLAB程序: x=sym('a^n*cos(pi*n)'); Z=ztrans(x); simplify(Z) ans = z/(a + z) (2)。 MATLAB程序: x=sym('2^(n-1)-(-2)^(n-1)'); Z=ztrans(x); simplify(Z) ans = 4/(z^2 - 4) + 1 题2、 试用iztrans函数求下列函数的z反变换。 (1) MATLAB程序: syms z F=(8*z-19)/(z^2-5*z+6); iztrans(F) ans = (3*2^n)/2 + (5*3^n)/3 - (19*kroneckerDelta(n, 0))/6 反变换后的函数形式为: x(n)=[-19/6δ(n)+ (3*2^n)/2 + (5*3^n)/3]u(n) (2) MATLAB程序: Z=sym('z*(2*z^2-11*z+12)/(z-1)/(z-2)^3'); x=iztrans(Z); simplify(x) ans = 3*2^n - (2^n*n)/4 - (2^n*n^2)/4 – 3 题3、试用MATLAB命令对函数进行部分分式展开。 MATLAB程序为: b=[18]; a=[18,3,-4,-1]; [R,P,K]=residuez(b,a) R = 0.3600 0.2400 0.4000 P = 0.5000 -0.3333 -0.3333 K = [] 运行结果可知,p2=p3,表示系统有一个二重极点。所以,X(z)的部分展开式为:x(n)=[0.36*0.5^n+0.24*(-0.3333)^n+0.4(n+1)(-0.3333)^n]u(n) 五、实验要求 (1)MATLAB编程(存成m文件形式)完成z变换与z反变换; (2)运行程序,给出运行结果; (3)写出z变换或z反变换结果。 六、教师评语: 签名: 日期: 成绩 《 数字信号处理 》实验报告 实验序号:08  实验项目名称:线性卷积与圆周(循环)卷积的计算 学  号 13071089 姓  名 王要山 专业、班级 信息1302 实验地点 计算机-201 指导教师 李承 时 间 2016-5-13 一、 实验目的及要求 (1) 进一步加深对线性卷积的理解和分析能力; (2) 通过编程,上机调试程序,进一步增强使用计算机解决问题的能力; (3) 掌握线性卷积与圆周卷积软件实现的方法,并验证二者之间的关系。 二、 实验设备(环境)及要求 三、 了解MATLAB软件基本操作,熟悉基本计算和绘图功能。 2配有windows XP及上机操作系统,安装MATLAB软件的完整版 四、 环境要求 使用电脑硬件设备,在MATLAB工作环境。 五、 实验内容与步骤 对于无限长序列不能用MATLAB直接计算线性卷积,在MATLAB内部只提供了一个conv函数计算两个有限长序列的线性卷积。对于循环卷积MATLAB内部没有提供现成的函数,我们可以按照定义式直接编程计算。 题:已知两序列: 编程序求它们的线性卷积yl(n)=h(n)*x(n)和N点的循环卷积yc=[h(n)* x(n)]N,(做圆周卷积时分别取N=8,11,16;),绘出计算结果图,并研究两者之间的关系。 程序代码: >> clear; clc; figure(1); n1=0:11; x=0.8.^n1; n2=0:5; h=ones(1,6); y=conv(x,h); ny=[0:1:length(y)-1]; subplot(311);stem(n1,x,'.');axis([0 10 0 1]);title('序列x(n)');grid; subplot(312);stem(n2,h,'.');axis([0 10 0 1]);title('序列h(n)');grid; subplot(313);stem(ny,y,'.');axis([0 10 0 5]);title('线性卷积后的序列');grid; figure(2); N=8; x1=[x zeros(1,N-length(x))]; h1=[h zeros(1,N-length(h))]; y1=conv(x1,h1); z1=[zeros(1,N) y1(1:(N-1))]; z2=[y1((N+1):(2*N-1)) zeros(1,N)]; z=z1(1:(2*N-1))+z2(1:(2*N-1))+y1(1:(2*N-1)); y2=z(1:N); subplot(311);stem((0:N-1),y2,'.');axis([0 12 0 7]);title('N=8圆周卷积');grid; N=11; x1=[x zeros(1,N-length(x))]; h1=[h zeros(1,N-length(h))]; y1=conv(x1,h1); z1=[zeros(1,N) y1(1:(N-1))]; z2=[y1((N+1):(2*N-1)) zeros(1,N)]; z=z1(1:(2*N-1))+z2(1:(2*N-1))+y1(1:(2*N-1)); y2=z(1:N); subplot(312);stem((0:N-1),y2,'.');axis([0 12 0 7]);title('N=11圆周卷积');grid; N=16; x1=[x zeros(1,N-length(x))]; h1=[h zeros(1,N-length(h))]; y1=conv(x1,h1); z1=[zeros(1,N) y1(1:(N-1))]; z2=[y1((N+1):(2*N-1)) zeros(1,N)]; z=z1(1:(2*N-1))+z2(1:(2*N-1))+y1(1:(2*N-1)); y2=z(1:N); subplot(313);stem((0:N-1),y2,'.');axis([0 12 0 7]);title('N=16圆周卷积');grid; 运行结果: 1. 当有限长序列x(n)和h(n)的长度分别为N1,N2,取N>=max(N1,N2),当N》=N1+N2-1,则线性卷积与圆周卷积相同。 2. 两个有限长序列做L的圆周卷积,需要将两个序列补零,将其扩成长度为L的序列,得到一个新序列, 五、分析与讨论 通过本次实验,发现在实验过程中有很多的细节性问题。引起我的注意。知道了t与sin(t)之间的乘积需要点乘。还有在text(2.5,1.1,'曲线 y2=cos(2{\pi}x)')中的乘积不需要按照计算机里面的规则用*。 成绩 《 数字信号处理 》实验报告 实验序号:09   实验项目名称:FFT应用与频谱分析 学 号 13071089 姓  名 王要山 专业、班级 电子信息工程方向 实验地点 计—202 指导教师 李承 时 间 2016.5.27 二、 实验目的 (1)学习用FFT对连续信号和时域离散信号进行谱分析的方法; (2)了解可能出现的分析误差及其原因,以便正确应用FFT; (3)学习研究信号恢复并进行结果分析。 二、实验内容 (1)对分周期序列进行谱分析。 选择FFT的变换区间N为8和16 两种情况进行频谱分析。分别打印其幅频特性曲线。 并进行对比、分析和讨论。 (2)对周期序列进行谱分析。 选择FFT的变换区间N为8和16 两种情况分别对以上序列进行频谱分析。分别打印其幅频特性曲线。并进行对比、分析和讨论。 (3)对模拟周期信号进行谱分析 选择采样频率,分别选择N=16、32、64 三种情况进行谱分析,打印出其幅频特性,并进行分析和讨论。 (4)连续正弦信号FFT分析 Ø 用Matlab产生正弦波:y=sin20πt; Ø 采样频率fs=100Hs; Ø 进行FFT变换(N=128);绘出信号时序图、幅度铺; Ø 用IFFT傅立叶反变换恢复信号,并显示恢复的正弦信号时域波形图; Ø 分析采样产生的误差情况。 (5)连续方波信号FFT分析 Ø 用Matlab产生方波: ; Ø 采样频率fs=10Hs; Ø 进行FFT变换(点数自定),绘出信号时序图、幅度铺; Ø 用IFFT傅立叶反变换恢复信号,并显示恢复的正弦信号时域波形图; Ø 分析采样产生的误差情况。 三、实验原理 用FFT对信号作频谱分析是学习数字信号处理的重要内容。经常需要进行谱分析的信号是模拟信号和时域离散信号。对信号进行谱分析的重要问题是频谱分辨率D和分析误差。频谱分辨率直接和FFT的变换区间N有关,因为FFT能够实现的频率分辨率是,因此要求。可以根据此式选择FFT的变换区间N。误差主要来自于用FFT作频谱分析时,得到的是离散谱,而信号(周期信号除外)是连续谱,只有当N较大时离散谱的包络才能逼近于连续谱,因此N要适当选择大一些。 周期信号的频谱是离散谱,只有用整数倍周期的长度作FFT,得到的离散谱才能代表周期信号的频谱。如果不知道信号周期,可以尽量选择信号的观察时间长一些。 对模拟信号进行谱分析时,首先要按照采样定理将其变成时域离散信号。如果是模拟周期信号,也应该选取整数倍周期的长度,经过采样后形成周期序列,按照周期序列的谱分析进行。 四、实验步骤 MATLAB程序: (1)、 x1n=[ones(1,4)]; M=8; xa=1:(M/2); xb=(M/2):-1:1; x2n=[xa,xb]; x3n=[xb,xa]; X1k8=fft(x1n,8); X2k8=fft(x2n,8); X3k8=fft(x3n,8); X1k16=fft(x1n,16); X2k16=fft(x2n,16); X3k16=fft(x3n,16); stem(abs(X1k8),'r');hold on stem(abs(X2k8),'y');hold on stem(abs(X3k8),'b');hold off title('8点DFT');xlabel('ω/π');ylabel('幅度'); legend('8点DFT[x1(n)])','8点DFT[x2(n)]','8点DFT[x3(n)]'); figure stem(abs(X1k16),'r');hold on stem(abs(X2k16),'y');hold on stem(abs(X3k16),'b');hold off title('16点DFT');xlabel('ω/π');ylabel('幅度'); legend('16点DFT[x1(n)])','16点DFT[x2(n)]','16点DFT[x3(n)]') (2)、 N=8;n=0:N-1; x4n=cos(pi*n/4) ; x5n=cos(pi*n/4)+cos(pi*n/8) ; X4k8=fft(x4n) ; X5k8=fft(x5n) ; N=16;n=0:N -1; X4k16=fft(x4n) ; X5k16=fft(x5n) ; stem(abs(X4k8),'r');hold on stem(abs(X5k8),'b');hold off title('8点DFT');xlabel('ω/π');ylabel('幅度'); legend('8点DFT[x4(n)])','8点DFT[x5(n)]'); figure stem(abs(X4k16),'r');hold on stem(abs(X5k16),'r');hold off title('16点DFT');xlabel('ω/π');ylabel('幅度'); legend('16点DFT[x4(n)])','16点DFT[x5(n)]'); (3)、 Fs=64;T=1/Fs; N=16;n=0:N-1; x6nT=cos(8*pi*n*T)+cos(16*pi*n*T)+cos(20*pi*n*T); X6k16=fft(x6nT); X6k16=fftshift(X6k16); Tp=N*T ;F=1/Tp; k= 0:N-1;fk=k*F; subplot(3,1,1);stem(fk,abs(X6k16),'.'); box on title('(6a) 16点|DFT[x_6(nT)]|'); xlabel('f(Hz)'); ylabel('幅度'); axis( [0,N*F-1, 0,1.2*max(abs(X6k16))]) N=32 ;n=0:N-1; x6nT=cos(8*pi*n*T)+cos(16*pi*n*T)+cos(20*pi*n*T) ; X6k32=fft(x6nT) ; X6k32=fftshift(X6k32) ; Tp=N*T;F=1/Tp; k=0:N-1;fk=k*F; subplot(3,1,2);stem(fk,abs(X6k32),'.'); title('(6b) 32点|DFT [x_6(nT) ]|'); xlabel('f(Hz)') ;ylabel('幅度'); axis( [0, N*F-1,0, 1.2*max(abs(X6k32))]) N=64;n=0:N -1; x6nT=cos(8*pi*n*T)+cos(16*pi*n*T)+cos(20*pi*n*T) ; X6k64=fft(x6nT) ; X6k64=fftshift(X6k64) ; Tp=N*T ;F=1/Tp; k= 0:N-1;fk=k*F; subplot(3,1,3);stem(fk,abs(X6k64),'.'); title('(6a) 64点|DFT[x_6(nT) ]|'); xlabel('f(Hz)') ;ylabel('幅度'); axis([0,N*F-1,0, 1.2*max(abs(X6k64))]) (4)、 fs=100;%设定采样频率 N=128; n=0:N-1; t=n/fs; f0=10;%设定正弦信号频率 %生成正弦信号 x=sin(2*pi*f0*t); figure; plot(t,x);%作正弦信号的时域波形 xlabel('t'); ylabel('y'); title('正弦信号y=2*pi*10t时域波形'); grid; %进行FFT变换并做频谱图 y=fft(x,N);%进行fft变换 mag=abs(y);%求幅值 f=(0:length(y)-1)'*fs/length(y);%进行对应的频率转换 figure; plot(f,mag);%做频谱图 axis([0,100,0,80]); xlabel('频率(Hz)'); ylabel('幅值'); title('正弦信号y=2*pi*10t幅频谱图N=128'); grid; %用IFFT恢复原始信号 xifft=ifft(y); magx=real(xifft); ti=[0:length(xifft)-1]/fs; figure; plot(ti,magx); xlabel('t'); ylabel('y'); title('通过IFFT转换的正弦信号波形'); grid; (5)、 fs=10;%设定采样频率 t=-5:0.1:5; x=rectpuls(t,2); figure; plot(t,x);%作矩形波的时域波形 xlabel('t'); ylabel('y'); title('矩形波时域波形') grid; %进行FFT变换并做频谱图 y=fft(x);%进行fft变换 mag=abs(y);%求幅值 f=(0:length(y)-1)'*fs/length(y);%进行对应的频率转换 figure; plot(f,mag);%做频谱图 xlabel('频率(Hz)'); ylabel('幅值'); title('矩形波幅频谱图'); grid; %用IFFT恢复原始信号 xifft=ifft(y); magx=real(xifft); ti=[0:length(xifft)-1]/fs; figure; plot(ti,magx); xlabel('t'); ylabel('y'); title('通过IFFT转换的矩形波波形'); grid; 五、实验要求 (1) 完成各个实验任务和要求。 (2) 写出程序和运行结果。 (3) 简要回答思考题。 六、教师评语: 签名: 日期: 成绩
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服