搜档网
当前位置:搜档网 › 基于Matlab的数字信号处理课程设计课程报告

基于Matlab的数字信号处理课程设计课程报告

基于Matlab的数字信号处理课程设计课程报告
基于Matlab的数字信号处理课程设计课程报告

基于Matlab的数字信号处理课程设计

一、课程设计目的:

1.熟悉Matlab运行环境,熟练使用Matlab语言进行编程,进行数字信号处理。

2.全面复习数字信号课程所学理论知识,巩固所学知识重点和难点,将理论与实践很好地结合起来。

3.提高综合运用所学知识独立分析和解决问题的能力;

二、MATLAB简介

MATLAB是功能强大的科学及计算软件,它不但具有以矩阵计算为基础的强大数学计算和分析功能,而且还具有丰富的可视化图形表现功能和方便的程序设计能力。MATLAB的应用领域极为广泛,除了数学计算和分析外,还被广泛地应用于自动控制、系统仿真、数字信号处理、图形图像分析、数理统计、人工智能、虚拟现实技术、通信工程、金融系统等领域,因此,MATLAB是面向21世纪的计算机程序设计及科学计算语言。

三、MATLAB的主要组成部分

MATLAB系统包括5个主要部分:

(1)开发环境

MATLAB开发环境由一组工具和组件组成,这些工具是图形化的用户界面,包括MATLAB桌面和命令窗口、命令历史窗口、帮助信息浏览器、文件和搜索路径浏览器。

(2)MATLAB数学函数库

MATLAB集成了丰富的数学函数库,其强大的计算能力覆盖了从基本函数(如求和、正弦、余弦和复数运算等)到高级函数(如矩阵求逆、矩阵特征值、贝塞尔函数和快速傅立叶变换等)的范围。

(3)MATLAB语言

MATLAB语言是一种以矩阵运算为基础的高级语言,包括控制流的描述、函数、数据结构、输入输出及面向对象的编程环境,既可以编制快速使用小程序,也可以编制大型复杂的应用程序。

(4)图形功能

MATLAB提供了功能强大的图形系统,既可以用高级命令完成二维和三维数据的可视化、图像处理、动画和图形表达等功能,也可以通过使用图形句柄完成复杂的图形功能,实现对所有图形对象的操作。

(5)应用程序接口(API)

MATLAB还提供了应用程序接口库函数,允许用户使用C或FORTRAN语言编写程序与MATLAB连接,功能包括与MATLAB的动态连接、调用MATLAB作为运算引擎、读写MAT文件等。

MATLAB的广泛应用促进了其本身功能的迅速发展,以特定领域的应用为主要目的的应用程序——工具箱的数量和内容在不断增多。

四、利用Matlab熟悉画图(设计1)

1、设计内容:能够利用Matlab熟悉地画图,内容包括:X、Y坐标轴上的label,每幅图上的title,绘画多条曲线时的legend,对图形进行适当的标注等。

(1)在一副图上画出多幅小图;

(2)画出一组二维图形;

(3)画出一组三维图形;

(4)画出复数的实部与虚部。

1.实验结果:

(1)、在一副图上画出多幅小图;

010

20

304050

-0.5

0.5

(2) 、画出一组二维图形;

x

y

多条曲线绘制

(3) 、画出一组三维图形;

x

z=sin 2(x)/(3*y-2)

y

z

(4) 、画出复数的实部与虚部;

90

270

180

(5)、完成对一个源程序进行详细注释。(见程序)

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 能够利用Matlab 熟悉地画图,内容包括:X 、Y 坐标轴上的label ,

% 每幅图上的title,绘画多条曲线时的legend,对图形进行适当的标注等。% (1)在一副图上画出多幅小图;(2)画出一组二维图形;

% (3)画出一组三维图形;(4)画出复数的实部与虚部。

% (5)完成对一个源程序进行详细注释。%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

clear;

clc;

x=linspace(-pi,pi,200); % 定义x轴坐标

y1=sin(x); % 函数1

y2=cos(x); % 函数2

y3=exp(x); % 函数3

y4=sin(x).*cos(x); % 函数4

%%%%%%%%%%%%%%%%%%%%%%%%% 在一幅图上绘制多幅小图 %%%%%%%%%%%%%%%%%%%%%%%%%%%% figure(1)

subplot(221), % 图一

plot(x,y1); % 绘制y1

grid on; % 添加网格

% axis([min(x) max(x) min(y1) max(y1)]); % 指定显示范围

subplot(222), % 图二

hist(y2); % 绘制y2

grid on; % 添加网格

% axis([min(x) max(x) min(y2) max(y2)]); % 指定显示范围

subplot(223), % 图三

stem(x,y3); % 绘制y3

grid on; % 添加网格

% axis([min(x) max(x) min(y3) max(y3)]); % 指定显示范围

subplot(224), % 图四

plot(x,y4,'rp'); % 绘制y4

grid on; % 添加网格

% axis([min(x) max(x) min(y4) max(y4)]); % 指定显示范围

%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 画出一组二维图形 %%%%%%%%%%%%%%%%%%%%%%%%%%%%% figure(2)

a=linspace(0,2*pi,200);

k=[1,2,3];

y=sin(a')*k;

plot(a,y(:,1),a,y(:,2),a,y(:,3));

legend(['y= ',num2str(k(1)),'*sin(x)'],['y= ',num2str(k(2)),'*sin(x)']...

,['y= ',num2str(k(3)),'*sin(x)']);

xlabel('x');

ylabel('y');

title('多条曲线绘制');

grid on;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 画出一组三维图形 %%%%%%%%%%%%%%%%%%%%%%%%%%%% figure(3)

kk=30;

x=linspace(-5,5,kk);

y=linspace(-5,5,kk);

for i=1:kk

for j=1:kk

z(i,j)=sin(x(i))+cos(y(j));

end

end

surf(x,y,z);

xlabel('x');

ylabel('y');

zlabel('z');

title('z=sin^2(x)/(3*y-2)');

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 复数绘制 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% figure(4)

clear

kk=1:1:10;

for i=1:10

y(i)=sin(kk(i))+cos(kk(i))/kk(i)*j;

end

compass(y);

五、褶积的相关计算与编程(设计2)

1. 设计内容:计算普通褶积与循环褶积,分别使用时间域与频率域两种方法进

行正、反演计算,指出循环褶积计算时所存在的边界效应现象;编写一个做相关分析的源程序。

2. 实验成果:

(1)、构造如下两个向量:a=[1,2,3,4]; b=[9,8,7,6];

计算得到:

从计算结果可以看出,当循环次数小于N1+N2-1时,线性褶积和循环褶积不等,当循环次数大于等于N1+N2-1时,线性褶积和循环褶积相等。

(2)、构造两个向量:a=[1 2 3]; b=[1 2 3 5];

计算相关得到:频率域: [14 13 16 23]

时间域(6次): [14 8 3 5 13 23]

程序:

1、褶积

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% 计算普通褶积与循环褶积,分别使用时间域与频率域两种方法

% 进行正、反演计算,指出循环褶积计算时所存在的边界效应现象;

% 编写一个做相关分析的源程序。%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% 验证循环褶积和线性褶积在什么条件下相等%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% clc;

clear;

a=[1,2,3,4]; % a矩阵

b=[9,8,7,6]; % b矩阵%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

kk1=length(a);

kk2=length(b); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% 循环褶积时间域%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

xx=8; % 循环次数手动更改

aa=zeros(xx,1);

aa(1:kk1,1)=a'; % 扩展a

bb=zeros(xx,1);

bb(1:kk2,1)=b'; % 扩展b

bb1=zeros(xx,xx); % 循环矩阵

for i=1:xx

bb1(i:xx,i)=bb(1:xx-i+1);

bb1(1:i-1,i)=bb(xx-i+2:xx);

end

ok1=bb1*aa; % 循环褶积结果%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 线性褶积时间域%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% bb2=zeros(kk1+kk2-1,kk1);

for i=1:kk1

bb2(i:i+kk2-1,i)=b(1:kk2)';

end

an=a';

ok2=bb2*an; % 线性褶积结果%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 循环褶积频率域%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% af=fft(aa);

bf=fft(bb);

ok3=ifft(af.*bf);

2、相关%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 计算普通褶积与循环褶积,分别使用时间域与频率域两种方法进行

% 正、反演计算,指出循环褶积计算时所存在的边界效应现象;

% 编写一个做相关分析的源程序。%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 求两个一维数组的相关系数%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% clear;

clc;

a=[1 2 3]; % 数组a 较短时可以手动输入

b=[1 2 3 5]; % 数组b 较短时可以手动输入

% a=csvread('**.csv',0,0); % 数组a 较长时可以读取csv文件

% b=csvread('**.csv',0,0); % 数组a 较长时可以读取csv文件%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 频率域求相关%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% a2=zeros(1,max(length(a),length(b)));

b2=zeros(1,max(length(a),length(b)));

a2(1,1:length(a))=a;

b2(1,1:length(b))=b;

ffta=fft(a2);

fftb=fft(b2);

fftb=conj(fftb);

result=(ifft(ffta.*fftb))' % 频率域求相关结果%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% 时间域求相关%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% long=length(a)+length(b)-1;

aa=zeros(long,1);

bb=zeros(long,1);

aa(1:length(a),1)=a';

bb(1:length(b),1)=b';

temp=zeros(long);

for i=1:long

temp(1:long-i+1,i)=aa(i:long);

temp(long-i+2:long,i)=aa(1:i-1);

end

result2=temp*(bb) % 时间域求循环相关

六、设计一维滤波处理程序(设计3)

1. 实验内容:设计一个一维滤波处理程序(1、分别做低通、高通、带通、带阻

等理想滤波器进行处理;2、窗函数)

2. 实验结果:

(1)、一维信号理想滤波器

(2)、窗函数

程序:

3、一维理想滤波器%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 一维信号滤波器设计%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function varargout = num4_1lvbo(varargin)

% Begin initialization code - DO NOT EDIT

gui_Singleton = 1;

gui_State = struct('gui_Name', mfilename, ...

'gui_Singleton', gui_Singleton, ...

'gui_OpeningFcn', @num4_1lvbo_OpeningFcn, ...

'gui_OutputFcn', @num4_1lvbo_OutputFcn, ...

'gui_LayoutFcn', [] , ...

'gui_Callback', []);

if nargin && ischar(varargin{1})

gui_State.gui_Callback = str2func(varargin{1});

end

if nargout

[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});

else

gui_mainfcn(gui_State, varargin{:});

end

function num4_1lvbo_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObject;

guidata(hObject, handles);

function varargout = num4_1lvbo_OutputFcn(hObject, eventdata, handles) varargout{1} = handles.output; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 全局变量说明%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % yuchu 用于存放信号FFT变换结果

% long 用于存放信号长度

% ys 用于存放原始信号%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 读取原始信号并进行预处理%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function bt_read_Callback(hObject, eventdata, handles)

[FileName,PathName] = uigetfile('*.csv')

global ys

ys=csvread(FileName);

axes(handles.wave_ys);

plot(ys(:,1),ys(:,2));

grid on;

axis([min(ys(:,1)) max(ys(:,1)) min(ys(:,2))*3/2 max(ys(:,2))*3/2]);

global yuchu

yuchu=fft(ys(:,2));

global long

long=length(ys(:,2)); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 低通滤波%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function bt_dt_Callback(hObject, eventdata, handles)

global yuchu long ys

f1=str2double(get(handles.input_f1,'string'));

for i=1:long

if i<=(fix(long/2)+1)*f1 || i>=(fix(long/2)+1)-(fix(long/2)+1)*f1+... (fix(long/2)+1)

dt(i)=yuchu(i);

else

dt(i)=0;

end

end

ok=ifft(dt);

axes(handles.wave_dt);

plot(ys(:,1),ok);

grid on; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 高通滤波%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function bt_gt_Callback(hObject, eventdata, handles)

global yuchu long ys

f1=str2double(get(handles.input_f1,'string'));

for i=1:long

if i<=(fix(long/2)+1)*f1 || i>=(fix(long/2)+1)-(fix(long/2)+1)*f1+... (fix(long/2)+1)

gt(i)=0;

else

gt(i)=yuchu(i);

end

end

ok=ifft(gt);

axes(handles.wave_gt);

plot(ys(:,1),ok);

grid on; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 带阻滤波

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function bt_dz_Callback(hObject, eventdata, handles)

global yuchu long ys

f1=str2double(get(handles.input_f1,'string'));

f2=str2double(get(handles.input_f2,'string'));

for i=1:long

if (i>=(fix(long/2)+1)*f1 && i<=(fix(long/2)+1)*f2) || ...

(i<=(fix(long/2)+1)-(fix(long/2)+1)*f1+(fix(long/2)+1)...

&& i>=(fix(long/2)+1)-(fix(long/2)+1)*f2+(fix(long/2)+1))

dz(i)=0;

else

dz(i)=yuchu(i);

end

end

ok=ifft(dz);

axes(handles.wave_dz);

plot(ys(:,1),ok);

grid on; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 带通滤波%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function bt_dat_Callback(hObject, eventdata, handles)

global yuchu long ys

f1=str2double(get(handles.input_f1,'string'));

f2=str2double(get(handles.input_f2,'string'));

for i=1:long

if (i>=(fix(long/2)+1)*f1 && i<=(fix(long/2)+1)*f2) || ...

(i<=(fix(long/2)+1)-(fix(long/2)+1)*f1+(fix(long/2)+1)...

&& i>=(fix(long/2)+1)-(fix(long/2)+1)*f2+(fix(long/2)+1))

dz(i)=yuchu(i);

else

dz(i)=0;

end

end

ok=ifft(dz);

axes(handles.wave_dat);

plot(ys(:,1),ok);

grid on;

4、窗函数

function varargout = num4_windows(varargin) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 本程序用于对一维信号进行窗函数滤波

% 其中,f1、f2、f3、f4依次为

% 带通滤波镶边后的四个频率

% 为了使滤波效果较好,建议使 f1-f2=f3-f4 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% gui_Singleton = 1;

gui_State = struct('gui_Name', mfilename, ...

'gui_Singleton', gui_Singleton, ...

'gui_OpeningFcn', @num4_windows_OpeningFcn, ...

'gui_OutputFcn', @num4_windows_OutputFcn, ...

'gui_LayoutFcn', [] , ...

'gui_Callback', []);

if nargin && ischar(varargin{1})

gui_State.gui_Callback = str2func(varargin{1});

end

if nargout

[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});

else

gui_mainfcn(gui_State, varargin{:});

end

function num4_windows_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObject;

guidata(hObject, handles);

function varargout = num4_windows_OutputFcn(hObject, eventdata, handles) varargout{1} = handles.output; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% 以下为信号读取以及原始信号的绘制%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function read_Callback(hObject, eventdata, handles)

[FileName,PathName] = uigetfile('*.csv') % read file

global sign

sign=csvread(FileName);

axes(handles.axes_sign)

plot(1:length(sign'),sign(:,2))

grid on

function plot_Callback(hObject, eventdata, handles)

% 采样频率100Hz,Wpl=20Hz,Wph=30Hz,Wsl=15Hz,Wsh=35Hz,

% 频率/采样频率*2*pi

% Wpl=0.4*pi,Wph=0.6*pi,Wsl=0.2*pi,Wsh=0.8*pi,

% Rp=1;As=20

clc;

T = 1; Fs = 1/T; % Set T=1

%%%%%%%%%%%%%%%%%%%%%按照比值进行带通的四个频率成份的界定 %%%%%%%%%%%%%%%%%%%% f1=str2double(get(handles.input_f1,'string'));

f2=str2double(get(handles.input_f2,'string'));

f3=str2double(get(handles.input_f3,'string'));

f4=str2double(get(handles.input_f4,'string'));

%-------------------------------------------------------------------------- global sign

kk=length(sign'); % 一维信号长度

Wpl=tan(f2/2/Fs*pi);

Wph=tan(f3/2/Fs*pi);

Wsl=tan(f1/2/Fs*pi);

Wsh=tan(f4/2/Fs*pi);

Rp = 1;

As= 40;

% 计算模拟低通原型的参数

OmigaP=Wph-Wpl; % 低通滤波器通带截止频率

OmigaS=Wsh-Wsl; % 低通滤波器通带截止频率

[N,Wn]=buttord(OmigaP,OmigaS,Rp,As,'s');

[B,A]=butter(N,Wn,'s');

[BT,AT]=lp2bp(B,A,sqrt(Wph*Wpl),Wph-Wpl);

[b,a]=bilinear(BT,AT,Fs);

H=freqz(b,a,kk,'whole');

axes(handles.axes_ifft) % 输出滤波器

plot(1:kk,ifft(abs(H).*fft(sign(:,2))),'r');

grid on;

axes(handles.axes_fft) % 输出滤波后的信号

plot(abs(H),'r');

grid on;

六、验证褶积性质(设计4)

1.设计内容:验证时间域的循环褶积对应的是频率域的乘积;线性褶积则不然。

2.实验结果:

a,b两向量取如下值:a=[1,2,3,4]; b=[1,2,3];

计算得到如下结果:

当循环次数依次为4,5,6,7时,在频率域和时间域计算得到的循环褶积均相等;

当循环次数小于6(N1+N2-1)时,时间域和频率域计算所得的结果不同,但是当循环次数大于6时,两种方法计算得到的结果相等。

因此可以得到如下结论:

(1)两个向量的循环褶积所对应的频谱是两信号各自频谱在频率域的乘积;

(2)当两个向量在频率域计算线性褶积时,要对两个信号进行补零扩展,使两个信号同大小。当扩展出的新信号长度小于临界长度6(N1+N2-1)时,频率域和时间域计算得到的线性褶积不相等;当扩展出的新信号长度大于等于临界长度6(N1+N2-1)时,频率域和时间域计算得到的线性褶积相等。

例如:设length(a)=n1 length(b)=n2 length(新信号)=n3

如果 n3

如果 n3>=n1+n2-1 两种方法所得结果相等;

程序:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% 验证时间域的循环褶积对应的是频率域的乘积;线性褶积则不然。%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% clear;

clc;

a=[1,2,3,4];

b=[1,2,3];

kk1=length(a);

kk2=length(b);

'临界循环次数(循环=线性)'

minl=length(a)+length(b)-1 % 临界循环次数(循环=线性)

'循环次数'

xx=4 % 循环次数手动更改 >=max(length(a),length(b)) aa=zeros(xx,1);

aa(1:kk1,1)=a'; % 扩展a

bb=zeros(xx,1);

bb(1:kk2,1)=b'; % 扩展b

bb1=zeros(xx,xx); % 循环矩阵

for i=1:xx

bb1(i:xx,i)=bb(1:xx-i+1);

bb1(1:i-1,i)=bb(xx-i+2:xx);

end

'时间域计算循环褶积结果'

ok1=bb1*aa % 时间域计算循环褶积结果

'频率域计算循环褶积结果'

ok2=ifft(fft(aa).*fft(bb)) % 频率域计算循环褶积结果

'作差比较'

plus1=ok1-ok2 % 作差比较

'时间域计算线性褶积结果'

ok3=conv(a,b) % 时间域计算线性褶积结果

kk=5

aa=zeros(kk,1);

aa(1:kk1,1)=a'; % 扩展a

bb=zeros(kk,1);

bb(1:kk2,1)=b';

'频率域计算线性褶积结果'

ok4=ifft(fft(aa).*fft(bb)) % 频率域计算线性褶积结果

ok33=zeros(length(ok3)+length(ok4),1);

ok33(1:length(ok3),1)=ok3;

ok44=zeros(length(ok3)+length(ok4),1);

ok44(1:length(ok4),1)=ok4;

'作差比较'

plus2=ok33-ok44 % 作差比较

七、实习感想

通过这次的计算机编程与数字信号处理实习,使我对数字信号处理的了解有了很大的提高。老师生动细致的讲解和悉心辅导让人印象深刻。在此,首先要对老师的指导致以深深的谢意。

刚刚开始的时候,我感觉对MATLAB比较生疏,编程时还是比较喜欢使用c语言,但是随着学习的深入,渐渐地体会到了MATLAB的优势,尤其是在大量复杂的数据处理方面。

当然,这两周短暂的上机实习并不足以使我们完全掌握MATLAB 软件的用法,我将在日后继续学习。

matlab课程设计题目

课题一: 连续时间信号和系统时域分析及MATLAB实现 课题要求: 深入研究连续时间信号和系统时域分析的理论知识。利用MATLAB强大的图形处理功能、符号运算功能以及数值计算功能,实现连续时间信号和系统时域分析的仿真波形。 课题内容: 一、用MATLAB实现常用连续时间信号的时域波形(通过改变参数,分析其时域特性)。 1、单位阶跃信号, 2、单位冲激信号, 3、正弦信号, 4、实指数信号, 5、虚指数信号, 6、复指数信号。 二、用MATLAB实现信号的时域运算 1、相加, 2、相乘, 3、数乘, 4、微分, 5、积分 三、用MATLAB实现信号的时域变换(参数变化,分析波形变化) 1、反转, 2、使移(超时,延时), 3、展缩, 4、倒相, 5、综合变化 四、用MATLAB实现信号简单的时域分解 1、信号的交直流分解, 2、信号的奇偶分解 五、用MATLAB实现连续时间系统的卷积积分的仿真波形 给出几个典型例子,对每个例子,要求画出对应波形。 六、用MATLAB实现连续时间系统的冲激响应、阶跃响应的仿真波形。 给出几个典型例子,四种调用格式。 七、利用MATLAB实现连续时间系统对正弦信号、实指数信号的零状态响应的仿真波形。 给出几个典型例子,要求可以改变激励的参数,分析波形的变化。 课题二: 离散时间信号和系统时域分析及MATLAB实现。 课题要求: 深入研究离散时间信号和系统时域分析的理论知识。利用MATLAB强大的图

形处理功能、符号运算功能以及数值计算功能,实现离散时间信号和系统时域分析的仿真波形。 课题内容: 一、用MATLAB绘制常用信号的时域波形(通过改变参数分析其时域特性) 1、单位序列, 2、单位阶跃序列, 3、正弦序列, 4、离散时间实指数序列, 5、离散时间虚指数序列, 6、离散时间复指数序列。 二、用MATLAB实现信号的时域运算 1、相加, 2、相乘, 3、数乘。 三、用MATLAB实现信号的时域变换(参数变化,分析波形的变化) 1、反转, 2、时移(超时,延时), 3、展缩, 4、倒相。 四、用MATLAB实现离散时间系统卷积和仿真波形 给出几个典型例子,对每个例子要求画出e(k),h(k),e(i),h(i),h(-i),Rzs(k)波形。 五、用MATLAB实现离散时间系统的单位响应,阶跃响应的仿真波形 给出几个典型例子,四中调用格式。 六、用MATLAB实现离散时间系统对实指数序列信号的零状态响应的仿真波形 给出几个典型例子,要求可以改变激励的参数,分析波形的变化。 课题三: 连续时间信号傅里叶级数分析及MATLAB实现。 课题要求: 深入研究连续时间信号傅里叶级数分析的理论知识,利用MATLAB强大的图形处理功能,符号运算功能以及数值计算功能,实现连续时间周期信号频域分析的仿真波形。 课题内容: 一、用MATLAB实现周期信号的傅里叶级数分解与综合 以周期矩形波信号为例,绘出包含不同谐波次数的合成波形,观察合成波形与原矩形 波形之间的关系及吉布斯现象。

MATLAB课程设计报告

华东交通大学MATLAB程序设计报告书 课题名称:基于MATLAB的粒子群优化算法的实现 姓名: 学号:20160280800014 专业:控制科学与工程 2016年 11月 20日

基于MATLAB的粒子群优化算法的实现 一、课程选题目的 本次课程设计的课题为《基于MATLAB的粒子群优化算法的实现》,主要为学会运用MATLAB对实际算法编程,加深对粒子群优化算法的理解,并为今后熟练使用MA TLAB进行系统的分析仿真和设计奠定基础。数值计算分析可以帮助更深入地理解理论知识,并为将来使用MA TLAB进行各领域数值分析分析和实际应用打下基础。 此次课程主要是为了进一步熟悉对MATLAB软件的使用,以及学会利用MA TLAB对数值运算这种实际问题进行处理,将理论应用于实际,加深对它的理解。 二、粒子群优化算法原理 优化是科学研究、工程技术和经济管理等领域的重要研究工具。它所研究的问题是讨论在众多的方案中寻找最优方案。例如,工程设计中怎样选择设计参数,使设计方案既满足设计要求又能降低成本;资源分配中,怎样分配有限资源,使分配方案既能满足各方面的基本要求,又能获得好的经济效益。在人类活动的各个领域中,诸如此类,不胜枚举。优化这一技术,正是为这些问题的解决,提供理论基础和求解方法,它是一门应用广泛、实用性很强的科学。近十余年来,粒子群优化算法作为群体智能算法的一个重要分支得到了广泛深入的研究,在路径规划等许多领域都有应用。 2.1 粒子群优化算法的起源 粒子群优化(PSO)算法是由Kennedy和Eberhart于1995年用计算机模拟鸟群觅食这一简单的社会行为时,受到启发,简化之后而提出的。 设想这样一个场景:一群鸟随机的分布在一个区域中,在这个区域里只有一块食物。所有的鸟都不知道食物在哪里。但是他们知道当前的位置离食物还有多远。那么找到食物的最优策略是什么呢。最简单有效的方法就是追寻自己视野中目前离食物最近的鸟。如果把食物当作最优点,而把鸟离食物的距离当作函数的适应度,那么鸟寻觅食物的过程就可以当作一个函数寻优的过程。鱼群和鸟群的社会行为一直引起科学家的兴趣。他们以特殊的方式移动、同步,不会相互碰撞,整体行为看上去非常优美。生物学家CargiReynolds提出了一个非常有影响的鸟群聚集模型。在他的模拟模型boids中,每一个个体遵循:避免与邻域个体相冲撞、匹配邻域个体的速度、试图飞向感知到的鸟群中心这三条规则形成简单的非集中控制算法驱动鸟群的聚集,在一系列模拟实验中突现出了非常接近现实鸟群聚集行为的现象。该结果显示了在空中回旋的鸟组成轮廓清晰的群体,以及遇到障碍物时鸟群的分裂和再度汇合过程。由此受到启发,经过简化提出了粒子群优化算法。 2.2粒子群优化算法的原理 在粒子群优化算法中,每个优化问题的潜在解都是搜索空间中的一只鸟,称之为“粒子”。所有的粒子都有一个由被优化的函数决定的适应值,每个粒子还有一个速度决定他们飞翔的方向和距离。然后粒子们就追随当前的最优粒子在解空间中搜索。优化开始时先初始化为一群随机粒子(随机解)。然后通过迭代找到最优解。在每一次迭代中,粒子通过跟踪两个极值来更新自己。第一个极值就是整个种群目前找到的最优解。这个极值是全局极值。另外也可以不用整个种群而只是用其中一部分作为粒子的邻居,那么在所有邻居中的极值就是局部极值。第二个极值是粒子本身所找到的最优解,称为个体极值。这是因为粒子仅仅通过跟踪全局极值或者局部极值来更新位置,不可能总是获得较好的解。这样在优化过程中,粒子在追随全局极值或局部极值的同时追随个体极值则圆满的解决了这个问题。这就是粒子群优化

数字信号处理课程设计报告

抽样定理的应用 摘要 抽样定理表示为若频带宽度有限的,要从抽样信号中无失真地恢复原信号,抽样频率应大于2倍信号最高频率。抽样频率小于2倍频谱最高频率时,信号的频谱有混叠。抽样频率大于2倍频谱最高频率时,信号的频谱无混叠。 语音信号处理是研究用数字信号处理技术和语音学知识对语音 信号进行处理的新兴学科,是目前发展最为迅速的学科之一,通过语音传递信息是人类最重要,最有效,最常用和最方便的交换信息手段,所以对其的研究更显得尤为重要。 Matlab语言是一种数据分析和处理功能十分强大的计算机应用 软件,它可以将声音文件变换成离散的数据文件,然后用起强大的矩阵运算能力处理数据。这为我们的本次设计提供了强大并良好的环境! 本设计要求通过利用matlab对模拟信号和语音信号进行抽样,通过傅里叶变换转换到频域,观察波形并进行分析。 关键词:抽样Matlab

目录 一、设计目的: (2) 二、设计原理: (2) 1、抽样定理 (2) 2、MATLAB简介 (2) 3、语音信号 (3) 4、Stem函数绘图 (3) 三、设计内容: (4) 1、已知g1(t)=cos(6πt),g2(t)=cos(14πt),g3(t)=cos(26πt),以抽样频率 fsam=10Hz对上述三个信号进行抽样。在同一张图上画出g1(t),g2(t),g3(t)及其抽样点,对所得结果进行讨论。 (4) 2、选取三段不同的语音信号,并选取适合的同一抽样频率对其进 行抽样,画出抽样前后的图形,并进行比较,播放抽样前后的语音。 (6) 3、选取合适的点数,对抽样后的三段语音信号分别做DFT,画图 并比较。 (10) 四、总结 (12) 五、参考文献 (13)

MATLAB课设报告

课程设计任务书 学生姓名:董航专业班级:电信1006班 指导教师:阙大顺,李景松工作单位:信息工程学院 课程设计名称:Matlab应用课程设计 课程设计题目:Matlab运算与应用设计5 初始条件: 1.Matlab6.5以上版本软件; 2.课程设计辅导资料:“Matlab语言基础及使用入门”、“Matlab及在电子信息课程中的应 用”、线性代数及相关书籍等; 3.先修课程:高等数学、线性代数、电路、Matlab应用实践及信号处理类相关课程等。 要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求) 1.课程设计内容:根据指导老师给定的7套题目,按规定选择其中1套完成; 2.本课程设计统一技术要求:研读辅导资料对应章节,对选定的设计题目进行理论分析, 针对具体设计部分的原理分析、建模、必要的推导和可行性分析,画出程序设计框图,编写程序代码(含注释),上机调试运行程序,记录实验结果(含计算结果和图表),并对实验结果进行分析和总结。具体设计要求包括: ①初步了解Matlab、熟悉Matlab界面、进行简单操作; ②MATLAB的数值计算:创建矩阵矩阵运算、多项式运算、线性方程组、数值统计; ③基本绘图函数:plot, plot3, mesh, surf等,要求掌握以上绘图函数的用法、简单图形 标注、简单颜色设定等; ④使用文本编辑器编辑m文件,函数调用; ⑤能进行简单的信号处理Matlab编程; ⑥按要求参加课程设计实验演示和答辩等。 3.课程设计说明书按学校“课程设计工作规范”中的“统一书写格式”撰写,具体包括: ①目录; ②与设计题目相关的理论分析、归纳和总结; ③与设计内容相关的原理分析、建模、推导、可行性分析; ④程序设计框图、程序代码(含注释)、程序运行结果和图表、实验结果分析和总结; ⑤课程设计的心得体会(至少500字); ⑥参考文献(不少于5篇); ⑦其它必要内容等。 时间安排:1.5周(分散进行) 参考文献: [1](美)穆尔,高会生,刘童娜,李聪聪.MA TLAB实用教程(第二版) . 电子工业出版社,2010. [2]王正林,刘明.精通MATLAB(升级版) .电子工业出版社,2011. [3]陈杰. MA TLAB宝典(第3版) . 电子工业出版社,2011. [4]刘保柱,苏彦华,张宏林. MATLAB 7.0从入门到精通(修订版) . 人民邮电出版社,2010. 指导教师签名:年月日 系主任(或责任教师)签名:年月日

通信原理课程设计报告(基于Matlab)

2DPSK调制与解调系统的仿真 设计原理 (1) 2DPSK信号原理 1.1 2DPSK信号原理 2DPSK方式即是利用前后相邻码元的相对相位值去表示数字信息的一种方式。现假设用Φ表示本码元初相与前一码元初相之差,并规定:Φ=0表示0码,Φ=π表示1码。则数字信息序列与2DPSK信号的码元相位关系可举例表示如2PSK信号是用载波的不同相位直接去表示相应的数字信号而得出的,在接收端只能采用相干解调,它的时域波形图如图2.1所示。 图1.1 2DPSK信号 在这种绝对移相方式中,发送端是采用某一个相位作为基准,所以在系统接收端也必须采用相同的基准相位。如果基准相位发生变化,则在接收端回复的信号将与发送的数字信息完全相反。所以在实际过程中一般不采用绝对移相方式,而采用相对移相方式。定义为本码元初相与前一码元初相之差,假设: →数字信息“0”; →数字信息“1”。 则数字信息序列与2DPSK信号的码元相位关系可举例表示如下: 数字信息: 1 0 1 1 0 1 1 1 0 1 DPSK信号相位:0

或 : 1.2 2DPSK 信号的调制原理 一般来说,2DPSK 信号有两种调试方法,即模拟调制法和键控法。2DPSK 信号的的模拟调制法框图如图1.2.1所示,其中码变换的过程为将输入的单极性不归零码转换为双极性不归零码。 图1.2.1 模拟调制法 2DPSK 信号的的键控调制法框图如图1.2.2所示,其中码变换的过程为将输入的基带信号差分,即变为它的相对码。选相开关作用为当输入为数字信息“0” 时接相位0,当输入数字信息为“1”时接pi 。 图1.2.2 键控法调制原理图 1.3 2DPSK 信号的解调原理 2DPSK 信号最常用的解调方法有两种,一种是极性比较和码变换法,另一种是差分相干解调法。 码变换 相乘 载波 s(t) e o (t)

数字信号处理课设+语音信号的数字滤波

语音信号的数字滤波 ——利用双线性变换法实现IIR数字滤波器的设计一.课程设计的目的 通过对常用数字滤波器的设计和实现,掌握数字信号处理的工作原理及设计方法;熟悉用双线性变换法设计 IIR 数字滤波器的原理与方法,掌握利用数字滤波器对信号进行滤波的方法,掌握数字滤波器的计算机仿真方法,并能够对设计结果加以分析。 二.设计方案论证 1.IIR数字滤波器设计方法 IIR数字滤波器是一种离散时间系统,其系统函数为 假设M≤N,当M>N时,系统函数可以看作一个IIR的子系统和一个(M-N)的FIR子系统的级联。IIR数字滤波器的设计实际上是求解滤波器的系数和,它 是数学上的一种逼近问题,即在规定意义上(通常采用最小均方误差准则)去逼近系统的特性。如果在S平面上去逼近,就得到模拟滤波器;如果在z平面上去逼近,就得到数字滤波器。 2.用双线性变换法设计IIR数字滤波器 脉冲响应不变法的主要缺点是产生频率响应的混叠失真。这是因为从S平面到Z平面是多值的映射关系所造成的。为了克服这一缺点,可以采用非线性频率压缩方法,将整个频率轴上的频率范围压缩到-π/T~π/T之间,再用z=e sT转换 平面的-π/T~π到Z平面上。也就是说,第一步先将整个S平面压缩映射到S 1 /T一条横带里;第二步再通过标准变换关系z=e s1T将此横带变换到整个Z平面上去。这样就使S平面与Z平面建立了一一对应的单值关系,消除了多值变换性,也就消除了频谱混叠现象,映射关系如图1所示。 图1双线性变换的映射关系 为了将S平面的整个虚轴jΩ压缩到S1平面jΩ1轴上的-π/T到π/T段上,可以通过以下的正切变换实现

Matlab课程设计报告

自控系统仿真软件课程设计报告 MATLAB 设计题目:牛顿摆球 姓名: 学号: 院系: 班级:1203 指导教师: 2014年12月20日

一.课程设计目的 1、熟悉课程设计的基本流程; 2、掌握MATLAB语法结构及调试方法; 3、熟悉MATLAB函数调用,熟练二维画图; 4、掌握MATLAB语言在控制方面的运用; 5、学会用MATLAB进行基本仿真; 6、掌握MATLAB编程技巧,提高编程水平。 二.系统分析 1.题目的描述: (1)牛顿摆球原理描述 五个质量相同的球体由吊绳固定,彼此紧密排列。当摆动最右侧的球并在回摆时碰撞紧密排列的另外四个球,最左边的球将被弹出,并仅有最左边的球被弹出。当然此过程也是可逆的,当摆动最左侧的球撞击其它球时,最右侧的球会被弹出。当最右侧的两个球同时摆动并撞击其他球时,最左侧的两个球会被弹出。同理相反方向同样可行,并适用于更多的球。 为了更接近现实,在这里我将考虑重力及空气阻力的影响,摆球将不会永无止境的运动下去,由于外界因素的影响,摆球运动一段时间后将回归静止状态。(2)通过MATLAB动画程序制作软件,实现下述过程 当运行程序时,把最右边的小球拉到一定的高度放下,让其碰撞其余四个小球,仅让最左边的小球被弹出,当最左边小球回摆碰撞其它球时,最右边小球又被弹出,如此循环。由于是非理想条件下,摆球的摆动幅度会随摆动次数的增加越来越小,直到静止。 时间停顿两秒,把右边两小球一起拉到一定高度放下,让其碰撞其余三个球,同样仅让左边两球被弹出,当球回摆再次碰撞时,最右边两球又被同时弹出,如此循环,因为外界因素的影响,最终五个球都会静止下来。 (3)整个实验看似简单,但要在MATLAB上完成这样一个动画过程,还是需要下点功夫,克服困难的。经过自己的努力,终于实现了整个过程,这也是一种不小的收获。 2.设计要求: (1)能够实现有阻尼摆动,即摆幅随摆动次数增加越来越小,直到静止。(2)能够让摆球弧线摆动。 三.系统设计 1.系统设计过程 (1)通过函数axis建立坐标系 (2)在坐标系范围内通过函数line画各个支架 (3)通过函数title添加标题“动量守恒实验”、函数text添加标注“牛顿摆球” (4)通过函数line画出五个球,并设定其初始位置,颜色,大小,线条的擦拭方式

数字信号处理课设共18页文档

数字信号处理课程设计 姓名:刘倩 学号:201014407 专业:信息与计算科学 实验一:常见离散信号产生和实现 一、实验目的: 1、加深对常用离散信号的理解; 2、掌握matlab 中一些基本函数的建立方法。 二、实验原理: 1.单位抽样序列 在MATLAB 中可以利用zeros()函数实现。 如果)(n δ在时间轴上延迟了k 个单位,得到)(k n -δ即: 2.单位阶越序列 在MATLAB 中可以利用ones()函数实现。 3.正弦序列 在MATLAB 中 4.复指数序列 在MATLAB 中 5.指数序列 在MATLAB 中

实验内容:由周期为10的正弦函数生成周期为20的余弦函数。 实验代码: n=0:30; y=sin(0.2*pi*n+pi/2); y1=sin(0.1*pi*n+pi/2); subplot(121) stem(n,y); xlabel ('时间序列n');ylabel('振幅');title('正弦函数序列y=sin(0.2*pi*n+pi/2)'); subplot(122) stem(n,y1); xlabel ('时间序列n');ylabel('振幅'); title('正弦函数序列y=sin(0.2*pi*n+pi/2)'); 实验结果: 实验二:离散系统的时域分析 实验目的:加深对离散系统的差分方程、冲激响应和卷积分析方法的理解。实验原理:离散系统 其输入、输出关系可用以下差分方程描述: 输入信号分解为冲激信号, 记系统单位冲激响应 则系统响应为如下的卷积计算式:

当N k d k ,...2,1,0==时,h[n]是有限长度的(n :[0,M]),称系统为FIR 系统;反之,称系统为IIR 系统。 在MATLAB 中,可以用函数y=filter(p,d,x)实现差分方程的仿真,也可以用函数 y=conv(x,h)计算卷积,用y=impz(p,d,N)求系统的冲激响应。 实验内容:用MATLAB 计算全解 当n>=0时,求用系数差分方程y[n]+y[n-1]-6y[n-2]=x[n]描述的一个离散时间系统对阶跃输入x[n]=8μ[n]的全解。 实验代码: n=0:7; >> [y,sf]=filter(1,[1 1 -6],8*ones(1,8),[-7 6]); >> y1(n+1)=-1.8*(-3).^n+4.8*(2).^n-2; >> subplot(121) >> stem(n,y); >> title('由fliter 函数计算结果'); >> subplot(122) >> stem(n,y1); >> title('准确结果'); 实验结果: 结果分析:有图可得由fliter 函数得出的结果与计算出的准确结果完全一致。 实验三FFT 算法的应用

matlab课程设计拟定题目

第一类:单位转换 1.长度单位换算的设计与实现 2.面积单位换算的设计与实现 3.体积单位换算的设计与实现 4.容积单位换算的设计与实现 5.质量单位换算的设计与实现 6.时间单位换算的设计与实现 7.温度单位换算的设计与实现 7.压强单位换算的设计与实现 8.角度单位换算的设计与实现 8.功率单位换算的设计与实现 第二类:曲线绘制 1.直线的自动绘制和相关计算 2.椭圆的自动绘制和相关计算 3.双曲线的自动绘制和相关计算 4.抛物线的自动绘制和相关计算 5.心脏线的自动绘制和相关计算 6.渐开线的自动绘制和相关计算 7.滚圆线的自动绘制和相关计算 8.三叶玫瑰线的自动绘制和相关计算9.四叶玫瑰线的自动绘制和相关计 10.阿基米德螺线的自动绘制和相关计算第三类:曲面绘制 1.球面的自动绘制和相关计算 2.椭球面的自动绘制和相关计算 3.单叶双曲面的自动绘制和相关计算 4.双叶双曲面的自动绘制和相关计算 5.抛物面的自动绘制和相关计算 6.双曲抛物面的自动绘制和相关计算 7.双曲柱面的自动绘制和相关计算 8.椭圆柱面的自动绘制和相关计算 9.抛物柱面的自动绘制和相关计算 10.圆锥面的自动绘制和相关计算 第四类:线性回归 1.男士身高体重相关计算经验公式 2.女士身高体重相关计算经验公式 3.男士胖瘦等级的确定 4.女士胖瘦等级的确定 5.男士身高脚长相关计算经验公式 6.女士身高脚长相关计算经验公式 7.父子身高相关性研究 8.母子身高相关性研究 9.父女身高相关性研究 10.母女身高相关性研究 第五类:学习成绩 1.期末总评自动计算的设计与实现 2.成绩等级自动评定的设计与实现 3.成绩分段自动统计的设计与实现 4.成绩分布折线自动绘制的设计与实现 5.成绩自动统计分析的设计与实现 6.试卷分布自动分析的设计与实现 7.试卷难度自动分析的设计与实现 8.考试成绩名次自动生成的设计与实现

matlab课程设计报告书

《计算机仿真及应用》课程设计报告书 学号:08057102,08057127 班级:自动化081 姓名陈婷,万嘉

目录 一、设计思想 二、设计步骤 三、调试过程 四、结果分析 五、心得体会 六、参考文献

选题一、 考虑如下图所示的电机拖动控制系统模型,该系统有双输入,给定输入)(t R 和负载输入)(t M 。 1、 编制MATLAB 程序推导出该系统的传递函数矩阵。 2、 若常系数增益为:C 1=Ka =Km =1,Kr =3,C2=0.8,Kb =1.5,时间常数T 1=5, T 2=0.5,绘制该系统的根轨迹、求出闭环零极点,分析系统的稳定性。若)(t R 和)(t M 分别为单位阶跃输入,绘制出该系统的阶跃响应图。(要求C 1,Ka ,Km ,Kr ,C2,Kb , T 1,T 2所有参数都是可调的) 一.设计思想 题目分析: 系统为双输入单输出系统,采用分开计算,再叠加。 要求参数均为可调,而matlb 中不能计算未赋值的函数,那么我们可以把参数设置为可输入变量,运行期间根据要求赋值。 设计思路: 使用append 命令连接系统框图。 选择‘参数=input('inputanumber:')’实现参数可调。 采用的方案: 将结构框图每条支路稍作简化,建立各条支路连接关系构造函数,运行得出相应的传递函数。 在得出传递函数的基础上,使用相应的指令求出系统闭环零极点、画出其根轨迹。 通过判断极点是否在左半平面来编程判断其系统是否稳定。 二.设计步骤 (1)将各模块的通路排序编号

(2)使用append命令实现各模块未连接的系统矩阵 (3)指定连接关系 (4)使用connect命令构造整个系统的模型 三.调试过程 出现问题分析及解决办法: 在调试过程出现很多平时不注意且不易寻找的问题,例如输入的逗号和分号在系统运行时不支持中文格式,这时需要将其全部换成英文格式,此类的程序错误需要细心。 在实现参数可调时初始是将其设为常量,再将其赋值进行系统运行,这样参数可调性差,后用‘参数=input('inputanumber:')’实现。 最后是在建立通路连接关系时需要细心。 四.结果分析 源代码: Syms C1 C2 Ka Kr Km Kb T1 T2 C1=input('inputanumber:') C2=input('inputanumber:') Ka=input('inputanumber:') Kr=input('inputanumber:') Km=input('inputanumber:') Kb=input('inputanumber:') T1=input('inputanumber:') T2=input('inputanumber:') G1=tf(C1,[0 1]); G2=tf(Ka*Kr,[0 1]); G3=tf(Km,[T1 1]); G4=tf(1,[T2 1]); G5=tf(1,[1 0]); G6=tf(-C2,1); G7=tf(-Kb,1); G8=tf(-1,1); Sys=append(G1,G2,G3,G4,G5,G6,G7,G8) Q=[1 0 0;2 1 6;3 2 7;4 3 8;5 4 0;6 5 0;7 4 0;8 0 0;]; INPUTS1=1; OUTPUTS=5; Ga=connect(Sys,Q,INPUTS1,OUTPUTS) INPUTS2=8; OUTPUTS=5; Gb=connect(Sys,Q,INPUTS2,OUTPUTS) rlocus(Ga)

数字信号处理课程规划报告

数字信号处理课程设计报告《应用Matlab对信号进行频谱分析及滤波》 专业: 班级: 姓名: 指导老师: 二0 0五年一月一日

目录 设计过程步骤() 2.1 语音信号的采集() 2.2 语音信号的频谱分析() 2.3 设计数字滤波器和画出其频谱响应() 2.4 用滤波器对信号进行滤波() 2.5滤波器分析后的语音信号的波形及频谱() ●心得和经验()

设计过程步骤 2.1 语音信号的采集 我们利用Windows下的录音机,录制了一段开枪发出的声音,时间在1 s内。接着在C盘保存为WAV格式,然后在Matlab软件平台下.利用函数wavread对语音信号进行采样,并记录下了采样频率和采样点数,在这里我们还通过函数sound引入听到采样后自己所录的一段声音。通过wavread函数和sound的使用,我们完成了本次课程设计的第一步。其程序如下: [x,fs,bite]=wavread('c:\alsndmgr.wav',[1000 20000]); sound(x,fs,bite); 2.2 语音信号的频谱分析 首先我们画出语音信号的时域波形;然后对语音信号进行频谱分析,在Matlab中,我们利用函数fft对信号进行快速傅里叶变换,得到信号的频谱特性性。到此,我们完成了课程实际的第二部。 其程序如下: n=1024; subplot(2,1,1); y=plot(x(50:n/4)); grid on ; title('时域信号') X=fft(x,256); subplot(2,1,2); plot(abs(fft(X))); grid on ; title('频域信号'); 运行程序得到的图形:

matlab课程设计题目全

Matalab课后作业 学院:电气信息工程及其自动化 班级: 学号: 姓名: 完成日期: 2012年12月23日

1、 matlab 软件主要功能是什么?电气工程及其自动化专业本科生主要用到哪 些工具箱,各有什么功能? 答:(1)主要功能:工业研究与开发; 数学教学,特别是线性代数;数值分析和科学计算方面的教学与研究;电子学、控制理论和物理学等工程和科学学科方面的教学与研究; 经济学、化学和生物学等计算问题的所有其他领域中的教学与研究;符号计算功能;优化工具;数据分析和可视化功能;“活”笔记本功能;工具箱;非线性动态系统建模和仿真功能。 (2)常用工具箱: (a ) MATLAB 主工具箱:扩充matlab 的数值计算、符号运算功能、图形建模仿真功能、文字处理功能以及与硬件实时交互功能。 (b )符号数学工具箱:符号表达式、符号矩阵的创建;符号可变精度求解;因式分解、展开和简化;符号代数方程求解;符号微积分;符号微分方程。 (c ) SIMULINK 仿真工具箱: Simulink 是用于动态系统和嵌入式系统的多领域仿真和基于模型的设计工具。对各种时变系统,包括通讯、控制、信号处理、视频处理和图像处理系统,Simulink 提供了交互式图形化环境和可定制模块库来对其进行设计、仿真、执行和测试。 (d )信号处理工具箱:数字和模拟滤波器设计、应用及仿真;谱分析和估计;FFT 、DCT 等 变换;参数化模型。 (e )控制系统工具箱:连续系统设计和离散系统设计;状态空间和传递函数以及模型转换;时域响应(脉冲响应、阶跃响应、斜坡响应);频域响应(Bode 图、Nyquist 图);根轨迹、极点配置。 2、设y=23e t 4-sin(43t+3 ),要求以0.01秒为间隔,求出y 的151个点,并求出其导数的值和曲线。 程序如下: clc clear x=0:0.01:1.5; y=sqrt(3)/2*exp(-4*x).*sin(4*sqrt(3)*x+pi/3); y1=diff(y); subplot(2,1,1) plot(x,y) subplot(2,1,2) plot(x(1:150),y1) 曲线如下图所示:

matlab音频降噪课程设计报告

matlab音频降噪课程设计报告

燕山大学 医学软件课程设计说明书 题目:基于MATLAB巴特沃斯滤波器的音频去噪的GUI设计 学院(系):电气工程学院 年级专业: 13级生物医学工程 2 班 学号: 130103040041 学生姓名:魏鑫 指导教师:许全盛 1

院(系):电气工程学院基层教学单位:生物医学工程系 学号130103040041 学生 姓名 魏鑫 专业(班 级) 13级生 物医学 工程2 班 设计 题目 基于MATLAB音频去噪的GUI设计设 计 技术参数通带截止频率fp=2700;阻带截止频率fs=3000;采样频率FS=48000; 通带衰减不大于1dB;阻带衰减不小于10dB; 设计要求1.实现用MATLAB导入音频; 2.对音频进行频谱分析; 3.设计滤波器去噪并对含噪信号进行滤 2

波并进行功率谱分析; 4.设计能实现上述功能的GUI; 工作量1.完成音频录入及频谱分析相关程序的编写与调试; 2.设计滤波器去噪; 3.用MATLAB软件做GUI界面的设计; 工作计划11.21-11.24 MATLAB软件中GUIDE 工具箱的使用 11.25-11.29 各处理算法模块的编程实现 11.30-12.1 整体程序联调 12.2 撰写课程设计说明书,答辩 参考资料 1. 陈怀琛吴大正 MATLAB及在电子信息课程中的应用[M] 北京电子工业出版社 2006. 章节2.4; 2. 陈亚勇 MATLAB信号处理详解[M] 北京:人民邮电出版社 2000. 第十 3

章; 3.张康刘雅基于Matlab的巴特沃斯 数字低通滤波器的设计[J] 计算机与现代化 2007年 12期 98-100页 指导 教师签字许全盛 基层教学单 位主任签字 彭勇 目录 一、设计目的意义 (1) 1.1绪论 (1) 1.2设计目的 (1) 1.3意义 (1) 二、设计内容 (2) 2.1 设计原理 (2) 2.2 设计内容 (2) 三、设计过程及结果分析 (3) 3.1 设计步骤 (3) 4

数字信号处理课程设计

数字信号处理 课 程 设 计 院系:电子信息与电气工程学院 专业:电子信息工程专业 班级:电信班 姓名: 学号: 组员:

摘要 滤波器设计在数字信号处理中占有极其重要的地位,FIR数字滤波器和IIR 滤波器是滤波器设计的重要组成部分。利用MATLAB信号处理工具箱可以快速有效地设计各种数字滤波器。课题基于MATLAB有噪音语音信号处理的设计与实现,综合运用数字信号处理的理论知识对加噪声语音信号进行时域、频域分析和滤波。通过理论推导得出相应结论,再利用 MATLAB 作为编程工具进行计算机实现。在设计实现的过程中,使用窗函数法来设计FIR数字滤波器,用巴特沃斯、切比雪夫和双线性变法设计IIR数字滤波器,并利用MATLAB 作为辅助工具完成设计中的计算与图形的绘制。通过对对所设计滤波器的仿真和频率特性分析,可知利用MATLAB信号处理工具箱可以有效快捷地设计FIR和IIR数字滤波器,过程简单方便,结果的各项性能指标均达到指定要求。 关键词数字滤波器 MATLAB 窗函数法巴特沃斯

目录 摘要 (1) 1 引言 (1) 1.1课程设计目的 (1) 1.2 课程设计内容及要求 (1) 1.3课程设计设备及平台 (1) 1.3.1 数字滤波器的简介及发展 (1) 1.3.2 MATLAB软件简介 (2) 2 课程设计原理及流程 (4) 3.课程设计原理过程 (4) 3.1 语音信号的采集 (4) 3.2 语音信号的时频分析 (5) 3.3合成后语音加噪声处理 (7) 3.3.1 噪声信号的时频分析 (7) 3.3.2 混合信号的时频分析 (8) 3.4滤波器设计及消噪处理 (10) 3.4.1 设计IIR和FIR数字滤波器 (10) 3.4.2 合成后语音信号的消噪处理 (13) 3.4.3 比较滤波前后语音信号的波形及频谱 (13) 3.4.4回放语音信号 (15) 3.5结果分析 (15) 4 结束语 (15) 5 参考文献 (16)

通信工程学院matlab课程设计报告

南京工程学院 课程设计说明书(论文)题目模拟信号的数字化 课程名称Matlab通信仿真设计 院(系、部、中心)通信工程学院 专业电子信息工程(传感网) 班级 学生姓名X X X 学号 2 0 8 1 1 0 7 3 2 设计地点信息楼C 216 指导教师潘子宇

设计起止时间:2014年1月10日至2014年 1 月14日

目录 一、内容摘要 (1) 二、课程设计目的和要求 (2) 三、课程设计任务 (2) 四、课程设计软件介绍 (3) 五、课程设计原理 (4) 六、PCM编码及仿真参数设置 (9) 七、PCM解码及仿真参数设置 (11) 八、PCM串行传输模型及仿真参数设置 (13) 九、课程设计成品图 (14) 十、SCOPE端的最终波形图 (14) 十一、主要参考文献 (15)

十二、总结与体会 (15) 一、内容摘要 MATLAB软件是矩阵实验室的简称,是美国M a t h W or k s公司出品的商业数学软件, 可用于算法开发、数据分析以及数值计算的高级技术计算语言和交互式环境, 广泛用于数字信号分析,系统识别,时序分析与建模, 神经网络、动态仿真等方面有着广泛的应用。主要包括MATLAB和Simulink两大部分。Simulink是MATLAB最重要的组件之一,它提供一个动态系统建模、仿真和综合分析的集成环境。在该环境中,无需大量书写程序,而只需要通过简单直观的鼠标操作,就可构造出复杂的系统。Simulink具有适应面广、结构和流程清晰及仿真精细、贴近实际、效率高、灵活等优点,并基于以上优点Simulink已被广泛应用于控制理论和数字信号处理的复杂仿真和设计。同时有大量的第三方软件和硬件可应用于或被要求应用于Simulink。 Simulink是MATLAB中的一种可视化仿真工具,是一种基于MATLAB的框图设计环境,是实现动态系统建模、仿真和分析的一个软件包,被广泛应用于线性系统、非线性系统、数字控制及数字信号处理的建模和仿真中。Simulink可以用连续采样时间、离散采样时间或两种混合的采样时间进行建模,它也支持多速率系统,也就是系统中的不同部分具有不同的采样速率。为了创建动态系统模型,Simulink提供了一个建立模型方块图的图形用户接口(GUI) ,这个创建过程只需单击和拖动鼠标操作就能完成,它提供了一种更快捷、直接明了的方式,而且用户可以立即看到系统的仿真结果。 Simulink是用于动态系统和嵌入式系统的多领域仿真和基于模型的设计工具。对各种时变系统,包括通讯、控制、信号处理、视频处理和图像处理系统,Simulink提供了交互式图形化环境和可定制模块库来对其进行设计、仿真、执行和测试。.

matlab车牌识别课程设计报告(附源代码)

Matlab程序设计任务书 分院(系)信息科学与工程专业 学生姓名学号 设计题目车牌识别系统设计 内容及要求: 车牌定位系统的目的在于正确获取整个图像中车牌的区域,并识别出车牌号。通过设计实现车牌识别系统,能够提高学生 分析问题和解决问题的能力,还能培养一定的科研能力。 1.牌照识别系统应包括车辆检测、图像采集、牌照识别等几 部分。 2.当车辆检测部分检测到车辆到达时,触发图像采集单元,采 集当前的视频图像。 3.牌照识别单元对图像进行处理,定位出牌照位置,再将牌 照中的字符分割出来进行识别,然后组成牌照号码输出。 进度安排: 19周:Matlab环境熟悉与基础知识学习 19周:课程设计选题与题目分析 20周:程序设计编程实现 20周:课程设计验收与答辩 指导教师(签字): 年月日学院院长(签字): 年月日 目录

一.课程设计目的 (3) 二.设计原理 (3) 三.详细设计步骤 (3) 四. 设计结果及分析 (18) 五. 总结 (19) 六. 设计体会 (20) 七. 参考文献 (21) 一、课程设计目的 车牌定位系统的目的在于正确获取整个图像中车牌的区域,并识别出车牌号。通过

设计实现车牌识别系统,能够提高学生分析问题和解决问题的能力,还能培养一定的科研能力。 二、设计原理: 牌照自动识别是一项利用车辆的动态视频或静态图像进行牌照号码、牌照颜色自动识别的模式识别技术。其硬件基础一般包括触发设备、摄像设备、照明设备、图像采集设备、识别车牌号码的处理机等,其软件核心包括车牌定位算法、车牌字符分割算法和光学字符识别算法等。某些牌照识别系统还具有通过视频图像判断车辆驶入视野的功能称之为视频车辆检测。一个完整的牌照识别系统应包括车辆检测、图像采集、牌照识别等几部分。当车辆检测部分检测到车辆到达时触发图像采集单元,采集当前的视频图像。牌照识别单元对图像进行处理,定位出牌照位置,再将牌照中的字符分割出来进行识别,然后组成牌照号码输出。 三、详细设计步骤: 1. 提出总体设计方案: 牌照号码、颜色识别 为了进行牌照识别,需要以下几个基本的步骤: a.牌照定位,定位图片中的牌照位置;

数字图像处理 课程设计报告 matlab

欢迎阅读数字图像处理 课程设计报告 姓名: 学号: 班级: .net 设计题目:图像处理 教师:赵哲老师 提交日期: 12月29日

一、设计内容: 主题:《图像处理》 详细说明:对图像进行处理(简单滤镜,模糊,锐化,高斯模糊等),对图像进行处理(上下对称,左右对称,单双色显示,亮暗程度调整等),对图像进行特效处理(反色,实色混合,色彩平衡,浮雕效果,素描效果,雾化效果等), 二、涉及知识内容: 1、二值化 2、各种滤波 3、算法等 三、设计流程图 插入图片 对图片进行处理 二值化处理 重复 输出两幅图 结束 四、实例分析及截图效果: 运行效果截图: 第一步:读取原图,并显示 close all;clear;clc; % 清楚工作窗口clc 清空变量clear 关闭打开的窗口close all I=imread('1.jpg'); % 插入图片1.jpg 赋给I imshow(I);% 输出图I I1=rgb2gray(I);%图片变灰度图 figure%新建窗口

subplot(321);% 3行2列第一幅图 imhist(I1);%输出图片 title('原图直方图');%图片名称 一,图像处理模糊 H=fspecial('motion',40); %% 滤波算子模糊程度40 motion运动 q=imfilter(I,H,'replicate');%imfilter实现线性空间滤波函数,I图经过H滤波处理,replicate反复复制 q1=rgb2gray(q); imhist(q1); title('模糊图直方图'); 二,图像处理锐化 H=fspecial('unsharp');%锐化滤波算子,unsharp不清晰的 qq=imfilter(I,H,'replicate'); qq1=rgb2gray(qq); imhist(qq1); title('锐化图直方图'); 三,图像处理浮雕(来源网络) %浮雕图 l=imread('1.jpg'); f0=rgb2gray(l);%变灰度图 f1=imnoise(f0,'speckle',0.01); %高斯噪声加入密度为0.01的高斯乘性噪声 imnoise噪声污染图像函数 speckle斑点 f1=im2double(f1);%把图像数据类型转换为双精度浮点类型 h3=1/9.*[1 1 1;1 1 1;1 1 1]; %采用h3对图像f2进行卷积滤波 f4=conv2(f1,h3,'same'); %进行sobel滤波 h2=fspecial('sobel'); g3=filter2(h2,f1,'same');%卷积和多项式相乘 same相同的 k=mat2gray(g3);% 实现图像矩阵的归一化操作 四,图像处理素描(来源网络) f=imread('1.jpg'); [VG,A,PPG] = colorgrad(f); ppg = im2uint8(PPG); ppgf = 255 - ppg; [M,N] = size(ppgf);T=200; ppgf1 = zeros(M,N); for ii = 1:M for jj = 1:N if ppgf(ii,jj)

基于matlab的AM调制仿真课程设计报告书

xx学院 课程设计报告 课程名称:通信原理 设计题目:基于matlab的AM调制仿真学生班级:13通信(1) 学生:xxxxxxx 指导教师:王小x 完成日期:2015-12-24 数学与计算机学院

课程设计项目研究报告 目录 第 1 章项目简介 (1) 1.1 项目名称 (1) 1.2 开发人员 (1) 1.3 指导教师 (1) 第 2 章项目研究意义 (1) 2.1 课程设计概述 (1) 2.2 研究意义 (2) 第 3 章采用的技术 (2) 3.1 课程设计的方案设计原理 (2) 第 4 章课程设计项目进度表 (4) 第 5 章课程设计任务分配表 (4) 第 6 章达到的效果 (4) 6.1 程序设计思想 (4) 6.2 程序最终实现结果 (5) 第 7 章源程序 (11) 7.1 当调制信号是单一频率时 (11) 7.2 当调制信号不是单一频率时 (13) 第 9 章设计心得 (15) 第 10 章参考文献 (16)

第 1 章项目简介 1.1 项目名称 基于matlab的AM调制仿真 1.2 开发人员 阮文添、清海 1.3 指导教师 王小文 第 2 章项目研究意义 2.1 课程设计概述 正弦载波幅度随调制信号而变化的调制,简称调幅(AM)。调幅的技术和设备比较简单,频谱较窄,但抗干扰性能差,广泛应用于长中短波广播、小型无线、电报等电子设备中。早期的无线电报机采用火花式放电器产生高频振荡。传号时火花式发报机发射高频振荡波,空号时发报机没有输出。这种电报信号的载波不是纯正弦波,它含有很多谐波分量,会对其他信号产生严重干扰。理想的模拟正弦波调幅是:载波幅度与调制信号瞬时值成线性关系。 MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境.MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。是由美国mathworks 公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境[1]。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。

相关主题