Matlab数字信号处理

合集下载

使用Matlab进行数字信号处理的方法与案例

使用Matlab进行数字信号处理的方法与案例

使用Matlab进行数字信号处理的方法与案例1. 引言数字信号处理是一项广泛应用于通信、音频、图像以及其他相关领域的技术。

Matlab作为一种功能强大的数学计算软件,提供了丰富的工具和函数,使得数字信号处理变得更加简单和高效。

本文将会介绍使用Matlab进行数字信号处理的方法和一些实际应用案例。

2. Matlab数字信号处理工具箱Matlab提供了专门的工具箱来支持数字信号处理。

其中最常用的是信号处理工具箱(Signal Processing Toolbox)和图像处理工具箱(Image Processing Toolbox)。

这些工具箱提供了一系列的函数和算法,用于处理和分析数字信号。

3. 数字信号处理基础知识在开始使用Matlab进行数字信号处理之前,有一些基础知识是必须掌握的。

数字信号处理涉及到信号的采样、离散化、滤波、频谱分析等概念。

了解这些基础知识将有助于我们更好地理解和处理信号。

4. 信号生成与操作在Matlab中,可以使用函数生成各种类型的信号。

例如,使用sawtooth函数可以生成锯齿波信号,使用square函数可以生成方波信号。

此外,Matlab还提供了丰富的信号操作函数,例如加法、乘法、卷积等,方便对信号进行进一步处理。

5. 时域和频域分析时域分析用于分析信号在时间上的变化情况,而频域分析则用于分析信号在频率上的分布。

在Matlab中,可以使用fft函数进行快速傅里叶变换,将信号从时域转换到频域。

通过对频域信号进行分析,可以获得信号的频谱分布,进而得到信号的频率特性。

6. 滤波器设计与应用滤波是数字信号处理中常用的技术,用于去除噪声、增强信号等。

Matlab提供了一系列的滤波器设计函数,例如fir1、butter等,可以根据需要设计各种类型的数字滤波器。

使用这些函数可以实现低通滤波、高通滤波、带通滤波等操作。

7. 音频处理案例音频处理是数字信号处理的一个重要应用领域。

在Matlab中,可以使用audioread函数读取音频文件,使用audiowrite函数写入音频文件。

Matlab中的数字信号处理方法与实例

Matlab中的数字信号处理方法与实例

Matlab中的数字信号处理方法与实例数字信号处理是一门研究数字信号在数字域中分析、处理和改变的学科。

Matlab是一种强大的数值计算工具,被广泛应用于信号处理领域。

本文将介绍一些在Matlab中常用的数字信号处理方法与实例,并通过实例来展示它们的应用。

1. 信号的采样与重构信号采样是指将连续时间信号转化为离散时间信号的过程。

在Matlab中,我们可以使用“sample”函数对信号进行采样,并使用“hold”函数对采样后的信号进行重构。

下面是一个示例:```matlabfs = 100; % 采样频率t = 0:1/fs:1; % 时间序列x = sin(2*pi*5*t); % 原始信号subplot(2,1,1);plot(t,x);title('原始信号');xlabel('时间');ylabel('幅值');subplot(2,1,2);stem(t,x);title('采样和重构后的信号');xlabel('时间');ylabel('幅值');```在这个例子中,我们生成了一个频率为5Hz的正弦信号,然后对该信号进行采样和重构。

从结果可以看出,原始信号和重构后的信号基本上是一致的。

2. 信号的频谱分析频谱分析是指将信号从时域转换到频域的过程,可以用来分析信号的频率成分。

在Matlab中,我们可以使用“fft”函数对信号进行傅里叶变换,并使用“abs”函数获取信号的幅度谱。

下面是一个示例,演示如何对信号进行频谱分析:```matlabfs = 100; % 采样频率t = 0:1/fs:1; % 时间序列x = sin(2*pi*5*t); % 原始信号N = length(x); % 信号长度X = fft(x); % 傅里叶变换f = (0:N-1)*(fs/N); % 频率坐标plot(f,abs(X));title('信号的频谱');xlabel('频率');ylabel('幅度');```在这个示例中,我们同样生成了一个频率为5Hz的正弦信号,然后对该信号进行傅里叶变换,并绘制出信号的频谱图。

MATLAB数字信号处理

MATLAB数字信号处理
17
频率响应的实例
• 例:先构成一个截止频率为400Hz的9阶巴特沃思 (Butterworth)低通数字滤波器,求出其系数b,a,再 求出其256点频率响应。指定的采样频率fs =2000Hz。
• 实现1:先调用butter函数,再调用freqz函数;
• 实现2:无返回输出参数,调用freqz函数;
• 使用方法类似freqz函数。 • 与第二章(p32例2-1)采用数组相除方法求取频
率响应相比,使用freqs 函数要方便很多。
23
5.3.2 零极点分析
• zplane 函数用于画出线性系统在Z平面上的零 极点。有两种使用方法: 1、在已知零极点时,例如某滤波器的零点为1/2,一对共轭极点为 0.9ej2(0.3) 和 0.9ej2(0.3) 时, 只要输入命令 zer = -0.5; pol = 0.9*exp(j*2*pi*[-0.3 0.3]'); zplane(zer,pol) 即可画出零极点。 (见p70图5-6)
2
5.2.1 卷积
• MATLAB提供 conv函数实现标准的一维信号卷积 : 例如,若系统h(n)为 >>h=[1 1 1]
输入序列x(n)为 >>x=[1 1 1]
则x(n)经过系统h(n)后的MATLAB实现为: >>conv(h,x) 或 conv([1 1 1], [1 1 1])
执行后即得到y(n)为 ans = 12321
• 如果n、m都大于零,称为ARMA滤波器,而其 冲激响应也为IIR。
7
filter函数
• MATLAB提供了 filter函数来对离散信号进行滤 波,表达信号通过系统后的结果无限冲 激响应系统的情况,但信号仍须是有限长的。

MATLAB在数字信号处理中的实战应用

MATLAB在数字信号处理中的实战应用

MATLAB在数字信号处理中的实战应用一、引言数字信号处理(DSP)是现代通信、电子、音频、图像等领域中不可或缺的技术。

而MATLAB作为一种功能强大的科学计算软件,其在数字信号处理中的应用也越来越广泛。

本文将对MATLAB在数字信号处理中的实战应用进行探讨。

二、MATLAB在信号处理中的基本功能1. 数字信号的生成与显示MATLAB提供了丰富的信号生成函数,如sin、cos、square、sawtooth等,使得用户可以方便地生成各种类型的信号。

此外,MATLAB还提供了绘图函数,如plot、stem等,能够直观地显示生成的信号。

2. 信号的滤波与去噪滤波是数字信号处理中常用的技术,其目的是去除信号中的噪声或滤除频率不需要的成分。

在MATLAB中,可以利用滤波函数(如fir1、butter、cheby1等)进行信号滤波,同时也可以通过去噪函数(如medfilt1、wiener等)进行噪声去除。

3. 信号的频谱分析频谱分析是对信号进行频域分析的过程,有助于研究信号的频率成分和频率特性。

MATLAB提供了多种频谱分析函数,如fft、periodogram、pwelch等,可以方便地计算信号的频谱,并通过绘图函数(如plot、meshc等)进行展示。

三、MATLAB在音频信号处理中的应用音频信号处理是数字信号处理的一个重要领域,MATLAB在这方面的应用非常广泛。

1. 音频文件的读写与播放MATLAB提供了音频文件读写及播放函数,如audioread、audiowrite、sound 等,可以方便地进行音频文件的读写和播放操作。

这为用户在音频信号处理中进行实时调试提供了便利。

2. 音频信号增强与修复音频信号中常常包含各种噪声,如白噪声、爆裂噪声等,这些噪声会影响音频质量。

MATLAB提供了多种信号增强与修复算法,如均衡器、降噪算法等,可以有效去除音频信号中的噪声,从而提高音频质量。

3. 音频信号的压缩与编码音频信号的压缩与编码是提高音频传输与存储效率的重要手段。

利用Matlab进行数字信号处理与分析

利用Matlab进行数字信号处理与分析

利用Matlab进行数字信号处理与分析数字信号处理是现代通信、控制系统、生物医学工程等领域中不可或缺的重要技术之一。

Matlab作为一种功能强大的科学计算软件,被广泛应用于数字信号处理与分析领域。

本文将介绍如何利用Matlab进行数字信号处理与分析,包括基本概念、常用工具和实际案例分析。

1. 数字信号处理基础在开始介绍如何利用Matlab进行数字信号处理与分析之前,我们首先需要了解一些基础概念。

数字信号是一种离散的信号,可以通过采样和量化得到。

常见的数字信号包括音频信号、图像信号等。

数字信号处理就是对这些数字信号进行处理和分析的过程,包括滤波、频谱分析、时域分析等内容。

2. Matlab在数字信号处理中的应用Matlab提供了丰富的工具箱和函数,可以方便地进行数字信号处理与分析。

其中,Signal Processing Toolbox是Matlab中专门用于信号处理的工具箱,提供了各种滤波器设计、频谱分析、时域分析等功能。

除此之外,Matlab还提供了FFT函数用于快速傅里叶变换,可以高效地计算信号的频谱信息。

3. 数字信号处理实例分析接下来,我们通过一个实际案例来演示如何利用Matlab进行数字信号处理与分析。

假设我们有一个包含噪声的音频文件,我们希望去除噪声并提取出其中的有效信息。

首先,我们可以使用Matlab读取音频文件,并对其进行可视化:示例代码star:编程语言:matlab[y, Fs] = audioread('noisy_audio.wav');t = (0:length(y)-1)/Fs;plot(t, y);xlabel('Time (s)');ylabel('Amplitude');title('Noisy Audio Signal');示例代码end接下来,我们可以利用滤波器对音频信号进行去噪处理:示例代码star:编程语言:matlabDesign a lowpass filterorder = 8;fc = 4000;[b, a] = butter(order, fc/(Fs/2), 'low');Apply the filter to the noisy audio signaly_filtered = filtfilt(b, a, y);Plot the filtered audio signalplot(t, y_filtered);xlabel('Time (s)');ylabel('Amplitude');title('Filtered Audio Signal');示例代码end通过以上代码,我们成功对音频信号进行了去噪处理,并得到了滤波后的音频信号。

数字信号处理MATLAB简介

数字信号处理MATLAB简介

七、MATLAB的矩阵运算
面向矩阵元素的数学函数 如sin(x)表示将矩阵的每一个元素均取正弦。 表示矩阵i行、j列处的元素可用A(i,j)。 表示矩阵i行用A(i,:)。表示矩阵j列用A(:,j)。 面向矩阵的数学函数:在上述面向矩阵元素的数学函数的函数名后加m。如expm。
八、特殊矩阵的实现
六、MATLAB的矩阵运算
矩阵的常用运算 [L,U]=lu(A):矩阵A的LU分解。也有[L,U,P]=LU(A),置换矩阵P满足PA=LU。 [U,S,V]=svd(A):矩阵A的svd分解。 inv(A):矩阵A的逆。 pinv(A,tol):矩阵A的广义逆。tol为判0误差限,若省略,则默认为eps。
二、MATLAB特点
可靠的数值计算、强大而简易图像与图形显示及处理、图形界面设计风格适合科技人员、智能化程度高、功能化程度高、提供与其它高级语言(如C语言和Fortran语言)的接口。MATLAB提供了一个人机交互的数学环境,可进行演草纸式的数学运算。
01
严格地讲,MATLAB不是一种计算机语言。因为其源程序不能编译成可执行文件(较新版本可以),也不能脱离MATLAB环境运行。但从功能上看,可认为是一种解释性语言(对输入命令翻译并执行,然后返回结果,与解释BASIC语言类似 )。
A=zeros(m, n) 产生m×n的0矩阵赋给A A=zeros(sizes(B)) 产生与B同大的0矩阵赋给A A=zeros(n) 产生n×n的0矩阵赋给A。
零矩阵:
A=eye(n) 产生n×n的单位阵赋给A; A=eye(m, n) 产生m×n大的单位阵赋给A; A=eye(sizes(B)) 产生与B同大的单位阵赋给A
三、MATLAB特性
MATLAB的变量命名 变量名对大小写敏感(Sensitive) fruit、Fruit、FrUit及FRUIT中是不同的变量 每个变量名最多有19个字符 变量名的首字符必须是字母 标点符号不能出现在变量名中

使用MATLAB进行数字信号处理的实例介绍

使用MATLAB进行数字信号处理的实例介绍

使用MATLAB进行数字信号处理的实例介绍引言:数字信号处理(Digital Signal Processing, 简称DSP)是一门研究如何以数字形式对信号进行采样、分析和处理的学科。

随着数字技术的快速发展,MATLAB作为一种强大的工具,被广泛应用于数字信号处理的研究和实践中。

本文将通过一些实际例子,介绍如何使用MATLAB进行数字信号处理。

一、信号的采样与重构信号的采样与重构是数字信号处理的基础,它涉及到将连续时间信号转换为离散时间信号,并恢复出原始信号。

我们以音频信号为例,使用MATLAB进行信号采样与重构的处理。

1.1 采样:音频信号可以看作是时间上连续的波形,我们需要将其转换为离散形式。

在MATLAB中,可以使用"audioread"函数读取音频文件,并通过设定采样频率和采样位数,将连续的音频信号转换为离散形式。

1.2 重构:采样得到的离散信号需要恢复到连续形式,MATLAB中可以通过"audiowrite"函数将离散信号重新写入到音频文件,并设定采样频率和采样位数恢复出连续的音频信号。

二、傅里叶变换与频谱分析傅里叶变换是一种将信号从时域转换到频域的方法,它可以将信号分解成不同频率的正弦波成分。

频谱分析是数字信号处理中的重要方法,它可以帮助我们了解信号的频率成分和能量分布。

2.1 单频信号的傅里叶变换:我们以一个简单的单频信号为例,使用MATLAB进行傅里叶变换和频谱分析。

首先,我们可以通过构造一个正弦波信号,并设定频率、振幅和采样频率。

然后使用"fft"函数对信号进行傅里叶变换,得到频谱图。

2.2 音频信号的频谱分析:音频信号是复杂的多频信号,我们可以通过将其进行傅里叶变换,得到其频谱分析结果。

在MATLAB中,可以使用"fft"函数对音频信号进行傅里叶变换,并通过频谱图展示信号的频谱信息。

三、数字滤波器设计与应用数字滤波器是数字信号处理中的关键技术,可以帮助我们去除噪声、提取有效信息,满足不同的信号处理需求。

如何使用MATLAB进行数字信号处理

如何使用MATLAB进行数字信号处理

如何使用MATLAB进行数字信号处理MATLAB是一种常用的数学软件工具,广泛应用于数字信号处理领域。

本文将介绍如何使用MATLAB进行数字信号处理,并按照以下章节进行详细讨论:第一章: MATLAB中数字信号处理的基础在数字信号处理中,我们首先需要了解信号的基本概念和数学表示。

在MATLAB中,可以使用向量或矩阵来表示信号,其中每个元素对应着一个离散时间点的信号值。

我们可以使用MATLAB 中的向量运算和函数来处理这些信号。

此外,MATLAB还提供了一组强大的工具箱,包括DSP系统工具箱和信号处理工具箱,以便更方便地进行数字信号处理。

第二章: 数字信号的采样和重构在数字信号处理中,采样和重构是两个核心概念。

采样是将连续信号转换为离散信号的过程,而重构则是将离散信号重新转换为连续信号的过程。

在MATLAB中,可以使用"sample"函数对信号进行采样,使用"interp"函数进行信号的重构。

此外,还可以使用FFT(快速傅里叶变换)函数对离散信号进行频率分析和频谱表示。

第三章: 傅里叶变换与频域分析傅里叶变换是一种常用的信号分析工具,可将信号从时域转换到频域。

MATLAB中提供了强大的FFT函数,可以帮助我们进行傅里叶变换和频谱分析。

通过傅里叶变换,可以将信号分解为不同频率的分量,并且可以通过滤波器和滤波器设计来处理这些分量。

MATLAB还提供了许多用于频域分析的函数,如功率谱密度函数、频谱估计函数等。

第四章: 滤波与降噪滤波是数字信号处理中的重要任务之一,旨在去除信号中的噪声或不需要的频率成分。

在MATLAB中,可以使用FIR和IIR滤波器设计工具箱来设计和实现滤波器。

此外,MATLAB还提供了各种滤波器的函数和滤波器分析工具,如lowpass滤波器、highpass滤波器、带通滤波器等。

这些工具和函数可以帮助我们对信号进行滤波,实现信号降噪和频率调整。

第五章: 时域信号分析与特征提取除了频域分析外,时域分析也是数字信号处理的重要内容之一。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1
0.8
0.6
0.4
0.2
0
-0.2
-0.4
-0.6
-0.8
-1
0
0.01
0.02
0.03
0.04
0.05
0.06
0.07
9、sinc函数信号
y=sinc(x); 产生周期为2*pi,随x的增加衰减震荡的 偶函数,在n*pi处值为零

1 0.8
0.6
0.4
0.2
0
-0.2
-0.4
0
0.01
程序实现: clc; clear; x=[1 zeros(1,63)]; b=[0.2 0.1]; a=[1 –0.4 –0.5]; h=filter(b,a,x); h1=impz(b,a); figure; stem(h); title(‘Filter function’); figure; stem(h1) title(‘Impz function’)
250 300 Frequency (Hz)
350
400
450
500



(2)切比雪夫法设计滤波器 切比雪夫法设计滤波器可以分为切比雪夫1法 和切比雪夫2法两种,这里我们只介绍切比雪 夫1法。 其语法结构为: [b,a]=cheby1(n,Rp,wn); [b,a]=cheby1(n,Rp,wn,’ftype’); …… 设计的是一个阶数为n,截止频率为wn,通带 波纹衰减为Rp的低通滤波器。返回值a,b分别是 阶数为n+1的向量,表示滤波器系统函数的分 母和分子的多项式系数,滤波器的传递函数可 以表示为:

它有如下两种形式: y=filter(b,a,x) 由上图可以知道:b=[0.2,0.1] a=[1,-0.4,-0.5] 则系统的单位抽样响应为:h=filter(b,a,x) (2)impz函数实现 Impz(b,a)可以直接得到单位抽样响应,并画出 响应图形



6、信号的卷积 Matlab提供了内部函数conv来实现两个有限长 序列的卷积,该函数假定两个序列的是从n=0 开始的。 例:x=[3,11,7,0,-1,4,2]; h=[2,3,0,-5,2,1]; y=conv(x,h); %y=[6,31,47,6,-51,-5,41,18,-22,-3,8,2] (共n+m-1项)
%产生单位抽样信号 1 0 . 2 0 . 1z % h (z)
1 0.4z 1 0.5z 2
Filter function 0.2
Impz function 0.2
0.18
0.18
0.16
0.16
0.14
0.14
0.12
0.12
0.1
0.1
0.08
0.08
0.06
0.06
5、指数序列 n=1:N; x=a.^n; %此处必须用.^而不能直接用^ 6、随机序列 rand(m,n) %产生m行,n列的在[0,1] 上服 %从均匀分布的随机数矩阵 randn(m,n) %产生均值为0,方差为1的高斯随机 %序列 7、方波信号 x=square(t,duty); 产生周期为2*pi,幅值为正负1的方波信号,其中 duty为正幅值部分占周期的百分数
0.2
0.15
0.1
0.05
0
-0.05
-0.1
-0.15
-0.2
-0.25
0
10
20
30
40
50
60
70
80
90
100
例: 信号采样频率为1000Hz,设计一个阶数为
9,截止频率为300Hz的高通巴特沃思滤波 器。 [b,a]=butter(9,300/500,‘high’); Freqz(b,a,128,1000);
Matlab数字信号处理
1、信号的产生 2、信号的运算 3、差分方程与Z变换 4、快速傅里叶变换 5、数字滤波器的设计 6、使用中的一些技巧
一、信号的产生
1、单位采样序列

x=zeros(1,n); x(k)=1;
2、单位阶跃序列
x=ones(1,n); 3、正弦序列 n=0:N-1; x=sin(2*pi*f*n*Ts+fai); 4、复正弦序列 n=0:N-1; x=exp(j*w*n);


函数的截止频率wn是指通带的边缘,在那滤波 器的幅度响应为-RpdB,wn的取值范围为0-1, 其中1表示采样频率的一半。越小的通带波 纹,会导致越大的过渡带宽。如果wn=[w1 w2] 为两个元素的向量,则函数返回的是阶数为 2*n的带通滤波器系统函数有理多项式的系 数,滤波器的通带范围为w1-w2。 用[b,a]=cheby1(n,Rp,wn,’ftype’)设计搞通和带阻 滤波器,ftype确定滤波器的形式,为high时, 为阶数为n,截至频率为wn的高通滤波器;为 stop时,阶数为2*n,阻带为w1-w2的带阻滤波 器。
差分方程与Z变换

1、离散系统的时域表示 由此可见,系统地输出,就是输入与单位抽样响应卷 积得到的。 例:如下离散系统:

系统的单位抽样信号的响应可以通过filter函数和impz 函数实现。 (1)filter函数 因为一个离散系统 可以看作是一个滤波器,该函数 就是利用滤波器来实现的。

mag=abs(h); ph=angle(h); ph=ph*180/pi; figure; plot(f,mag); title(‘f-m’); figure; plot(f,ph); title(‘f-p’);
快速傅里叶变换
在matlab中实现fft很简单,只需要通过命
-200
-300
-400
0
50
100
150
200
250 300 Frequency (Hz)
350
400
450
500
0 -200 Phase (degrees) -400 -600 -800 -1000
0
50
100
150
200
250 300 Frequency (Hz)
350
400
450
500

例:采样频率为1000Hz的采样信号,设计一个 10阶带通切比雪夫滤波器,通带范围为100200Hz,滤波器在通带的波纹为0.5dB,并画出 冲激响应曲线。 n=10; Rp=0.5; wn=[100,200]/500; [b,a]=cheby1(n,Rp,wn); [y,t]=impz(b,a,101); stem(t,y); 冲激响应曲线如下:
0.02
0.03
0.04
0.05
0.06
0.07
二、信号的运算

1、信号的延迟 给定信号x(n),若信号y1(n)、y2(n)分别定义为: y1(n)=x(n-k) y2(n)=x(n+k) 那么,y1(n)是整个x(n)在时间轴上右移k个时间 单位所得到的新序列, y2(n)是整个x(n)在时间 轴上左移k个时间单位所得到的结果。
例: 信号采样频率为1000Hz,设计一个阶数为
9,截止频率为300Hz的低通切比雪夫滤波 器,其中滤波器在通带的波纹为0.5dB。 [b,a]=cheby1(9,0.5,300/500); Freqz(b,a,512,1000);
滤波器的幅频特性与相频特性如下:
0
-100 Magnitude (dB)
令fft来实现,这里需要注意的是采样频 率不要太高,否则频谱的信息被掩盖。 另外,计算所得的序列中第k点所对应的 实际频率为,f=k*fs/N,其中N为进行傅利 叶变换的点数,fs为采样频率,一般取信 号最大频率的3-5倍。

例: clc; clear; load leleccum; x=leleccum; N=length(x); y=angle(fft(x)); fs=100; f= (1:N)*fs/N; plot(f,y);

例:采样频率为1000Hz的采样信号,设
计一个10阶带通butter滤波器,通带范 围为100-200Hz,并画出冲击响应曲线。 n=5; wn=[100 200]/500; [b,a]=butter(n,wn,’bandpass’); [y,t]=impz(b,a,101); stem(t,y);
0.04
0.04
0.02
0.02
0
0
10
20
30
40
50
60
70
0
0
50
100
150


2、离散系统的频率响应 Matlab中的freqz函数用来计算由a,b构成系统 的频率响应。 [h,f]=freqz(b,a,n,fs) 例: clc; clear; fs=1000; b=[0.2 0.1]; a=[1 –0.4 –0.5]; [h,f]=freqz(b,a,256,fs);
编程实现: function
[y,n]=sig_shift(x,m,n0) m为输入x的下标;n0为延迟单位 n=m+n0; y=x;

2、相加、相乘 x(n)=x1(n)+x2(n); x(n)=x1(n)*x2(n) 当两个向量相乘时,若用.*表示数组相乘, 此时,x1中对应元素与x2中对应元素相乘,所 得结果作为结果数组(矩阵),要求两原始数组 中元素个数相同,如果采用*是进行向量(矩阵) 的乘法,相加时要求两原始数组中元素个数相 同。
滤波器的幅频特性与相频特性如下:
相关文档
最新文档