数字信号处理 实习大报告 15.docx
- 文档编号:29318161
- 上传时间:2023-07-22
- 格式:DOCX
- 页数:40
- 大小:534.99KB
数字信号处理 实习大报告 15.docx
《数字信号处理 实习大报告 15.docx》由会员分享,可在线阅读,更多相关《数字信号处理 实习大报告 15.docx(40页珍藏版)》请在冰豆网上搜索。
数字信号处理实习大报告15
数字信号实习上机实习报告
实习目的:
熟练掌握matlab,能够使用该软件完成一定的数字信号处理的任务,
并能从中有一定的领悟,达到应用和熟练的程度。
实习任务:
一、能够利用Matlab熟悉地画图,内容包括:
X、Y坐标轴上的label,每幅图上的title,绘画多条曲线时的legend,对图形进行适当的标注等。
(1)在一副图上画出多幅小图;
(2)画出一组二维图形;
(3)画出一组三维图形;(4)画出复数的实部与虚部。
(5)完成对一个源程序进行详细注释。
二、计算普通褶积与循环褶积,分别使用时间域与频率域两种方法进行正、反演计算,指出循环褶积计算时所存在的边界效应现象;编写一个做相关分析的源程序。
三、设计一个病态(矩阵)系统,分析其病态程度;找出对应的解决方法(提示:
添加白噪因子)。
四、设计一个一维滤波处理程序(1、分别做低通、高通、带通、带阻等理想滤波器进行处理;2、窗函数)。
五、设计一个二维滤波处理程序(分别做低通、高通等处理)。
六、验证时间域的循环褶积对应的是频率域的乘积;线性褶积则不然。
七、请用通俗、易懂的语言说明数字信号处理中的一种性质、一条定理或一个算例(顺便利用Matlab对其进行实现)。
实习时间:
2010年6月21日——2010年7月2日
实习地点:
润杰公寓五层机房
1.能够利用Matlab熟悉地画图,内容包括:
X、Y坐标轴上的label,每幅图上的title,绘画多条曲线时的legend,对图形进行适当的标注等。
(1)在一副图上画出多幅小图;
(2)画出一组二维图形;
(3)画出一组三维图形;(4)画出复数的实部与虚部。
(5)完成对一个源程序进行详细注释。
%在一副图上画出四幅图像
%%%%%%%%%%%%%%%%%%%%%%
clearall;
closeall;
t=-10:
0.1:
10;
subplot(2,2,1);
plot(t,sin(t));
axis([-5,5,-1.5,1.5]);
title('正弦曲线');
xlabel('x');
ylabel('y');
grid;
subplot(2,2,2);
plot(t,cos(t),'-r','LineWidth',2);
axis([-5,5,-1.5,1.5]);
title('余弦曲线');
xlabel('x');
ylabel('y');
grid;
subplot(2,2,3);
plot(t,tan(t),'-b','LineWidth',1);
axis([-5,5,-1.5,1.5]);
title('正切曲线');
xlabel('x');
ylabel('y');
subplot(2,2,4);
plot(t,rectpuls(t,2),'-r',t,sawtooth(t,1));
axis([-5,5,-1.5,1.5]);
title('三角脉冲和矩形脉冲');
xlabel('x');
ylabel('y');
Legend('rectpuls(t,2)','sawtooth(t,1)');
grid;
print-djpeg-r0Firstwork.jpeg;
运行结果:
(详情请参考文件Untitled1)
2)画出一组二维图形
figure
(2)
t=linspace(-6,6);
f1=t.^2;
f2=-t.^2;
plot(t,f1,'-k');
holdon;
plot(t,f2,':
r');
text(-2,20,'f1=t^2','FontSize',12,'FontWeight','bold');
text(-2,-20,'f2=-t^2','FontSize',12,'FontWeight','bold');
title('二维图')
print-djpeg-r02.jpeg
(详情请参考文件Untitled2)
做三维图:
x=linspace(0,4,30);%0到4之间取三十个点
y=linspace(0,5,30);%0到5之间取30个点
[xx,yy]=meshgrid(x,y);%作图
z1=sin(xx).*cos(yy);%z1函数
x=0:
0.2:
4;
y=x;
[xx,yy]=meshgrid(x,y);
z2=xx.^4+3*xx.^2-2*xx+6;%z2函数
x=0:
0.5:
6;
y=cos(x);
[xx,yy]=meshgrid(x,y);
r=sqrt(xx.^2+yy.^2)+eps;
z3=sin(r)/r;
subplot(2,2,1),mesh(z1);%画两行两列图(z1)
title('z1')
subplot(2,2,2),mesh(z2);
title('z2')
subplot(2,2,3),waterfall(z2);
title('z2')
subplot(2,2,4),mesh(z3);
(详情请参考文件Untitled3)
画复数实部虚部:
x=linspace(-10,10,20);
alpha=-0.2+0.5j;
y=exp(alpha*x);
subplot(2,1,1);stem(x,real(x),'r');holdon
subplot(2,1,2);stem(x,imag(x),'r');holdon
title('虚部');xlabel('x')
print-djpeg-r03.jpeg
运算结果如下:
(详情请参考文件Untitled4)
(5)完成对一个源程序进行详细注释。
以下为本人完成的一个小程序,对其进行详细注释:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%验证DFT的线性性质
%DFT[alpha*x1(n)+beta*x2(n)]=alpha*DFT[x1(n)]+betaDFT[x2(n)]
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
N=100;%N为采样点
t=linspace(0,6,N);
x1=sin(3*pi.*t);%x1为信号1的离散采样序列
x1=x1';
x2=cos(0.4*pi.*t-pi/4);%x2为信号2的离散采样序列
x2=x2';
alpha=0.3;%alpha为线性系数
beta=0.7;%beta为线性系数
w=exp(-sqrt(-1)*2*pi/N);%构造DFT计算的F矩阵
F=zeros(N);%F为系数矩阵
fori=1:
N
forj=1:
N
F(i,j)=power(w,(i-1)*(j-1));%power是矩阵幂运算函数,F的元素为%w^((i-1)*(j-1))
end
end
X1=F*(alpha*x1+beta*x2);
%X3=fft(alpha*x1+beta*x2);%引注的这两句用于验证DFT可以用函数fft实现
%d1=max(X1-X3);
X2=alpha*F*x1+beta*F*x2;
d=abs(max(X1-X2))%d的值趋近于0,说明该性质成立
二、计算普通褶积与循环褶积,分别使用时间域与频率域两种方法进行正、反演计算,指出循环褶积计算时所存在的边界效应现象;编写一个做相关分析的源程序。
线性褶积:
x=[12345678]';
y=[12345]';
N1=length(x)
N2=length(y)
N=N1+N2-1;
Fxy1=zeros(N,1);
FN=zeros(N,N2);
form=1:
N2
forn=m:
m+N1-1
FN(n,m)=x(n-m+1);
end
end
Fxy1=FN*y
Fxy2=conv(x,y)
运行结果:
N1=
8
N2=
5
Fxy1=
1
4
10
20
35
50
65
80
86
82
67
40
Fxy2=
1
4
10
20
35
50
65
80
86
82
67
40
(详情请参考文件Untitled5)
循环褶积:
x=[12345678]';
y=[12345]';
X=fft(x,15)
Y=fft(y,15)
Z=X.*Y
z=real(ifft(Z));
运行结果:
X=
36.0000
-10.9404-22.7937i
0.3694+9.3260i
-0.8090-7.9187i
0.3502+5.2687i
0-5.1962i
0.3090+4.3063i
0.2208-4.3260i
0.2208+4.3260i
0.3090-4.3063i
0+5.1962i
0.3502-5.2687i
-0.8090+7.9187i
0.3694-9.3260i
-10.9404+22.7937i
Y=
15.0000
5.5479-11.8197i
-6.1021-5.7814i
-2.5000+3.4410i
3.6603+0.4052i
0-3.4641i
-2.5000+0.8123i
1.8939+2.1690i
1.8939-2.1690i
-2.5000-0.8123i
0+3.4641i
3.6603-0.4052i
-2.5000-3.4410i
-6.1021+5.7814i
5.5479+11.8197i
Z=
1.0e+002*
5.4000
-3.3011+0.0286i
0.5166-0.5904i
0.2927+0.1701i
-0.0085+0.1943i
-0.1800
-0.0427-0.1051i
0.0980-0.0771i
0.0980+0.0771i
-0.0427+0.1051i
-0.1800
-0.0085-0.1943i
0.2927-0.1701i
0.5166+0.5904i
-3.3011-0.0286i
(详情请参考文件Untitled6)
%#########################################
%时间域做循环褶积
x=[12345678]';
y=[12345]';
N1=length(x);
N2=length(y);
N=N1+N2-1
x0=zeros([1,N])
y0=zeros([1,N])
y0(1:
N2)=y
x0(1:
N1)=x
T=zeros(N);
forj=1:
N
fori=1:
N
k=i+j-1;
ifk>N
k=k-N;
end
T(k,j)=y0(i);
end
end
T
Z=T*x0'
运行结果:
N=
12
x0=
000000000000
y0=
000000000000
y0=
123450000000
x0=
123456780000
T=
100000005432
210000000543
321000000054
432100000005
543210000000
054321000000
005432100000
000543210000
000054321000
000005432100
000000543210
000000054321
Z=
1
4
10
20
35
50
65
80
86
82
67
40
(详情请参考文件Untitled7)
%频率域方法
x=[12345678]';
y=[12345]';
Lx=length(x);
Ly=length(y);
N=Lx+Ly-1;
w=exp(-sqrt(-1)*2*pi/N);
x0=zeros(N,1);
y0=zeros(N,1);
x0(1:
Lx)=x;
y0(1:
Ly)=y;
F=zeros(N);
fori=1:
N
forj=1:
N
F(i,j)=power(w,(i-1)*(j-1));
end
end
X1=F*x0;
Y1=F*y0;
X1.*Y1
z=1/N*conj(F)*(X1.*Y1);
Zxy=[real(z)']
运行结果:
ans=
1.0e+002*
5.4000
-1.6048+1.8853i
-0.4800+0.1039i
-0.2000+0.0400i
-0.1800-0.0000i
-0.1152+0.0147i
-0.1200-0.0000i
-0.1152-0.0147i
-0.1800-0.0000i
-0.2000-0.0400i
-0.4800-0.1039i
-1.6048-1.8853i
Zxy=
1.00004.000010.000020.000035.000050.000065.000080.000086.000082.000067.000040.0000
(详情请参考文件Untitled8)
%##########################################
%边界条件
x=[12345678]';
y=[12345]';
N1=length£¨x£©
N2=length£¨y£©
X=fft(x,N)
Y=fft(y,N)
Z=X.*Y
z=ifft(Z)
%其中z的取值与N有关当N的边界值为N1+N2-1
%故不作结果分析了
%##########################################
%相关分析
x=[12345678]';
y=[12345]';
Nx=length(x);
Ny=length(y);
Nx=length(x);
Ny=length(y);
N=max(length(x),length(y));
x0=zeros([1,N])
y0=zeros([1,N])
x0(1:
Nx)=x
y0(1:
Ny)=y
M=zeros(N)
size(M)
forq=1:
N
forp=1:
N
if(q+p)<=(N+1)%Èç¹ûq+p<=(N+1)M(q,p)=x0(q+p-1)
M(q,p)=x0(q+p-1);
Else%ÆäÓàµÄM(q,p)=x0(p+q-N-1)
M(q,p)=x0(p+q-N-1);
end
end
end
M
Rxy=M*y0'
运行结果:
Rxy=
57
80
72
62
72
29
27
59
83
48
三、设计一个病态(矩阵)系统,分析其病态程度;找出对应的解决方法(提示:
添加白噪因子)。
程序:
A=[1221]';%定义AB两个列向量
B=[1234]';
N=length(A);%N等于A的长度
F=zeros(N);%定义F、AA、DD都为的全零方阵
AA=zeros(N);
DD=zeros(N);
w=exp(-sqrt(-1)*2*pi/N);%定义w因子
fori=1:
N
forj=1:
N
AA(i,j)=A(mod(i-j,N)+1);%用循环的方式列写A
F(i,j)=power(w,(i-1)*(j-1));
end
end
FA=F*A;%FA为A的频谱
FB=F*B;%FB为B的频谱
C0=AA*B;%C0A与B的褶积
C1=real(conj(F)/N*(FA.*FB));%用F因子的方法算A与B的褶积
C0-C1
FC=F*C0;%FC为C0的频谱
C_FA=conj(FA);%求取FA的共轭
FC2=C_FA.*FC;
FA2=C_FA.*FA+0.001;%添加一个很小的数以保证其频谱大于0
FX=FC2./FA2;
X=conj(F)*FX/N;
BX=inv(AA+0.001*eye(N))*C0;%添加白噪因子
BY=inv(AA)*C0;%无白噪因子
结果如下
BX=%添加白噪因子的结果
1.4996
1.4986
3.4996
3.5006
BY=%没有添加白噪因子,计算不出结果
Inf
Inf
Inf
Inf
四、设计一个一维滤波处理程序(1、分别做低通、高通、带通、带阻等理想滤波器进行处理)。
%#############################################
%低通
clear,randn('state',1)
ws=100;%设定采样频率
f=2*ws/10;%高频的频宽
t=0:
1/ws:
1;%采样间隔和长度
x=tan(10*pi*t)+5*sin(2*pi*t)+0.5*randn(size(t));%目的信号
figure
(2)
subplot(221)%画出原信号、频谱
plot(t,x)
title('给定时间域信号');
subplot(222);
X=fft(x);
plot(1:
length(X),X)
title('还原后信号');
X0=X
(1)%第一个为0频
Xe=X(2:
end);
X0=0
Xe(f:
length(Xe)-f)=0;%过滤高频成分
XX=[X0Xe];
subplot(223)
plot(1:
length(X),XX)%做出过滤高频以后的频谱
title('低通后频率');
xx=ifft(XX);%还原成时间域的信号
subplot(224)
plot(t,xx)
title('还原后信号');
%###############################################
%高通
clear,randn('state',1)
ws=100;
f=2*ws/10
t=0:
1/ws:
1;
x=tan(10*pi*t)+5*sin(2*pi*t)+0.5*randn(size(t));
figure
(1)
subplot(221)
plot(t,x)
title('给定时间域信号');
subplot(222);
X=fft(x);
plot(1:
length(X),X)
title('给定信号的频率');
X0=X
(1);
Xe=X(2:
end);
X0=0;
Xe(1:
f)=0;
Xe(length(Xe)-f:
end)=0;
XX=[X0Xe];
subplot(223)
plot(1:
length(X),XX)
title('高通后频率');
xx=ifft(XX);
subplot(224)
plot(t,xx)
title('还原后信号');
%############################################
%带通
clear,randn('state',1)
ws=100;
f=2*ws/10;
f1=4*ws/10;
f2=6*ws/10;
t=0:
1/ws:
1;
x=tan(10*pi*t)+5*sin(2*pi*t)+0.5*randn(size(t));
figure(3)
subplot(221)
plot(t,x)
title('给定时间域信号');
subplot(222);
X=fft(x);
plot(1:
length(X),X)
title('给定信号的频率');
X0=X
(1);
Xe=X(2:
end);
Xe(1:
f)=0;
Xe(f1:
f2)=0;
Xe(length(Xe)-f:
end)=0;
XX=[X0Xe];
subplot(223)
plot(1:
length(X),XX)
title('带通后频率');
xx=ifft(XX);
subplot(224)
plot(t,xx)
title('还原后信号');
%###############################################
%带阻
clear,randn('state',1)
ws=100;
f=2*ws/10;
f1=4*ws/10;
f2=6*ws/10;
t=0:
1/ws:
1;
x=tan(10*pi*t)+5*sin(2*pi*t)+0.5*randn(size(t));
figure(4)
subplot(221)
plot(t,x)
title('给定时间域信号');
subplot(222);
X=fft(x);
plot(1:
length(X),X)
title('给定信号的频率');
X0=X
(1);
Xe=X(2:
end);
Xe(f:
f1)=0;
Xe(f2:
length(Xe)-f)=0;
XX=[X0Xe];
subplot(223)
plot(1:
length(X),XX)
title('带阻后频率');
xx=ifft(XX);
subplot(224)
plot(t,xx)
title('还原后信号');
五、设计一个二维滤波处理程序(分别做低通、高通等处理)。
clearall
fa=15;fb=17;fc=25;%假设f fo=15;fp=17;fq=25;%
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字信号处理 实习大报告 15 数字信号 处理 实习 大报