数字信号处理实验报告一
- 格式:doc
- 大小:477.60 KB
- 文档页数:19
武汉工程大学
数字信号处理实验报告
姓名:周权
学号:1204140228
班级:通信工程02
一、实验设备
计算机,MATLAB语言环境。
二、实验基础理论
1.序列的相关概念
2.常见序列
3.序列的基本运算
4.离散傅里叶变换的相关概念
5.Z变换的相关概念
三、实验内容与步骤
1.离散时间信号(序列)的产生
利用MATLAB语言编程产生和绘制单位样值信号、单位阶跃序列、指数序列、正弦序列及随机离散信号的波形表示。
四实验目的
认识常用的各种信号,理解其数字表达式和波形表示,掌握在计算机中生成及绘制数字信号波形的方法,掌握序列的简单运算及计算机实现与作用,理解离散时间傅里叶变换,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('实指数序列');
正弦序列
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)利用MATLAB语言编程实现信号离散傅立叶的正反变换。利用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('Time index n');
ylabel('Amplitude');
legend('d[n]','s[n]','x[n]');
x1=[0 0 x]; x2=[0 x 0]; x3=[x 0 0];
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('Time index n');
ylabel('Amplitude');
调制程序
Fm=10;Fc=100;Fs=500;k=0:199;t=k/Fs;
x=sin(2*pi*Fm*t);y=x.*cos(2*pi*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');
subplot(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=[0 0.5 1 1.5 0];nx=0:4;
h=[1 1 1 10 0];nh=0:4;
[y,ny]=conv_m(x,nx,h,nh);
subplot(2,2,1);stem(nx,x);title('xulie x'); xlabel('n');ylabel('x(n)');
subplot(2,2,2);stem(nh,h);title('xulie h'); xlabel('n');ylabel('h(n)');
subplot(2,2,3);stem(ny,y);title('junji');
xlabel('n');ylabel('y(n)');