《数字信号处理》上机实习报告6.docx
- 文档编号:2209041
- 上传时间:2022-10-27
- 格式:DOCX
- 页数:36
- 大小:646.01KB
《数字信号处理》上机实习报告6.docx
《《数字信号处理》上机实习报告6.docx》由会员分享,可在线阅读,更多相关《《数字信号处理》上机实习报告6.docx(36页珍藏版)》请在冰豆网上搜索。
《数字信号处理》上机实习报告6
计算机编程与数字信号处理实习报告
实习日记
1.6月21日,了解matlab基本使用方法,学习基本编程命令。
2.6月22日,编写实习要求第一题,观察gibbs现象。
3.6月23日,编写实习第二题,matlab基本程序编写。
4.6月24日,着手编写程序计算普通褶积和循环褶积的时间域和频率域。
未完待续。
5.6月25日,编写程序,了解循环褶积的边界效应做相关分析的程序。
编程了解滤波器方法,及高中低频问题。
6.6月26日、6月27日,放假啦!
在寝室里休息~。
~
7.6月28日,编写一维滤波器的程序,初步了解二维滤波器。
8.6月29日,编写出一种二维滤波器。
9.6月30日,编写出第七题的题目。
10.7月3日,编写完成第八题,完成实验报告。
实习过程,分析,结果
一、从给定的程序(文件包Friday.rar)中,选择一个源程序做详细标注。
(目的:
熟悉Matlab程序)
程序名:
DSP1.m
程序思路:
学习matlab基础程序
二、能够利用Matlab熟悉地画图,内容包括:
X、Y坐标轴上的label,每幅图上的title,绘画多条曲线时的legend,对图形进行适当的标注等。
(1)在一副图上画出多幅小图;
(2)画出一组二维图形;
(3)画出一组三维图形;(4)画出复数的实部与虚部。
(5)完成对一个源程序进行详细注释。
(一)源程序为:
clearall;
closeall;
t=-5:
0.1:
5;
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;
程序名为DSP2-1.m
运行结果:
(二)源程序为:
clearall;
closeall;
t=-10:
0.2:
10;
title('a');
xlabel('x');
ylabel('y');
grid;
subplot(2,2,3);
plot(t,tan(t),'-b','LineWidth',1);
程序名为DSP2-2
运行结果:
(三)源程序为:
closeall;
clearall;
[x,y]=meshgrid(-4:
0.1:
4);
figure
(1);
z=peaks(x,y);
mesh(x,y,z);
axis([-4,4,-4,4,-5,5]);
hiddenoff;
print-djpeg-r0Firstwork1.jpeg;
程序名为DSP2-3.m
运行结果:
(四)源程序:
b=3+4i;
compass(b);
print-djpeg-r0Firstwork2.jpeg
程序名为DSP2-4.m
运行结果:
(五)
closeall;
clearall;
%%%%%%%%%%%%%%产生网孔%%%%%%%%%%%%%%%%
[x,y]=meshgrid(-4:
0.1:
4);
figure
(1);
z=peaks(x,y);
%%%%%%%%%%画出立体图像%%%%%%%%%%%%%%%%
mesh(x,y,z);
axis([-4,4,-4,4,-5,5]);
hiddenoff;
%%%%%%%%%%%保存图像%%%%%%%%%%%%%%%%%%%
print-djpeg-r0Firstwork1.jpeg;
%%%%%%%%画出具有下方轮廓线的图像%%%%%%%
三、计算普通褶积与循环褶积,分别使用时间域与频率域两种方法进行正、反演计算,指出循环褶积计算时所存在的边界效应现象;编写一个做相关分析的源程序。
一
(1)在时间域计算线性褶积
程序名:
DSP3-1.m
当两信号分别为x=[1234]',y=[456]'时,利用matlab中conv命令求得的线性褶积
xy0=yx0=[41328433824]’,利用下面线性褶积公式:
求得的线性褶积结果为xy1=[41328433824]’,与matlab中自带命令所求结果
一致。
程序:
x=[1234]';
y=[456]';
%%%%%%%%%%%%%%%%%%%%%%%%利用conv求线性褶积
xy0=conv(x,y);
yx0=conv(y,x);
xy0-yx0;%利用matlab中conv命令验证线性褶积具有交换性
%%%%%%%%%%%%%%%%%%%线性褶积:
利用自己编写的程序进行计算。
N1=length(x);
N2=length(y);
NN=N1+N2-1;
F=zeros(NN,N2);
forj=1:
N2
fori=j:
j+N1-1
F(i,j)=x(i-j+1);
end
end
xy1=F*y;%利用公式编写程序计算出来的线性褶积结果
xy0-xy1;
yx0-xy1;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
(2)在时间域正演计算循环褶积
利用如下循环褶积公式:
求得的循环褶积结果为列向量xy2=yx2=[41328433824]’,该段程序如下:
x1=zeros(NN,1);
y1=zeros(NN,1);
x1(1:
N1)=x;
y1(1:
N2)=y;
forj=1:
NN
fori=1:
NN
s=i+j-1;
ifs>NN
s=s-NN;
end
S1(s,j)=x1(i);
S2(s,j)=y1(i);
end
end
xy2=S1*y1;%利用公式编写程序计算出来的循环褶积结果
yx2=S2*x1;%可验证循环褶积是否具有交换性
(3)在频率域反演计算循环褶积
分别对两向量信号做fft变换求频谱,将其频谱相乘,再做ifft反变换得到循环褶积为
Z1=[41328433824]’,该段程序如下:
x1=zeros(NN,1);
y1=zeros(NN,1);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%频率域计算循环褶积
X1=fft(x1);%信号x1的频谱
Y1=fft(y1);%信号y1的频谱
XY3=X1.*Y1;%两信号频谱乘积
Z1=ifft(XY3)%由两频谱相乘再反变换得到的信号
(4)验证循环褶积计算时所存在的边界效应现象
有上述计算可知,在频率域反演计算循环褶积所得结果等于线性褶积结果,
此时都是将两向量信号x,y扩展成长度length(x)+length(y)-1,当两信号程度小
于K Z2=[2813284338]’,与所求的线性褶积结果不同,故循环褶积的维度 在length(x)+length(y)-1处存在边界效应,大于等于该值时,循环褶积等于线性 褶积,小于该维度时二者不等,该段程序如下: %%%%%%%%%%%%%%%%%%%%检验边界效应, K=NN-1;%当维数N不同,N<=N1+N2-1时,计算线性褶积 x2=zeros(K,1);%扩展信号x2成K行一列的列向量 y2=zeros(K,1);%扩展信号y2成K行一列的列向量 x2(1: N1)=x;%构造的新信号包含前信号的内容 y2(1: N2)=y; X2=fft(x2);%信号x2频谱 Y2=fft(y2); XY2=X2.*Y2;%信号长度小于N1+N2-1时的两信号频谱乘积 Z2=ifft(XY2) %当维数N不同时,N〉=N1+N2-1时,线形褶积等于循环褶积;当N〈N1+N2-1时,线形褶积不等于循环褶积 二编写一个做相关分析的源程序 程序名: DSP3-2.m 做两信号的循环相关,得到相关值xy2=[32473833]’,yx2=[32333847]’, 该段程序如下: %%循环相关性 x=[1234]';%自己定义的信号 y=[456]'; N1=length(x);%信号长度 N2=length(y); K=max(N1,N2);%最长信号长度 x1=zeros(K,1);%将两信号长度扩展成最长信号长度 y1=zeros(K,1); x1(1: N1)=x; y1(1: N2)=y; S1=zeros(K,K);%定义循环相关系数矩阵 S2=zeros(K,K); forj=1: K fori=1: K ifi+j-1<=K S1(i,j)=x1(i+j-1);%求循环相关系数矩阵 S2(i,j)=y1(i+j-1); else S1(i,j)=x1(i+j-1-K); S2(i,j)=y1(i+j-1-K); end end end y2=conj(y1);%信号y2的共轭 x2=conj(x1); XY2=S1*y2%两信号的循环相关 YX2=S2*x2 四、设计一个病态(矩阵)系统,分析其病态程度;找出对应的解决方法(提示: 添加白噪因子)。 实习成果: 本题中设计的病态矩阵为A1(具体设计过程见程序),该病态矩阵的病态程度为RCOND=4.972710e-018,解决办法是添加K=0.001的白噪因子,经过添加白噪因子后对方程A1*X=B,即可解出唯一的、有意义的解。 结果: >inv(A1) Warning: Matrixisclosetosingularorbadlyscaled. Resultsmaybeinaccurate.RCOND=2.108638e-017. 求出的结果 X= 0.9000+0.0000i -0.0951+0.0000i -0.0809+0.0000i -0.0588+0.0000i -0.0309+0.0000i -0.0000+0.0000i 0.0309-0.0000i 0.0588-0.0000i 0.0809-0.0000i 0.0951-0.0000i 0.1000-0.0000i 0.0951-0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字信号处理 数字信号 处理 上机 实习 报告