信号处理工程应用训练(指导书)
- 格式:docx
- 大小:299.08 KB
- 文档页数:50
《数字信号处理》实验指导书自动化工程学院2008年实验基本要求课程名称:数字信号处理实验开课学期:5课程总学时:10学时(课内)开课对象:测控技术与仪器专业实验目的与要求:《数字信号处理》课程是自动化、电子信息、电子信息科学与技术、通信工程等专业的重要专业基础课。
本课程以信号与系统、工程数学为基础,要求学生掌握时域离散信号和系统的基本理论、基本分析方法以及FFT、数字滤波器等数字信号处理技术。
《数字信号处理》是一门理论与实践联系紧密的课程,本课程安排5个实验,共计10个学时,以帮助学生掌握数字信号处理技术,提高学生分析问题和解决问题的能力,并通过实验培养学生的创新意识。
本实验课程的基本要求如下:1.学会用MATLAB语言编写控制系统设计与分析的程序,通过上机实习加深对课堂所学知识的理解。
2.上机前按要求把实验内容准备好,编好程序及需要改变的参数,能预计出可能出现的结果。
3.观察实验结果,得出结论。
4.实验结束后提交实验报告。
5.实验考核:采用实验操作与实验报告综合评分。
实验报告内容要求:一、实验名称二、实验目的三、实验内容四、实验所涉及到的理论知识要点五、实验方法及步骤六、实验结果及分析实验一 信号发生一、实验目的1、掌握Matlab软件使用的基本方法;2、利用MATLAB实现常见离散信号的产生和图形显示。
二、实验内容:1 单位采样序列例:利用Matlab产生64点的单位采样序列clear all;N=64;x=zeros(1,N);x(1)=1;xn=0:N-1;stem(xn,x);%离散序列图或杆图axis([-1 65 0 1.1]); %更改绘图坐标2 单位阶跃序列例:产生一个32点的单位阶跃序列。
clear all;N=32;x=ones(1,N);%产生全1矩阵xn=0:N-1;stem(xn,x);axis([-1 32 0 1.1]);3 矩形序列4 单边指数序列例使用Matlab画出a=0.7时点数为32点的单边指数序列:clear all;N=32;a=0.7;xn=0:N-1;x=a.^xn;stem(xn,x);5 正弦信号:()sin()=Ω+f t A tθ例使用Matlab产生一个周期的正弦信号。
《数字信号处理》实验指导书通信教研室安阳工学院二零零九年三月第1章 系统响应及系统稳定性1.1 实验目的● 学会运用MATLAB 求解离散时间系统的零状态响应;● 学会运用MATLAB 求解离散时间系统的单位取样响应;● 学会运用MATLAB 求解离散时间系统的卷积和。
1.2 实验原理及实例分析1.2.1 离散时间系统的响应离散时间LTI 系统可用线性常系数差分方程来描述,即∑∑==-=-Mj jN i i j n x b i n y a 00)()( (1-1) 其中,i a (0=i ,1,…,N )和j b (0=j ,1,…,M )为实常数。
MATLAB 中函数filter 可对式(13-1)的差分方程在指定时间范围内的输入序列所产生的响应进行求解。
函数filter 的语句格式为y=filter(b,a,x)其中,x 为输入的离散序列;y 为输出的离散序列;y 的长度与x 的长度一样;b 与a 分别为差分方程右端与左端的系数向量。
【实例1-1】 已知某LTI 系统的差分方程为)1(2)()2(2)1(4)(3-+=-+--n x n x n y n y n y试用MATLAB 命令绘出当激励信号为)()2/1()(n u n x n=时,该系统的零状态响应。
解:MATLAB 源程序为>>a=[3 -4 2];>>b=[1 2];>>n=0:30;>>x=(1/2).^n;>>y=filter(b,a,x);>>stem(n,y,'fill'),grid on>>xlabel('n'),title('系统响应y(n)')程序运行结果如图1-1所示。
1.2.2 离散时间系统的单位取样响应系统的单位取样响应定义为系统在)(n 激励下系统的零状态响应,用)(n h 表示。
实验一元件参数及性能的测定一、实验目的1.学会识别常用电路元件的方法。
2.掌握线性电阻、非线性电阻元件伏安特性的逐点测试法。
3.掌握实验台上直流电工仪表和设备的使用方法。
4.用实验证明电路中电位的相对性、电压的绝对性。
5.掌握电路电位图的绘制方法。
二、实验原理任何一个二端元件的特性都可以用电压和电流的方程式V=IR来表示,利用这一公式的前提是电压V和电流I的参考方向相关联,即参考方向一致。
如果参考方向相反,则方程式为V=-IR。
除了上述的表述方法以外,二端元件的特性还可以用该元件的端电压U与通过该元件的电流I之间的函数关系I=f(U)来描述,即在U-I平面上采用逐点测试的方法,测试一条电流和电压对应关系曲线,这条曲线称为该元件的伏安特性曲线。
电阻元件是一种对电流呈现阻力的元件,有阻碍电流流动的性能。
当电流通过电阻元件时,必然要消耗能量,沿着电流流动的方向将产生电压降。
其值的大小等于该电流与电阻的乘积,这一关系称为欧姆定律。
1、线性电阻元件当电阻元件R的阻值不随电压或电流的Array大小变化而变化时,则电阻R两端的电压与流过的电流成正比,符合这种条件的电阻元件称为线性电阻元件。
线性电阻的伏安特性曲线如图1-1(A)所示,它是一条通过坐标原点的直线,其斜率等于该电阻阻值的倒数。
2、非线性电阻元件电路中大部分元件是不具备上述线性电阻元件的,这类元件叫非线性电阻元件。
半导体二极管就是典型的非线性电阻元件,其伏安特性如图1-1(C)所示。
它的阻值随着流过的电流大小而变化。
当外加电压的极性和二极管的极性相同时,称为正向连接。
正向连接时二极管的阻值很小(十几欧至几十欧),正向压降很小(锗管为0.2―0.3V,硅管约为0.5―0.7V),正向电流随正向压降的升高而呈指数规律变化。
当外加电压极性与二极管极性不相同时,称为反向连接。
反向电压从零伏一直增加到十几伏,反向电流值很小且其变化也很小(约为微安级)。
半导体二极管的这一特性称为单向导电性。
数字信号处理实验指导书实验一离散时间系统及离散卷积一、实验目的(1)熟悉MA TLAB软件的使用方法。
(2)熟悉系统函数的零极点分布、单位脉冲响应和系统频率响应等概念。
(3)利用MATLAB绘制系统函数的零极点分布图、系统频率响应和单位脉冲响应。
(4)熟悉离散卷积的概念,并利用MATLAB计算离散卷积。
二、实验内容1、离散时间系统的单位脉冲响应(1)选择一个离散时间系统;(2)用笔进行差分方程的递推计算;(3)编制差分方程的递推计算程序;(4)在计算机上实现递推运算;(5)将程序计算结果与笔算的计算结果进行比较,验证程序运行的正确性;2、离散系统的幅频、相频的分析方法(1)给定一个系统的差分方程或单位取样响应;(2)用笔计算几个特殊的幅频、相频的值,画出示意曲线图;(3)编制离散系统的幅频、相频的分析程序;(4)在计算机上进行离散系统的幅频、相频特性计算,并画出曲线;(5)通过比较,验证程序的正确性;3、离散卷积的计算(1)选择两个有限长序列,用笔计算其线性卷积;(2)编制有限长序列线性卷积程序;(3)利用计算程序对(1)选择的有限长序列进行卷积运算;(4)比较结果验证程序的正确性。
三、实验要求a)自编并调试实验程序,并且,给实验程序加注释;b)按照实验内容完成笔算结果;c)验证计算程序的正确性,记录实验结果。
d) 至少要求一个除参考实例以外的实验结果,在实验报告中,要描述清楚实验结果对应的系统,并对实验结果进行解释说明。
实验二 离散傅立叶变换与快速傅立叶变换一、实验目的1、加深理解离散傅立叶变换及快速傅立叶变换概念;2、学会应用FFT 对典型信号进行频谱分析的方法;3、研究如何利用FFT 程序分析确定性时间连续信号;4、熟悉应用FFT 实现两个序列的线性卷积的方法。
二、实验原理在各种信号序列中,有限长序列信号处理占有很重要地位,对有限长序列,我们可以使用离散Fouier 变换(DFT)。
这一变换不但可以很好的反映序列的频谱特性,而且易于用快速算法在计算机上实现,当序列x(n)的长度为N 时,它的DFT 定义为()()[]()∑==-=10N n nk NWn x n x DFT k X 10-≤≤N k反变换为()()[]()∑==-=-101N n nk N Wk X Nk X IDFT n x 10-≤≤N n有限长序列的DFT 是其Z 变换在单位圆上的等距采样,或者说是序列Fourier变换的等距采样,因此可以用于序列的谱分析。
《数字信号处理》实验指导书信息与机电工程学院实验中心2017-11-20实验一 常见离散信号的MATLAB 产生和图形显示一、实验目的:加深对常用离散信号的理解; 二、实验原理:1、基础知识:R1.1 单位样本序列10[]0n n n δ=⎧=⎨≠⎩如果()n δ在时间轴上延迟了k 个单位,得到()n k δ-,即:1[]0n k n k n kδ=⎧-=⎨≠⎩R1.2 单位阶跃序列10[]0n u n n ≥⎧=⎨<⎩ R1.3 指数序列[]n x n A α=,其中()00j e σωα+=,j A A e φ=,则前式化为()000000[]cos()sin()n j n n n x n A eA e n j A e n σωφσσωφωφ++==+++R1.4 正弦序列0[]cos()x n A n ωφ=+,其中A ,0ω,φ是实数,分别称为正弦序列的振幅、角频率和初始相位。
00/2f ωπ=称为频率。
2、用到的MATLAB 命令 运算符和特殊符号 : . + -* / .^ ; %基本矩阵和矩阵控制 i ones pirand randnzeros基本函数 cos sin exp imag real二维图形 axis gird legendplotstem title xlabel ylabelstairs 通用图形函数 clf subplot三、实验内容及要求:编制程序产生信号,并绘出其图形。
例1.1单位样本和单位阶跃序列% 程序 P1.1% 一个单位样本序列的产生clf;% 产生一个从-10到20的向量n = -10:20;% 产生单位样本序列u = [zeros(1,10) 1 zeros(1,20)];% 绘制单位样本序列stem(n,u);xlabel('时间序号 n');ylabel('振幅');title('单位样本序列');axis([-10 20 0 1.2]);习题:Q1.1 运行程序P1.1,以产生单位样本序列u[n]并记录它。
注意此书用的时候N要先付值数字信号处理实验指导书目录前言 (1)第一章MATLAB基础知识 (1)第二章MATLAB基本数值运算 (4)第三章MATLAB的图形处理功能 (8)第四章MATLAB的程序设计 (11)第五章常用数字信号处理函数 (16)第六章MATLAB在数字信号处理中的应用 (23)实验一常见离散信号的MATLAB产生和图形显示 (33)实验二离散系统的频率响应分析和零、极点分布 (37)实验三序列线性卷积、圆周卷积的计算及其关系的研究 (39)实验四利用DFT分析信号的频谱 (41)实验五信号时间尺度变换的研究 (43)实验六快速傅里叶变换及其应用 (47)实验七IIR滤波器的实现与应用 (56)实验八FIR滤波器的实现与应用 (61)第一章MATLAB基础知识§1-1 MA TLAB软件简介MATLAB,Matrix Laboratory的缩写,是由Mathworks公司开发的一套用于科学工程计算的可视化高性能语言,具有强大的矩阵运算能力。
它集数值分析、矩阵运算、信号处理和图形显示于一体,构成了一个界面友好的用户环境,在这个环境中,问题与求解都能方便地以数学的语言(主要是矩阵形式)或图形方式表示出来。
与大家常用的Fortran 和C等高级语言相比,MA TLAB的语法规则更简单,更贴近人的思维方式,被称为“草稿纸式的语言”。
§1-2 MA TLAB应用入门1.MATLAB的安装与卸载MATLAB软件在用户接口时具有较强的亲和力,其安装过程比较典型,直接运行光盘中的安装向导支撑程序SETUP.exe,按其提示一步步选择即可。
MATLAB自身带有卸载程序,在其安装目录下有uninstall子目录,运行该目录下uninstall.exe的即可;也可以通过Windows系统的安装卸载程序进行卸载。
2.MATLAB的启动与退出MATLAB安装完成后,会自动在Windows桌面上生成一个MA TLAB图标,它是指向安装目录下\bin\win32\matlab.exe的链接,双击这个图标即可来到MATLAB集成环境的基本窗口;也可以在开始菜单的程序选项中选择MATLAB 快捷方式;还可以在MA TLAB的安装路径的bin子目录中双击可执行文件matlab.exe。
《数字信号处理》实验指导书适用专业:电气、信息、测控课程代码: 8401980总学时: 48 总学分: 3编写单位:电气学院信息工程系编写人:阳小明审核人:审批人:批准时间:年月日目录实验一 Matlab与数字信号处理基础 (2)实验二离散傅里叶变换与快速傅里叶变换 (4)实验三数字滤波器结构 (6)注释 (9)主要参考文献 (9)实验一 Matlab与数字信号处理基础一、实验目的和任务1、熟悉Matlab的操作环境2、学习用Matlab建立基本序列的方法;3、学习用仿真界面进行信号抽样的方法。
二、实验内容1、基本序列的产生:单位抽样序列、单位阶跃序列、矩形序列、实指数序列和复指数序列的产生2、用仿真界面进行信号抽样练习:用simulink建模仿真信号的抽样三、实验仪器、设备及材料计算机、Matlab软件四、实验原理序列的运算、抽样定理五、主要技术重点、难点Matlab的各种命令与函数、建模仿真抽样定理六、实验步骤1、基本序列的产生:单位抽样序列δ(n): n=-2:2;x=[0 0 1 0 0];stem(n,x);单位阶跃序列u(n):n=-10:10;x=[zeros(1,10) ones(1,11)];stem(n,x);矩形序列R N(n):n=-2:10;x=[0 0 ones(1,5) zeros(1,6)];stem(n,x);实指数序列0.5n:n=0:30;x=0.5.^nstem(n,x);复指数序列e(-0.2+j0. 3)n:n=0:30;x=exp((-0.2+j*0.3)*n);模:stem(n,abs(x));幅角:stem(n,angle(x));2、用仿真界面进行信号抽样练习:(1)在Matlab命令窗口中输入simulink 并回车,以打开仿真模块库;(2)按CTRL+N,以新建一仿真窗口;在仿真模块库中用鼠标点击Sources(输入源模块库),从中选择sine wave(正弦波模块)并将其拖至仿真窗口;(3)在仿真模块库中用鼠标点击Discrete(离散模块库),从中选择Zero-Order Hold(零阶保持器模块)并将其拖至仿真窗口;(4)在仿真模块库中用鼠标点击Sinks(显示模块库),从中选择Scope(示波器模块)并将其拖至仿真窗口;(5)在仿真窗口中把上述模块依次连接起来;(6)用鼠标双击Scope模块,以打开示波器的显示界面;(7)用鼠标点击仿真窗口工具条中的►图标开始仿真,结果显示在示波器中;(8)用鼠标双击Zero-Order Hold模块,打开其参数设置窗口,改变sample time参数值,例如1、0.5、0.1、0.05…,用鼠标点击仿真窗口工具条中的►图标开始仿真,比较示波器显示结果(选三个参数值,得三个结果);(9)在仿真模块库中用鼠标点击Sinks(显示模块库),从中选择To Workspace(输出到当前工作空间的变量模块)并将其拖至仿真窗口;(10)用鼠标双击To Workspace模块,打开其参数设置窗口,改变variable name参数值为x ;同时把save format参数值设置为Array ;(11)在仿真窗口中先用鼠标点击Zero-Order Hold模块与Scope模块的连线,然后按住CTRL 键,从选中连线的中部引出一条线到To Workspace模块;(12)用鼠标双击Zero-Order Hold模块,打开其参数设置窗口,改变sample time参数值,例如1、0.5、0.1、0.05…,用鼠标点击仿真窗口工具条中的►图标开始仿真,并返回命令窗口,用stem(x)作图,比较序列图显示结果(选三个参数值,得三个结果);七、实验报告要求1、实验步骤按实验内容指导进行;2、对于实验内容1和2的数据必须给出的离散图,其相关参数应在图中注明;3、具有关联性和比较性的图形最好用subplot()函数,把它们画在一起;4、实验报告按规定格式填写,要求如下:(1)实验步骤根据自己实际操作填写;(2)各小组实验数据不能完全相同,否则以缺席论处;5、实验结束,实验数据交指导教师检查,得到允许后可以离开,否则以缺席论处;八、实验注意事项1、Matlab编程、文件名、存盘目录均不能使用中文。
数字信号处理 实验指导书(V1.001版)成都理工大学信息工程学院2010年9月目录第一部分实验基础 (3)第一章序列的产生 (3)1.1 单位采样序列 (3)1.2 单位阶跃序列 (4)1.3 指数序列 (5)1.4 实正弦序列 (6)1.5 斜坡序列 (7)1.6 复正弦序列 (8)1.7 随机序列 (9)第二章序列的基本运算 (10)2.1 信号的延迟 (10)2.2 信号相加 (11)2.3 信号相乘 (12)2.4 信号乘以标量值 (14)2.5 信号翻转 (14)2.6 信号和 (15)2.7 信号积 (16)2.8 信号能量 (16)第三章序列的变换 (18)3.1 Z变换 (18)3.2 Chirp Z变换 (19)3.3 DFT (21)3.4 FFT (22)3.5 DCT (23)3.6 Hilbert变换 (25)第四章 IIR数字滤波器设计 (28)4.1 Butterworth低通滤波器 (29)4.2 Chebyshev I型低通滤波器 (31)4.3 Chebyshev I型高通滤波器 (32)4.4 Chebyshev I型带通滤波器 (33)4.5 Chebyshev I型带阻滤波器 (34)4.6 基于冲激响应不变法的IIR数字滤波器 (35)第五章 FIR数字滤波器设计 (38)5.1 基于频率抽样法的FIR数字滤波器设计 (38)5.2 基于Chebyshev逼近法的FIR数字滤波器设计 (40)第二部分实验内容 (42)实验一信号、系统及系统响应 (42)实验二使用FFT作谱分析 (42)实验三使用双线性Z变换法设计IIR滤波器 (42)实验四使用窗函数法设计FIR滤波器 (43)第一部分实验基础第一章序列的产生1.1 单位采样序列(1)例程% 程序1.1-1% 一个单位采样序列的产生clf; % 清屏n = 0:20; % 产生从0到20的一个向量u = [1, zeros(1,20)]; % 产生单位采样序列stem(n,u); % 绘制单位采样序列xlabel(‘时间序号(n)’);ylabel(‘振幅’);title(‘单位采样序列’);axis([0 20 0 1.2]);% 程序1.1-2% 一个移位单位采样序列的产生clf; % 清屏n = -10:20; % 产生从-10到20的一个向量u = [zeros(1,10), 1, zeros(1,20)]; % 产生单位采样序列stem(n,u); % 绘制单位采样序列xlabel(‘时间序号(n)’);ylabel(‘振幅’);title(‘单位采样序列’);axis([-10 20 0 1.2]);(2)程序运行结果时间序号(n)振幅单位采样序列时间序号(n)振幅单位采样序列图1.1-1 例程1.1-1运行结果 图1.1-2 例程1.1-2运行结果1.2 单位阶跃序列(1)例程% 程序1.2-1% 一个单位阶跃序列的产生clf; % 清屏n = 0:20; % 产生从0到20的一个向量 s = [ones(1,20)]; % 产生单位阶跃序列stem(n,u);% 绘制单位采样序列 xlabel(‘时间序号(n)’); ylabel(‘振幅’);title(‘单位采样序列’); axis([0 20 0 1.2]);(2)程序运行结果时间序号(n)振幅单位阶跃序列图1.2-1 例程1.2-1的运行结果1.3 指数序列(1)例程% 程序1.3-1% 一个复指数序列的产生clf; % 清屏c = -(1/12) + (pi/6)*I;K = 2;n = 0:40;x = K*exp(c*n);subplot(2,1,1);stem(n, real(x)); % 绘制复指数序列实部xlabel(‘时间序号(n)’);ylabel(‘振幅’);title(‘实部’);subplot(2,1,2);stem(n, imag(x)); % 绘制复指数序列虚部xlabel(‘时间序号(n)’);ylabel(‘振幅’);title(‘虚部’);% 程序1.3-2% 一个实指数序列的产生clf; % 清屏n = 0:35;a = 1.2;K = 0.2;x = K*a.^n;stem(n,x); % 绘制实指数序列xlabel(‘时间序号(n)’);ylabel(‘振幅’);(2)程序运行结果时间序号(n)振幅时间序号(n)振幅虚部时间序号(n)振幅图1.3-1 例程1.3-1的运行结果 图1.3-2 例程1.3-2的运行结果1.4 实正弦序列(1)例程% 程序1.4-1% 一个实正弦序列的产生clf; % 清屏 n = 0:40; f = 0.1; phase = 0; A = 1.5;arg = 2*pi*f*n – phase; x = A * cos(arg);stem(n, x); % 绘制正弦序列 xlabel(‘时间序号(n)’); ylabel(‘振幅’); title(‘正弦序列’); grid;axis([0 40 -2 2]);(2)程序运行结果时间序号(n)振幅正弦序列图1.4-1 例程1.4-1的运行结果1.5 斜坡序列(1)例程% 程序1.5-1% 一个斜坡序列的产生clear all ; N = 32; k = 4; B = 3;x = [zeros(1,k),ones(1,N-k)]; for i=1:N x(i) = B*x(i)*(i-k); endxn = 0:N-1; stem(xn,x);axis([-1 32 0 90]);(2)程序运行结果图1.5-1 例程1.5-1的运行结果1.6 复正弦序列(1)例程% 程序1.6-1% 一个复正弦序列的产生clear all;N = 32;A = 3;w = 314;xn = 0:N-1;x = A*exp(j*w*xn);stem(xn,x);axis([-1 32 -3.2 3.2]);(2)程序运行结果图1.6-1 例程1.6-1的运行结果1.7 随机序列(1)例程% 程序1.7-1% 一个随机序列的产生lear all;N = 8;x = zeros(1,N);x(1) = 8.0;x(2) = 3.4;x(3) = 1.8;x(4) = 5.6;x(5) = 2.9;x(6) = 0.7;xn = 0:N-1;stem(xn,x);axis([-1 8 0 8.2]);(2)程序运行结果图1.7-1 例程1.7-1的运行结果第二章 序列的基本运算在数字信号处理中,信号的基本运算包括移位、相加、相乘和翻转等。
数字信号处理实验指导书电子与信息工程学院二○一二年前言数字信号处理(DSP)研究数字序列信号的表示方法,并对信号进行运算,以提取包含在其中的特殊信息。
数字信号处理是一门技术基础课程,实验是该课程教学的重要内容,是理论联系实际的重要手段。
学生通过实验,可以验证和巩固所学的理论知识,掌握数字信号处理实验的基本技能,提高分析和解决实际问题的能力,培养认真、严谨、实事求是的工作作风。
我们根据当前通信类新课程体系的流行趋势,充分考虑通信工程类专业的特殊要求,编写了这门实验课程指导书。
在内容安排上,我们在自身的教学基础上,吸收了兄弟院校的先进经验。
我们把重点放在对学生理论联系实际、分析和解决问题能力的训练上,力求丰富实验内容,简化实验方法与步骤,化抽象为具体,让学生通过实验能够举一反三,融会贯通,提高信息处理和信息加工的能力,为以后在信息领域的发明和创造打下牢固的基础。
在实验的具体编排上,我们按照循序渐进的原则,逐步加深实验内容,注意前后实验之间的连贯性,强化基本实验技能的培养,保证实验内容的丰富性、生动性,增强学生对数字信号处理实验课程的兴趣。
目录实验一信号的谱分析 (1)实验二基-2FFT算法的软件实现 (6)实验三 IIR数字滤波器的设计 (12)实验四 FIR数字滤波器的设计 (16)实验一 信号的谱分析一、实验目的1、熟练掌握快速离散傅里叶变换(FFT )的原理及用FFT 进行频谱分析的基本方法;2、熟悉连续信号经理想采样前后的频谱变化关系,加深对时域采样定理的理解;3、进一步了解离散傅里叶变换的主要性质及FFT 在数字信号处理中的重要作用。
二、基本原理1、离散傅里叶变换(DFT )及其主要性质DFT 表示离散信号的离散频谱,DFT 的主要性质中有奇偶对称特性,虚实特性等。
通过实验可以加深理解。
例如:实序列的DFT 具有偶对称的实部和奇对称的虚部,这可以证明如下: 由定义∑-==10)()(N n knNW n x k X∑∑-=-=-=1010)2sin()()2cos()(N n N n kn N n x j kn N n x ππ ∑-=-=-10)()()(N n nk N NW n x k N X∑-=-=1)(N n kn NNnW Wn x∑-=-=10)(N n knN W n x∑∑-=-=+=1010)2sin()()2cos()(N n N n kn N n x j kn N n x ππ)(*)(k N X k X -=∴对于单一频率的三角序列来说它的DFT 谱线也是单一的,这个物理意义我们可以从实验中得到验证,在理论上可以推导如下: 设:)()2sin()(n R n N n x N π=其DFT 为:∑-=-=102)()(N n kn Njen x k X πkn Nj N n e n N ππ210)2sin(--=∑=kn N j N n n Nj nN j e e e j πππ21022)(21--=-∑-=∑-=+----=10)1(2)1(2)(21N n k n Nj k n N j e e j ππ从而∑-=-=-=10220)(21)0(N n n Nj nN j e e j X ππ∑-=--==-=10422)1(21)1(N n n Nj N j j N e j X π0)2(=X0)2(=-N X22)(21)1(102)2(2N j j N e e j N X N n n j n N N j =-=-=-∑-=--ππ以上这串式中)0(X 反映了)(n x 的直流分量,)1(X 是)(n x 的一次谐波,又根据虚实特性)1()1(X N X -=-,而其它分量均为零。
训练一信号与系统函数编程训练目的1﹑学会将信号与系统函数转变成计算机程序。
2﹑基本掌握将数学函数转变为程序函数的技巧与规范。
3﹑了解理论函数与程序函数的差异。
初步认识计算机适用范围。
训练介绍1﹑数学函数转化问题把根据数学函数编写的C函数子程序称为程序函数。
数学函数与程序不可能完全一致。
一是计算机运算都有一个范围,所做运算超出范围便会出错;二是因为计算机不能做除零运算,这会产生一除法错,理论函数无此限制。
所以要求在编写程序函数时一定要结合实际应用情形来确定如何编写,不能简单照搬数学函数。
三是程序函数不象数学函数那样易于进行代数运算或者具有某种运算性质,例如理论上的冲击函数,则不易编写对应的函数子程序,所以数学函数并不能全由计算机的程序函数完全实现。
一般在将一数学函数转变为一计算机上程序函数时,要具体情况具体处理。
编写程序函数有一些规范和注意事项:(1)数学函数当中若有除法运算,需仔细函数奇异值的处理,须通过程序中的判断和特殊处理使程序函数返回正确值。
(2)数学函数中跳变点的极限值,常取左右极限的均值,程序函数中以右极限作为函数的取值。
若特殊需要,须与数学函数完全一致,则仍按数学函数规定取值。
(3)所有函数子程序的输入与输出参量尽量规定为double型,建议不用float型,这是出于规范考虑。
(4)所有程序函数的输入输出参量声明时写成如下形式:Double function(Type out1,Type out2,...Type in1,Type in2,...)Double function(Type out1,Type out2,...Type io1,Type io2,... Type in1,Type in2,...)即,输出变量占一行,输入输出变量占一行,输入变量占一行。
输入变量的第一个参量为主变量。
(5) 尽量减少函数变量个数,例如sin(t)有两个参数,编程只需实现sin(x)。
(6) 每个函数子程序须有适当文字注释,注释的内容包括索引号,对应的理论函数,编者姓名及日期,函数的功能﹑定义域﹑值域,使用举例等。
说明应简洁清楚,以备能长期正确使用。
(7) 程序函数块内的小块以一空行进行分割,程序函数体之间,以2、3空行行分割。
组织一个函数库文件时应将功能,特征相近的函数子程序归在一起。
各分类块间应有适当的注释说明。
2﹑以下以单位阶跃U(t)、方波和函数])3][()1[(222222b a b a b a h +-+-+=三种信号函数为例进行编程示范:训练内容0 1、斜变函数R(t)=t ,t>02、锯齿波:f(t)=t / T,0≤t<T 扩展至整个t 轴(如图1-1所示)。
图1-13、调制SinC 信号:f(t) = (sin ωtcos Ωt)/ωt , 代入参数Ω、ω时,使Ω>>ω。
训练步骤1﹑依训练内容在一个文件中编写好三个函数子程序,并依要求进行注释,做成一个库文件。
2﹑编写一个有main( )函数的可执行文件,在此执行文件中调用库文件里的函数子程序进行计算,计算结果由计算机屏幕输出,结合手算验证,多取不同情况的特殊值,保证程序函数正确。
问题讨论1﹑举例说明不宜用程序函数表达的理论函数,并总结这些函数的特点。
2﹑讨论理论方式、计算机方式在处理实际物理的信号与系统问题时的异同。
3﹑对规范化程序方法的初步认识。
]训练二图形显示与观察训练目的1﹑掌握基本的计算机作图方法。
2﹑掌握常用的信号与系统图形观察。
3﹑熟悉一些显示器编程的基本概念。
训练介绍1、计算机绘图基础对于计算机屏幕,机器本身按物理坐标绘图显示,屏幕左上角的物理坐标是(0,0),右下角的坐标是(横向分辨率-1,纵向分辨率-1)。
Windows操作系统是在屏幕上开若干窗口,有客户区的窗口用户可以在客户区作图,窗口客户区的左上角的相对物理坐标是(0,0),右下角的相对物理坐标是(w-1,h-1),w是宽,h是高,用户工程使用的是自己定义的用户坐标,用户坐标到窗口的相对物理坐标有一个转换。
如图2-1所示:(图2-1)用户坐标可以是三维坐标,同样是转换到2维屏幕窗口坐标。
工程中常用不同的窗口模拟一些仪器,如用示波器﹑扫频仪﹑频谱仪﹑矢量分析仪等等,也可用不同的坐标系统和作图函数工具研究分析工程中的信号和系统。
对窗口的作图由不同的图形驱动函数实现。
基本的作图函数有SetPixel()、MoveToEx()、LineTo(),其它作图函数可由基本函数构造出来。
工程训练中,对2维用户坐标窗口作图函数,函数名后有一个2,如linto2(),3维的作图函数后面有一个3。
不同窗口不同坐标体系的作图函数众多,主要的是掌握基本,理解其它或构建其它。
训练内容1、用plotxy2( )绘制余弦,正切,和e为底的指数函数;2﹑用plotxy2( )绘制训练一中的斜变函数和锯齿波函数,用plotxyz3()绘制sinC()函数。
3、练习物理坐标下的作图,绘制圆,三角形和扇型图(参数自定)训练三 波形合成训练目的1﹑学会用计算机合成波形。
2﹑学习将理论知识同用计算机相结合的方法。
训练介绍波形合成有许多运用,如电子琴、信号源、计算机里声卡,合成法使得信号、声音、图象的产生更加容易,使用更加方便,计算机研究信号波形合成,可直观看出合成的具体效果,这对我们进行科学研究和设计新仪器新设备都有极大帮助。
训练理论,核心是一种函数逼近,通过合成信号g(t)希望能与理想信号f(t)差别很小,以使实际使用当中可用合成信号代替理想信号。
用数学形式表示为:g(t)=c 1g 1(t)+c 2g 2(t)+...c n g n (t),(g 1(t)﹑g 2(t) ... g n (t)为一函数集)在(3-1)条件下的c 1﹑c 2...c n ,可得到f(t)与g(t)的最佳匹配。
由此可找到函数f(t)在不同坐标函数集上的分解合成形式。
其中由正交正弦函数集表示的傅立叶级数为:式中)23()sin cos ()sin cos (2)(01-+=++=∑∑∞=∞=k k k k k k t k b t k a t k b t k a a t f ωωωω)13()]()([min 212--⎰t t dtt g t f 求有关系函数介绍:积分工具函数为宏函数_Trapz(value,a,b,N,fx,x)将自变量为x 的f(x)在[a,b]区间划分成N 2进行梯形积分,返回的积分值⎰=ba dx x f value )(,注意x 为形式上参数,用于指明fx 函数表达式中的自变量,无须用前声明。
double FouSer(double t,double *T,double a[],double b[],int *N); 用于求(3-2)式的值。
t :为(3-2)中的自变量; T :为信号与系统函数的周期;a[],b[]:为(3-2)中系数构成的数组,数组长度为N 。
一个周期为1的函数f(t)的正交沃尔什级数表示为:其中:)83(),()(10-=⎰dtk t Wal t f A k这里k r 是k 的二进制各位数字,p 是二进制位数。
Walsh 函数只取{+1,-1},例如Wal (1,t )=sgn(cos t)在0〈=t<1/2时为+1,在1/2<=t<1时为-1。
该函数最大优点是运算速)53(sin )(2)43(cos )(2)33(2a )(10000-=-=-==⎰⎰⎰Tk Tk T tdt k t f T b t k t f Ta adt t f T a ωω,)63()10(),,()(0-<≤=∑∞=t k t Wal A t f k k )73(2),2sgn(cos ),(11-==∑∏-=-=rp r r p r rr k k t k k t Wal π度快,只须简单加减即可完成。
一个周期为T 的函数g(t)的正交沃尔什级数表示为:由C 函数实现walsh 函数的运算: double wal(double t,int n);实现(3-7)的运算,返回第k 级沃尔什函数在时间t 处的值。
double WalSer(double t,double *T,double a[],int n[1]); 实现(3-9)的运算,用级数合成函数。
程序示例选用的函数为::⎪⎪⎩⎪⎪⎨⎧<≤<≤<≤<≤=)43(0)32(2)21(5.1)10(5.0)(t t t t t f 扩展到整个t 轴。
把该函数编写成标准的信号与系统程序函数jieti(),在主函数中积分求级数系数,然后用级数程序函数合成波形。
训练准备1﹑预习有关付里叶级数,沃尔什级数的有关知识。
2﹑编写初步的上机程序。
训练内容1﹑作|sin(t)|,三角波,方波的5级傅立叶级数和沃尔什级数的合成图。
2﹑作出两种级数合成波形与理想波形的误差图。
)103(),()()93()0(),,(),()(00-=-<≤≈=⎰∑∑=∞=dt k TtWal t g A T t k T tWal A k T tWal A t g T k nk k k k训练四波形失真与群延时训练目的1﹑学会用计算机研究基本理论概念。
2﹑培养用计算机仿真实际问题的能力。
训练介绍在示波器研究信号与系统时,常需辅助设备,才能获得有关信号与系统的完整认识,图4-1是研究信号经一系统后产生失真的示意图,示波器同步信号采自系统输入,系统输出即失真信号做示波器显示,一个有经验的工程师可以通过调节系统旋钮1或2,观察失真信号变化,然后判断失真类型,否则就要借助专门的失真分析仪。
以下是有关失真的理论定义:(1)波形的幅度失真——指在信号的正弦分量中因幅度发生相对比例变化而引起的失真。
(2)波形的相位失真——指在信号的正弦分量中因相位发生相对位置变化而引起的失真。
上述两种失真不产生新的频率分量,一般也称作线性失真。
(3) 波形的频率失真——指在信号的正弦分量中因频率发生变化而引起的失真,这种失真产生新的频率分量,一般也称作非线性失真。
(4) 信号的群延时——指系统响应的各频率分量相对于激励中的相应各频率分量延迟的时间虽不相同,但输出信号的包络并不变形,只是延迟了一段时间,其相频关系为:b()=b 0+t 。
训练将通过动态连续模拟,以获得工程师相关经验。
相关函数:int instKeyCtr(double x[1],double a,double b,int n);该函数用于在已建好的用户坐标系统边框上安装一键盘控制按钮。
int keyCtr(double x[1],double a,double b,int n);/*:ESC=27 exit 0= . > 4key add dx=(b-a)/n; —_ , < 4key dec dx;*/ 预定义在xxgc.h ;为实际键盘控制函数,根据按键不同,控制x[0]的量作增或减(”+=.>”四键为增,“—-,<”四键为减),x[0]变化区间为[a,b],变化步长为(b-a )/n 。