资源描述:
《数字信号处理实验归纳总结报告一.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、武汉工程大学数字信号处理实验报告姓名:周权学号:1204140228班级:通信工程02一、实验设备计算机,MATLAB语言环境。二、实验基础理论1.序列的相关概念2.常见序列3.序列的基本运算4.离散傅里叶变换的相关概念5.Z变换的相关概念三、实验内容与步骤1.离散时间信号(序列)的产生利用MATLAB语言编程产生和绘制单位样值信号、单位阶跃序列、指数序列、正弦序列及随机离散信号的波形表示。四实验目的认识常用的各种信号,理解其数字表达式和波形表示,掌握在计算机中生成及绘制数字信号波形的方法,掌握序列的简单运算及计算机实现
2、与作用,理解离散时间傅里叶变换,Z变换及它们的性质和信号的频域分实验一离散时间信号(序列)的产生代码一单位样值x=2;y=1;stem(x,y);title('单位样值')单位阶跃序列n0=0;n1=-10;n2=10;n=[n1:n2];x=[(n-n0)>=0];stem(n,x);xlabel('n');ylabel('x{n}');title('单位阶跃序列');实指数序列n=[0:10];x=(0.5).^n;stem(n,x);xlabel('n');ylabel('x{n}');title('实指数序列')
3、;正弦序列n=[-100:100];x=2*sin(0.05*pi*n);stem(n,x);xlabel('n');ylabel('x{n}');title('正弦序列');随机序列n=[1:10];x=rand(1,10);subplot(221);stem(n,x);xlabel('n');ylabel('x{n}');title('随机序列');实验二序列的运算(1)利用MATLAB语言编程实现信号平滑运算。(2)利用MATLAB语言编程实现信号的调制。(3)利用MATLAB语言编程实现信号卷积运算。(4)利用M
4、ATLAB语言编程实现信号离散傅立叶的正反变换。利用MATLAB语言编程实现信号的圆周移位、圆周卷积,验证DFT的圆周时移、圆周卷积性质和圆周卷积与线性卷积的关系。验证一个周期实序列奇偶部分的DFT与此序列本身的DFT之间的关系。实验二序列的运算平滑运算r=51;d=0.8*(rand(r,1)-0.5);m=0:r-1;s=2*m.*(0.9.^m);x=s+d';subplot(2,1,1);plot(m,d','r-',m,s,'g--',m,x,'b-.');xlabel('Timeindexn');ylabel
5、('Amplitude');legend('d[n]','s[n]','x[n]');x1=[00x];x2=[0x0];x3=[x00];y=(x1+x2+x3)/3;subplot(2,1,2);plot(m,y(2:r+1),'r-',m,s,'g--');legend('y[n]','s[n]');xlabel('Timeindexn');ylabel('Amplitude');调制程序Fm=10;Fc=100;Fs=500;k=0:199;t=k/Fs;x=sin(2*pi*Fm*t);y=x.*cos(2*p
6、i*Fc*t);X=fft(x,256);Y=fft(y,256);subplot(2,2,1);plot(x);xlabel('t(s)');ylabel('x');title('±»µ÷ÐźÅ');subplot(2,2,2);plot(X);plot([-128:127],fftshift(abs(X)));xlabel('w');ylabel('X(jw)');title('xx');subplot(2,2,3);plot(y);xlabel('t(s)');ylabel('y');title('xy');su
7、bplot(2,2,4);plot(Y);plot([-128:127],fftshift(abs(Y)));xlabel('w');ylabel('Y(jw)');title('yy');卷积M函数function[y,ny]=conv_m(x,nx,h,nh)nyb=nx(1)+nh(1);nye=nx(length(x))+nh(length(h));ny=[nyb:nye];y=conv(x,h);卷积程序x=[00.511.50];nx=0:4;h=[111100];nh=0:4;[y,ny]=conv_m(x
8、,nx,h,nh);subplot(2,2,1);stem(nx,x);title('xuliex');xlabel('n');ylabel('x(n)');subplot(2,2,2);stem(nh,h);title('xulieh');xlabel('n');ylabel('h(n)');subplot(2,2