实验报告
课程名称: MATLAB与机电系统仿真
实验项目: Refraction&High-Pass Filter 专业班级: 姓 名: 学 号: 实验室号: 实验组号: 实验时间: 批阅时间: 指导教师: 成 绩:
沈阳工业大学实验报告
(适用计算机程序设计类)
专业班级: 学号: 姓名:
实验名称:Refraction & High-Pass Filter 1. 实验目的: (1)、熟悉分支结构与循环结构的程序编写; (2)、练习使用分支结构与循环结构解决实际问题。 2.实验内容: (1)、编写MATLAB程序,计算光路从一种介质入射到另一种介质当中时的折射角;并描绘出光路图; (2)、编写MATLAB程序,绘制出高通滤波器的幅频特性和相频特性。 3. 实验方案(程序设计说明) 【见附件A】 4. 实验步骤或程序(经调试后正确的源程序) 【主要步骤与程序代码等。见附件A】 5.程序运行结果 正确计算出折射角度(rad);较准确地绘制出高通滤波器的幅频、相频特性。 6.出现的问题及解决方法 在角度计算时,应注意将入射角折算成rad。 附件A 沈阳工业大学实验报告
(适用计算机程序设计类)
专业班级: 学号: 姓名:
实验步骤或程序:
(一)、Refraction (1)、创建一个新.m文件; (2)、编写MATLAB程序如下:
%Script file:refraction.m % %Purpose:
% This program calculates the angle of incidence %
%Record of revisions:
% Date Programmer Description of change % ==== ========== ===================== % 12/04/10 xxxxxxxx Original code %
% Define variables:
% a1 --the angle of incidence(in degerees) of the light in Region 1
% a2 --the angle of incidence(in degerees) of the light in Region 2
% n1 --the refractive index of Region 1 % n2 --the refractive index of Region 2 % conv --Degrees to radians conv factor % constant conv=pi/180;
%Prompt the user for the values n1 and n2 and a1 n1 = input ('Enter the refraction n1:'); n2 = input ('Enter the refraction n2:'); a1 = input ('Enter the angle a1(in degrees):'); if [n1*sin(a1*conv)]/n2>1 disp ('No Solutions.'); else
a2 = asin([n1*sin(a1*conv)]/n2)/conv;
disp ('the angle of incidence of the light in Region 2 is(in degrees):');
fprintf ('a2=%6.2f\\n',a2); end
x1=-5:0.5:0;
y1=-x1/[tan(a1*conv)];
x2=0:0.5:5;
y2=-x2/tan(a2*conv); plot(x1,y1,'r',x2,y2,'b'); title('the plot of refraction'); xlabel('法线方向') ylabel('介质分界面') axis([-5,5,-5,5]) grid on;
(3)、运行测试程序:
输入第一组测试数据:1.0、1.7、45,结果及光路图如下:
输入第二组测试数据:1.7、1.0、45,结果如下:
(二)、High-Pass Filter (1)、创建新.m 文件
(2)、编写相应的MATLAB程序如下: % Script file:high-pass-hilter.m %
% Purpose:
% This program calculates and plots the amplitude and phase responses % of this filter as a function of frequency. %
% Record of revisions:
% Date Programmer Descrition of change % ==== ========== ==================== % 11/30/10 wensheng Original code %
% Define variables:
% amp --Amplitude response % C __Capacitance (farads)
% f __Frequency of input signal(Hz) % phase __Phase response % R __Resistance (ohms) % res __Vo/Vi % Initialize R&C R=16000; C=1.0E-6;
%Create array of input frequencies f=1:2:1000
%Caculate the response
res=(j*2*pi*f*R*C)./(1+j*2*pi*f*R*C) %Caculate the amplitude response amp=abs(res)
%Caculate the phase response phase=angle(res) %Create plots subplot(2,1,1); loglog(f,amp);
title('Amplitude response'); xlabel('Frequency (Hz)'); ylabel('Output/Input Ratio'); grid on;
subplot(2,1,2); semilogx(f,phase); title('Phase Response'); xlabel('Frequency (Hz)');
ylabel('Output/Input Phase(rad)'); grid on;
(2)、运行测试程序,图像如下:
实验总结:
本次实验让我熟悉了分支结构的实际应用,以及应用subplot函数实现多图共存的方法,成功绘制出了折射光路图及高通滤波器的幅频与相频特性图,要注意函数式的表达及应用axis([xmin xmax ymin ymax])使图像更明确显示。实验成功。
因篇幅问题不能全部显示,请点此查看更多更全内容