《数字信号处理》上机实习报告6.docx

上传人:b****2 文档编号:2209041 上传时间:2022-10-27 格式:DOCX 页数:36 大小:646.01KB
下载 相关 举报
《数字信号处理》上机实习报告6.docx_第1页
第1页 / 共36页
《数字信号处理》上机实习报告6.docx_第2页
第2页 / 共36页
《数字信号处理》上机实习报告6.docx_第3页
第3页 / 共36页
《数字信号处理》上机实习报告6.docx_第4页
第4页 / 共36页
《数字信号处理》上机实习报告6.docx_第5页
第5页 / 共36页
点击查看更多>>
下载资源
资源描述

《数字信号处理》上机实习报告6.docx

《《数字信号处理》上机实习报告6.docx》由会员分享,可在线阅读,更多相关《《数字信号处理》上机实习报告6.docx(36页珍藏版)》请在冰豆网上搜索。

《数字信号处理》上机实习报告6.docx

《数字信号处理》上机实习报告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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1