数字信号报告汇总
数字信号处理实验总结

实验一 离散信号及运算一、 实验目的1. 掌握MA TLAB 语言的基本功能及实现方法;2. 掌握MA TLAB 中各种常用序列的表示和显示方法;3. 熟练运用MA TLAB 进行离散信号的各种运算。
二、 实验原理我们所接触的信号大多为连续信号,而计算机及其他设备处理的大多为数字信号。
为了便于处理,往往要对信号进行处理使之变成离散数字信号。
对信号进行时间上的量化(即采样)是对信号作数字化处理的第一个环节,要求理解采样的原理和采样的性质,知道采样前后信号的变化及对离散信号和系统的影响。
三、 实验内容1、用MA TLAB 实现下列序列,并画出图形:① 单位采样序列移位,100),3()(≤≤-=n n n x δ; 提示:实现单位采样序列:0001{)(≠==n n n δ,可通过以下语句实现:x=zeros(1,N);x(1)=1; n=0:10;x=[zeros(1,3),1,zeros(1,7)];stem(n,x); 01234567891000.10.20.30.40.50.60.70.80.91② 单位阶跃序列移位,100),3()(≤≤-=n n u n x提示:实现单位阶跃序列:0001{)(≠==n n n u ,可通过以下语句实现:x=ones(1,N);n=0:10; x=[zeros(1,3),1,ones(1,7)]; stem(n,x) 01234567891000.10.20.30.40.50.60.70.80.91③正弦序列,100),****2sin(*)(≤≤=n T n f A n x s π,其中A=2;f=10;s T =0.005; A=2; f=10; Ts=0.005; n=0:10;x=A*sin(2*pi*f*n*Ts); stem(n,x) 01234567891000.20.40.60.811.21.41.61.82③ 指数序列,100,9.0)(≤≤=n n x n n=0:10; x=0.9.^n; stem(n,x) 01234567891000.10.20.30.40.50.60.70.80.91④ 复指数序列,0.05+j*pi/4*()e ,2020n x n n =-≤≤,画出该序列的实部、虚部,幅值和相位。
数字信号实验报告材料 (全)

数字信号处理实验报告实验一:用 FFT 做谱分析 一、 实验目的1、进一步加深 DFT 算法原理和基本性质的理解。
2、熟悉 FFT 算法原理和 FFT 子程序的应用。
3、学习用FFT 对连续信号和时域离散信号进行谱分析的方法,了解可能出现的分析误差及其原因,以便在实际中正确应用 FFT 。
二、实验原理用FFT 对信号作频谱分析是学习数字信号处理的重要内容。
经常需要进行谱分析的信号是模拟信号和时域离散信号。
对信号进行谱分析的重要问题是频谱分辨率D 和分析误差。
频谱分辨率直接和FFT 的变换区间N 有关,因为FFT 能够实现的频率分辨率是2π/N ≤D 。
可以根据此时选择FFT 的变换区间N 。
误差主要来自于用FFT 作频谱分析时,得到的是离散谱,而信号(周期信号除外)是连续谱,只有当N 较大时离散谱的包络才能逼近于连续谱,因此N 要适当选择大一些。
周期信号的频谱是离散谱,只有用整数倍周期的长度作FFT ,得到的离散谱才能代表周期信号的频谱。
如果不知道信号周期,可以尽量选择信号的观察时间长一些。
对模拟信号的频谱时,首先要按照采样定理将其变成时域离散信号。
如果是模拟周期信号,也应该选取整数倍周期的长度,经过采样后形成周期序列,按照周期序列的谱分析进行。
三、实验内容和步骤对以下典型信号进行谱分析:⎪⎩⎪⎨⎧≤≤-≤≤-=⎪⎩⎪⎨⎧≤≤-≤≤+==其它nn n n n n x 其它nn n n n n x n R n x ,074,330,4)(,074,830,1)()()(32414()cos4x n n π=5()cos(/4)cos(/8)x n n n ππ=+6()cos8cos16cos20x t t t t πππ=++对于以上信号,x1(n)~x5(n) 选择FFT 的变换区间N 为8和16 两种情况进行频谱分析。
分别打印其幅频特性曲线。
并进行对比、分析和讨论;;x6(t)为模拟周期信号,选择 采样频率Hz F s 64=,变换区间N=16,32,64 三种情况进行谱分析。
数字信号处理实验报告汇总

目录实验1 离散时间信号的频域分析-----------------------2 实验2 FFT算法与应用-------------------------------7 实验3 IIR数字滤波器的设计------------------------12 实验4 FIR数字滤波器的设计------------------------17实验1 离散时间信号的频域分析一.实验目的信号的频域分析是信号处理中一种有效的工具。
在离散信号的时域分析中,通常将信号表示成单位采样序列δ(n )的线性组合,而在频域中,将信号表示成复变量enj ω-或 en Njπ2-的线性组合。
通过这样的表示,可以将时域的离散序列映射到频域以便于进一步的处理。
在本实验中,将学习利用MATLAB 计算离散时间信号的DTFT 和DFT,并加深对其相互关系的理解。
二、实验原理(1)DTFT 和DFT 的定义及其相互关系。
序列x(n)DTFT 定义为()jw X e =()nx n e ∞=∞∑ωjn -它是关于自变量ω的复函数,且是以2π为周期的连续函数。
()jw X e 可以表示为()()()jw jw jw re im X e X e jX e =+,其中,()jw re X e 和()jw im X e 分别是()jw X e 实部和虚部;还可以表示为 ()jw X e =()|()|jw j w X e e θ,其中,|()|jw X e 和{}()arg ()j w X e ωθ=分别是()jw X e 的幅度函数和相位函数;它们都是ω的实函数,也是以2π为周期的周期函数。
序列()x n 的N 点DFT 定义为2211()()()()N N jk jknkn NNN N nX k X ex n ex n W ππ---====∑∑,()X k 是周期为N 的序列。
()j X e ω与()X k 的关系:()X k 是对()j X e ω)在一个周期中的谱的等间隔N 点采样,即2k|()()|jww NX k X e π== ,而()j X e ω可以通过对()X k 内插获得,即1(2/)(1)/202)sin(12()()2sin()2N j k N N jwk N k X e X k e N k NNωπωπωπ-⎡⎤⎡⎤---⎣⎦⎣⎦=-=•-∑(2)使用到的MATLAB 命令有基于DTFT 离散时间信号分析函数以及求解序列的DFT 函数。
《数字信号处理》实验报告汇总

物理与电子电气工程学院实验报告
课程名称:数字信号处理
院系:物电学院
专业:电子信息科学与技术班级:
学号:
姓名:
实验报告(1)
实验名称常见离散信号产生与实现
实验日期2016年9月13日指导教师曹凤莲
实验报告(2)
实验名称离散时间系统的时域分析
实验日期2016年9月20日指导教师曹凤莲
实验报告(3)
实验名称离散时间LTI系统的z域分析
实验日期2016年9月27日指导教师曹凤莲
实验报告(4)
实验名称用FFT进行谱分析
实验日期2016年10月10日指导教师曹凤莲
实验报告(5)
实验名称实验五数字滤波器结构的实现
实验日期2016年10月17日指导教师曹凤莲
实验报告(6)
实验名称实验六IIR数字滤波器的设计
实验日期2016年10月25日指导教师曹凤莲。
数字信号处理实验报告

一、实验目的1. 理解数字信号处理的基本概念和原理。
2. 掌握离散时间信号的基本运算和变换方法。
3. 熟悉数字滤波器的设计和实现。
4. 培养实验操作能力和数据分析能力。
二、实验原理数字信号处理(Digital Signal Processing,DSP)是利用计算机对信号进行采样、量化、处理和分析的一种技术。
本实验主要涉及以下内容:1. 离散时间信号:离散时间信号是指时间上离散的信号,通常用序列表示。
2. 离散时间系统的时域分析:分析离散时间系统的时域特性,如稳定性、因果性、线性等。
3. 离散时间信号的变换:包括离散时间傅里叶变换(DTFT)、离散傅里叶变换(DFT)和快速傅里叶变换(FFT)等。
4. 数字滤波器:设计、实现和分析数字滤波器,如低通、高通、带通、带阻滤波器等。
三、实验内容1. 离散时间信号的时域运算(1)实验目的:掌握离散时间信号的时域运算方法。
(2)实验步骤:a. 使用MATLAB生成两个离散时间信号;b. 进行时域运算,如加、减、乘、除等;c. 绘制运算结果的时域波形图。
2. 离散时间信号的变换(1)实验目的:掌握离散时间信号的变换方法。
(2)实验步骤:a. 使用MATLAB生成一个离散时间信号;b. 进行DTFT、DFT和FFT变换;c. 绘制变换结果的频域波形图。
3. 数字滤波器的设计和实现(1)实验目的:掌握数字滤波器的设计和实现方法。
(2)实验步骤:a. 设计一个低通滤波器,如巴特沃斯滤波器、切比雪夫滤波器等;b. 使用MATLAB实现滤波器;c. 使用MATLAB对滤波器进行时域和频域分析。
4. 数字滤波器的应用(1)实验目的:掌握数字滤波器的应用。
(2)实验步骤:a. 采集一段语音信号;b. 使用数字滤波器对语音信号进行降噪处理;c. 比较降噪前后的语音信号,分析滤波器的效果。
四、实验结果与分析1. 离散时间信号的时域运算实验结果显示,通过MATLAB可以方便地进行离散时间信号的时域运算,并绘制出运算结果的时域波形图。
数字信号处理实验报告

数字信号处理实验报告一、实验目的本次数字信号处理实验的主要目的是通过实际操作和观察,深入理解数字信号处理的基本概念和方法,掌握数字信号的采集、处理和分析技术,并能够运用所学知识解决实际问题。
二、实验设备与环境1、计算机一台,安装有 MATLAB 软件。
2、数据采集卡。
三、实验原理1、数字信号的表示与采样数字信号是在时间和幅度上都离散的信号,可以用数字序列来表示。
在采样过程中,根据奈奎斯特采样定理,为了能够准确地恢复原始信号,采样频率必须大于信号最高频率的两倍。
2、离散傅里叶变换(DFT)DFT 是将时域离散信号变换到频域的一种方法。
通过 DFT,可以得到信号的频谱特性,从而分析信号的频率成分。
3、数字滤波器数字滤波器是对数字信号进行滤波处理的系统,分为有限冲激响应(FIR)滤波器和无限冲激响应(IIR)滤波器。
FIR 滤波器具有线性相位特性,而 IIR 滤波器则在性能和实现复杂度上有一定的优势。
四、实验内容与步骤1、信号的采集与生成使用数据采集卡采集一段音频信号,或者在 MATLAB 中生成一个模拟信号,如正弦波、方波等。
2、信号的采样与重构对采集或生成的信号进行采样,然后通过插值算法重构原始信号,观察采样频率对重构信号质量的影响。
3、离散傅里叶变换对采样后的信号进行DFT 变换,得到其频谱,并分析频谱的特点。
4、数字滤波器的设计与实现(1)设计一个低通 FIR 滤波器,截止频率为给定值,观察滤波前后信号的频谱变化。
(2)设计一个高通 IIR 滤波器,截止频率为给定值,比较滤波前后信号的时域和频域特性。
五、实验结果与分析1、信号的采集与生成成功采集到一段音频信号,并在MATLAB 中生成了各种模拟信号,如正弦波、方波等。
通过观察这些信号的时域波形,对不同类型信号的特点有了直观的认识。
2、信号的采样与重构当采样频率足够高时,重构的信号能够较好地恢复原始信号的形状;当采样频率低于奈奎斯特频率时,重构信号出现了失真和混叠现象。
数字信号处理实验报告完整版[5篇模版]
![数字信号处理实验报告完整版[5篇模版]](https://img.taocdn.com/s3/m/7b21a71bb5daa58da0116c175f0e7cd184251866.png)
数字信号处理实验报告完整版[5篇模版]第一篇:数字信号处理实验报告完整版实验 1利用 T DFT 分析信号频谱一、实验目的1.加深对 DFT 原理的理解。
2.应用 DFT 分析信号的频谱。
3.深刻理解利用DFT 分析信号频谱的原理,分析实现过程中出现的现象及解决方法。
二、实验设备与环境计算机、MATLAB 软件环境三、实验基础理论T 1.DFT 与与 T DTFT 的关系有限长序列的离散时间傅里叶变换在频率区间的N 个等间隔分布的点上的 N 个取样值可以由下式表示:212 /0()|()()0 1Nj knjNk NkX e x n e X k k Nπωωπ--====≤≤-∑由上式可知,序列的 N 点 DFT ,实际上就是序列的 DTFT 在 N 个等间隔频率点上样本。
2.利用 T DFT 求求 DTFT方法 1 1:由恢复出的方法如下:由图 2.1 所示流程可知:101()()()Nj j n kn j nNn n kX e x n e X k W eNωωω∞∞----=-∞=-∞=⎡⎤==⎢⎥⎣⎦∑∑∑由上式可以得到:IDFT DTFT第二篇:数字信号处理实验报告JIANGSUUNIVERSITY OF TECHNOLOGY数字信号处理实验报告学院名称:电气信息工程学院专业:班级:姓名:学号:指导老师:张维玺(教授)2013年12月20日实验一离散时间信号的产生一、实验目的数字信号处理系统中的信号都是以离散时间形态存在的,所以对离散时间信号的研究是数字信号的基本所在。
而要研究离散时间信号,首先需要产生出各种离散时间信号。
使用MATLAB软件可以很方便地产生各种常见的离散时间信号,而且它还具有强大绘图功能,便于用户直观地处理输出结果。
通过本实验,学生将学习如何用MATLAB产生一些常见的离散时间信号,实现信号的卷积运算,并通过MATLAB中的绘图工具对产生的信号进行观察,加深对常用离散信号和信号卷积和运算的理解。
信号传输实验报告总结(3篇)

第1篇一、实验背景随着信息技术的飞速发展,信号传输技术在各个领域都发挥着至关重要的作用。
本实验旨在通过一系列的信号传输实验,加深对信号传输基本原理、技术及实际应用的理解。
实验涵盖了模拟信号和数字信号的传输,以及信号调制、解调、滤波等关键环节。
二、实验目的1. 理解信号传输的基本原理和过程。
2. 掌握信号调制、解调、滤波等关键技术。
3. 熟悉模拟信号和数字信号传输的特点及区别。
4. 分析信号传输过程中可能出现的干扰和噪声,并提出相应的解决方法。
三、实验内容1. 模拟信号传输实验(1)实验原理:通过观察示波器上的波形,分析模拟信号的传输过程,包括调制、解调、滤波等环节。
(2)实验步骤:1. 连接实验电路,包括信号发生器、调制器、解调器、滤波器等。
2. 调整信号发生器,产生一定频率和幅度的正弦波信号。
3. 观察调制器输出波形,分析调制效果。
4. 将调制后的信号输入解调器,观察解调效果。
5. 通过滤波器滤除噪声,观察滤波效果。
(3)实验结果与分析:通过实验,我们发现模拟信号在传输过程中容易受到干扰和噪声的影响,导致信号失真。
调制、解调、滤波等环节可以有效提高信号质量,降低干扰和噪声的影响。
2. 数字信号传输实验(1)实验原理:通过观察示波器上的波形,分析数字信号的传输过程,包括编码、解码、传输等环节。
(2)实验步骤:1. 连接实验电路,包括数字信源、编码器、解码器、传输线路等。
2. 调整数字信源,产生一定频率和幅度的数字信号。
3. 观察编码器输出波形,分析编码效果。
4. 将编码后的信号通过传输线路传输。
5. 观察解码器输出波形,分析解码效果。
(3)实验结果与分析:通过实验,我们发现数字信号在传输过程中具有较强的抗干扰能力,能够有效降低噪声的影响。
编码、解码等环节可以提高信号传输的可靠性。
3. 信号调制、解调实验(1)实验原理:通过观察示波器上的波形,分析信号调制、解调过程。
(2)实验步骤:1. 连接实验电路,包括调制器、解调器、滤波器等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
西安邮电大学通信与信息工程学院 数字信号处理实验报告专业班级: 信息工程1403班 学生姓名: 赵名扬 学号(班内序号): 03144078(08)实验日期: 2016 年 6 月 30日——————————————————————————装订线————————————————————————————————报告份数:实验总成绩:摘要随着信息技术的迅猛发展,数字信号处理已成为一个极其重要的学科和技术领域。
在通信、语音、图像、自动控制和家用电器等众多领域得到了广泛的应用。
本次实验应用matlab软件进行编程,掌握各种信号的建模方式,加深对FTT的理解,学习了重叠相加法等知识。
通过老师和同学的帮助得到实验结果。
关键词:数字信号,matlab,学到了很多知识英文摘要With the rapid development of information technology, digital signal processing has become an extremely important subject and technology field. It has been widely used in many fields such as communication, voice, image, automatic control, home appliances and so on. The experimental application of MATLAB software programming, master a variety of signal modeling methods, to deepen the understanding of FTT, learning the overlap phase addition and other knowledge. Through the help of teachers and students to get the results of the experiment.Key word:digital signal matlab Learned a lot of knowledge引言:《数字信号处理》是我们专业的一门重要的专业基础课程,主要任务是研究数字信号处理理论的基本概念和基本分析方法,通过建立数学模型和适当的数学分析处理,来展示这些理论和方法的实际应用。
我们学习了脉冲响应不变法和双线性变换法设计IIR数字滤波器的原理和方法,各种信号的图形表示方法等知识。
通过本门课的学习,使我对随机数字信号处理的技术和方法有了进一步的了解,加深了对基本理论和概念的领悟程度,课程所涉及到的很多算法和思想对我个人的研究方向有很大的启发。
4.1信号的表示4.1.1实验目的a.了解MATLAB 程序设计语言的基本特点,熟悉MATLAB 软件运行环境。
b.掌握各种信号的建模方式。
c.掌握各种信号的图形表示方法。
d.掌握变量等有关概念,具备初步的将一般数学模型转化为对应的计算机模型并进行处理的能力。
4.1.2实验内容a.实现单位采样序列δ(n )、单位阶跃序列u (n )、矩形序列R N (n),并用图形显示,写出程序及输出图形。
b..实现三角波、方波、锯齿波、Sinc 函数,并用图形显示,写出程序和输出图形。
4.1.3实验结果:4.1.3.1单位采样序列 (1)序列定义:⎩⎨⎧==others ,00n 1,)n (δ(2)实现程序:x=-4:5;y=[zeros(1,5),1,zeros(1,5)]; stem(x,y)4.1.3.2单位阶跃序列 (1)序列定义:图一:单位采样序列δ(n )⎩⎨⎧≥=others n ,00,1n u )( (2)实现程序:x=-5:5;y=[zeros(1,5),1,ones(1,5)]; stem(x,y)4.1.3.3矩形序列: (1)序列定义:⎩⎨⎧-≤≤=others N n n R N ,010,1)( (2)实现程序:n=0:9;x=[1 1 1 1 1 1 1 1 1 1]; stem(n,x,'.'); axis([-1 10 0 1.5])4.1.3.4三角波 (1)序列定义:)sin()(y nn ϖ=-1012345678910(2)实现程序:t=-30:1:30;y=sawtooth(t,0.5);plot(t,y);4.1.3.5方波(1)实现程序:t=0:0.0001:0.615y=square(t*2*pi*30,80); plot(t,y);4.1.3.6锯齿波(1)实现程序:t=-30:1:30;y=square(t);plot(t,y);4.1.3.7Sinc函数(1)序列定义:(2)实现程序:t=-30:30;y=sinc(t);图五:方波4.2FFT 频谱分析及应用4.2.1实验目的a.通过实验加深对FFT 的理解。
b..熟悉应用FFT 对典型信号进行频谱分析的方法。
4.2.2实验内容被噪声污染的信号,比较难看出所包含的频率分量,如一个由50HZ 和120HZ 正弦信号构成的信号,受零均值随机噪声的干扰,数据采样率为1000HZ ,使用FFT 函数来分析其信号频率成分,要求:①画出时域波形;②分析信号功率谱密度。
注:在MATLAB 中,可用函数rand(1,N)产生均值为0,方差为1,长度为N 的高斯随机序列。
4.2.3实验结果程序:t=0:0.001:0.7;x=sin(2*pi*50*t)+cos(2*pi*130*t );y=x+1.5*randn(1,length(t)); subplot(3,1,1);plot(t,x); subplot(3,1,2);plot(t,y); %title('press any key,continue```'); %pause; y=fft(y,512); p=y.*conj(y)/512; f=1000*(0:255)/512;subplot(3,1,3);plot(f,p(1:256));00.10.20.30.40.50.60.70.800.10.20.30.40.50.60.70.8501001502002503003504004505004.3信号的运算—卷积4.3.1实验目的a.掌握信号的线性卷积运算。
b.掌握信号的循环卷积运算。
c.掌握信号循环卷积计算线性卷积的条件。
4.3.2实验内容a.如果信号x2(n)*x1(n)=x(n)利用线性卷积计算,用conv 函数实现如下:y=conv(x1,x2)。
b.假设卷积下面信号⎩⎨⎧<≤=else n n n x 0120)^9.0()( ⎩⎨⎧<≤=else n 012n 00)(h 选定循环卷积的长度为N=21.确定)()()(1y n h n x n ⊗=的哪些数值与线性卷积h(n)*x(n)=y2结果中的数值相同。
编写程序代码并输出图形,并分析错误数据的原因,怎样才能使两者数据相同。
c.已知系统相应为输入为n)*exp(0.2=x(n) 100<≤n ,画出用DFT 方法实现求系统输出的系统框图,编写用DFT 实现的程序代码并输出图形。
4.3.3实验结果x1(n)h(n)10203021点循环卷积102030线性卷积程序:n1=0:1:13;x1=0.9.^n1;h=ones(1,11);N=length(x1)+length(h)-1;n=0:N-1;ny=0:20;y1=circonvt(x1,h,21);y2=circonvt(x1,h,N);x1=[x1 zeros(1,N-length(x1))];h=[h zeros(1,N-length(h))];X1=fft(x1,N);H=fft(h,N);X=X1.*H;x=ifft(X);x=real(x);subplot(2,2,1);stem(n,x1);title('x1(n)');axis([0,33,0,1]);subplot(2,2,2);stem(n,h);title('h(n)');axis([0,33,0,1]);subplot(2,2,3);stem(ny,y1,'fill');title('21点循环卷积');axis([0,33,0,16]);hold on;subplot(2,2,4);stem(n,x);title('线性卷积');axis([0,33,0,8]);subplot(2,2,3);stem(n,x,'r','--');axis([0,33,0,8]);hold off;4.4线性卷积的快速处理方法——重叠相加法4.4.1实验目的a.掌握线性卷积的快速处理方法——重叠相加法的原理。
b.掌握线性卷积的快速处理方法——重叠相加法的实现方法。
c.掌握实验和分析深入了解重叠相加法。
4.4.2实验内容编写一个实现块卷积重叠相加法的M 文件函数。
该函数的输入之一应使段的长度M ,或者使FFT 的长度。
循环卷积应在DFT 域中进行。
最终,这将会使程序最快的运行。
其中冲激响应为,20n 0)*6.0cos()*3.0sin()(h <≤+=n n n 输入信号为10n 0)*4.0exp()(<≤=n n x 。
4.4.3实验结果程序: function y=fftfilt(x,h,Nfft) H=fft(h,Nfft);M=Nfft-length(h)+1; %----Section Length\ %%*************assume that length(x) is multiple of M****** %for ix=1:M:length(x) x_seg=x(ix:ix+M-1); X=fft(x_seg,Nfft); Y=X.*H; y.seg=ifft(Y);y(ix:ix+Nfft-1)=y(ix:ix+Nfft-1)+y_seg(1:Nfft); end %%-----------check for purely REAL case-------- if ~any(imag(h))&~any(imag(x)) y=real(y); end图一:两函数卷积结果 024681012141618重叠相加法图像%---------------------------------------------(使用conv函数测试)n1=0:1:19;hn=sin(0.3*n1)+cos(0.6*n1);n2=0:1:9;xn=exp(0.4*n2);z=conv(hn,xn);N=length(xn)+length(hn)-1;hn=[hn zeros(1,N-length(hn))];R=length(xn);M=length(hn);y=fftfilt(xn,hn,8);k1=1:length(y);k = 1:N;plot(k1,y,'b-o',k,z,'g-x')xlabel('Time index n');ylabel('Amplitude')legend('y[n]','z[n]')4.5线性卷积的快速处理方法——重叠保留法4.5.1实验目的a.掌握线性卷积的快速处理方法——重叠保留法的原理。