实验1 用MATLAB进行信号频谱分析(推荐文档)
实验1用MATLAB进行信号频谱分析
实验用进行信号频谱分析一、实验目的㈠初步掌握产生常用离散时间信号的编程方法。
㈡学习编写简单的算法程序,对离散信号进行幅频谱分析。
㈢观察离散时间信号频谱的特点。
二、实验原理㈠常用的离散时间信号在语言主要是研究离散信号的。
常用的离散信号有:.单位取样序列001)(n n n .单位阶跃序列0001)(n n n u .实指数序列Ra n a n x n ;)(.复指数序列ne n x n j )(0)(.正(余)弦序列)c o s ()(0n n x n.周期序列nN n x n x )()(㈡离散信号的产生离散信号的图形显示使用指令。
在中的信号处理工具箱中,主要提供的信号是离散信号。
由于对下标的约定为从开始递增,例如[],表示()()()…因此要表示一个下标不由开始的数组(),一般应采用两个矢量,如[,,,,,,,,];[,,,,,,,,];这表示了一个含个采样点的矢量:(){(),(),(),(),(),(),(),(),()}。
.单位取样序列001)(n n n 这一函数实现的方法有二:方法一:可利用的函数。
(,);建立一个一行列的全零数组();对()赋方法二:可借助于关系操作符实现;[]; 等于时逻辑关系式结果为真,;不等于时为假,如要产生202100100)(10)(n n n n n n n n n n n n 则可采用实现:;[()];时逻辑关系式结果为真,;≠时为假,.单位阶跃序列001)(n n n u 这一函数可利用的函数实现:(,);。
matlab离散频谱分析实验报告
matlab离散频谱分析实验报告Matlab离散频谱分析实验报告引言:离散频谱分析是一种重要的信号处理技术,用于研究信号的频域特性。
在本次实验中,我们使用Matlab软件进行离散频谱分析,旨在通过实践掌握离散频谱分析的基本原理和方法,并通过实验结果验证其有效性。
一、实验目的本次实验的主要目的是研究信号的频谱特性,具体包括以下几个方面:1. 了解离散傅里叶变换(DFT)的原理和计算方法;2. 掌握Matlab中进行离散频谱分析的基本函数和操作;3. 分析不同信号的频谱特性,并通过实验结果验证分析的准确性。
二、实验步骤1. 生成测试信号首先,我们需要生成一个测试信号,以便进行后续的频谱分析。
在Matlab中,我们可以使用randn函数生成高斯白噪声信号,或者使用sin函数生成正弦信号。
根据实验要求,我们选择生成一个正弦信号作为测试信号。
2. 离散傅里叶变换(DFT)DFT是一种将时域信号转换为频域信号的方法。
在Matlab中,我们可以使用fft 函数进行DFT计算。
通过对测试信号进行DFT计算,我们可以得到信号的频谱。
3. 频谱图绘制为了更直观地观察信号的频谱特性,我们可以使用Matlab的plot函数将频谱绘制成图形。
通过观察频谱图,我们可以分析信号的频率分布、频谱幅值等特性。
4. 频谱分析根据实验要求,我们需要对测试信号进行频谱分析。
通过分析频谱图,我们可以得到信号的主要频率成分、频率分布情况等信息。
在实际应用中,频谱分析可以用于信号识别、滤波器设计等领域。
三、实验结果与分析在本次实验中,我们生成了一个频率为f的正弦信号,并进行了离散频谱分析。
通过观察频谱图,我们可以明显看到信号在频率为f处存在一个峰值,这表明信号主要由频率为f的成分组成。
同时,我们还观察到信号的频谱幅值随频率的变化而变化,这说明信号的不同频率成分具有不同的能量。
通过对不同频率信号的频谱分析,我们可以进一步研究信号的频率特性。
例如,对于周期信号,我们可以通过分析其频谱图确定其基频和谐波成分;对于非周期信号,我们可以通过分析其频谱图了解其频率分布情况。
基于Matlab的频谱分析
基于Matlab 的频谱分析一、实验目的1、掌握时域抽样定理。
2、通过实验加深对FFT 的理解。
3、熟悉应用FFT 对典型信号进行频谱分析的方法。
二、实验原理1、时域抽样定理时域抽样定理给出了连续信号抽样过程中信号不失真的约束条件:对于基带信号,信号抽样频率 大于等于2倍的信号最高频率 ,即 。
时域抽样是把连续信号 变成适于数字系统处理的离散信号 。
对连续信号以间隔T 抽样,则可得到的离散序列为 。
图1 连续信号抽样的离散序列若 ,则信号 与 的频谱之间存在:其中: 的频谱为, 的频谱为 。
可见,信号时域抽样导致信号频谱的周期化。
(rad/s))e (j ΩX ()∑∞-∞=-=n n X T)(j 1samωω)e (j ΩX []k X )e (j ωX )j (ωX T sam/2πω=[]k X ()t X []()kTt kT X X ==k ()t X []k X ()t X []()kT t kT X X ==k m sam f f 2≥samf m f为抽样角频率, 为抽样频率。
数字角频率Ω与模拟角频率ω的关系为:Ω=ωT 。
2、 离散傅立叶变换(DFT )有限长序列)(n x 的离散傅立叶变换(DFT )为10,)()]([)(10-≤≤==∑-=-N n W n x n x DFT k X N n kn N逆变换为10,)(1)]([)(10-≤≤==∑-=-N n W k X N k X IDFT n x N n kn N3、快速傅立叶变换(FFT )在各种信号序列中,有限长序列占重要地位。
对有限长序列可以利用离散傅立叶变换(DFT)进行分析。
DFT 不但可以很好的反映序列的频谱特性,而且易于用快速算法(FFT)在计算机上进行分析。
有限长序列的DFT 是其z 变换在单位圆上的等距离采样,或者说是序列傅立叶的等距离采样,因此可以用于序列的谱分析。
FFT 是DFT 的一种快速算法,它是对变换式进行一次次分解,使其成为若干小数据点的组合,从而减少运算量。
使用Matlab进行频谱分析
使用 FFT 进行频谱分析1. 快速傅里叶变换(FFT )按照被变换的输入信号类型不同,傅立叶变换可以分为 4种类型: 1)非周期性连续信号傅立叶变换(Fourier Transform ) 2)周期性连续信号傅立叶级数(Fourier Series )3)非周期性离散信号离散时域傅立叶变换(Discrete Time Fourier Transform ) 4)周期性离散信号离散傅立叶变换(Discrete Fourier Transform )因为计算机只能处理离散的数值信号,对于连续信号要先离散化,我们的最终目的是运用计算机来处理信号的。
对于离散信号的变换只有离散傅立叶变换(DFT )才能被适用,对于计算机来说只有离散的和有限长度的数据才能被处理,对于其它的变换类型只有在数学演算中才能用到。
快速傅里叶变换(Fast Fourier Transform ,FFT )是DFT 的一种快速算法。
DFT 的运算过程是这样的:1j /01()()eN nt Nn X k x n Nπ−−==∑可见,在计算机上进行的DFT ,使用的输入值是经过ADC (Analog-to-Digital Conversion )后采集到的采样值,也就是时域的信号值,输入采样点的数量决定了转换的计算规模。
变换后的频谱输出包含同样数量的采样点,但是其中有一半的值是冗余的,通常不会显示在频谱中,所以真正有用的信息是N /2+1个点。
FFT 是1965年由T. W. Coody 和J. W. Tukey 提出的,采用这种算法能使计算机计算离散傅里叶变换所需要的乘法次数大为减少,特别是被变换的抽样点数N 越多,FFT 算法计算量的节省就越显著。
2. MATLAB 中FFT 的使用方法1)语法说明 Y = fft(X)说明:用快速傅里叶变换 (FFT) 算法计算 X 的离散傅里叶变换 (DFT)。
• 如果 X 是向量,则 fft(X) 返回该向量的傅里叶变换。
信号谱分析matlab实验
clear all ;close all ;clc;cd F:\MATLAB\spectralanalysis ;%file path of experiment_data.mat; load experiment_data ;figure;plot(data);N1=64;%data length;N2=256;data64=[data(65:65+N1-1) data(129:129+N1-1) data(193:193+N1-1)];%the three statistical samples of data using starting points of 64,128,and 192 for N=64;data256=[data(257:257+N2-1) data(513:513+N2-1)data(769:769+N2-1)];%the three statistical samples of data using starting points of 256,512,and 768 for N=256;Ts=1;%sampling interval is 1s;%1.Periodogram Methods%9-6aK=8;figure(1);for time1=1:3plot(linspace(0,1/Ts,K*N1),10*log10(abs(fft(data64(:,time1),K*N1)).^2/length(data64(:,time1))));hold on ;endhold off ;xlabel('frequency');ylabel('spectral density estimate(dB)');xlim([0 (1/Ts/2)]);ylim([-20 20]);title('9-6a periodogram,N=64,rect window,no smooth');%9-6(b)我们对这个模型采样,获得1024个采样点,结合极限谱密度的图,我们可以知道我们的数据中包含三个sine 波形以及附加的高斯有色噪声(colored Gaussian noise )wn1=2*hanning(N1);figure(2);for time1=1:3datatapering64(:,time1)=data64(:,time1).*wn1;plot(linspace(0,1/Ts,K*N1),10*log10(abs(fft(datatapering64(:,time1),K *N1)).^2/length(datatapering64(:,time1))));hold on;endhold off;xlabel('frequency');ylabel('spectral density estimate(dB)');xlim([0 (1/Ts/2)]);ylim([-20 20]);title('9-6b periodogram,N=64,hanning window,no smooth');%--------------------------------------------------------------------%9-6cfigure(3);for time1=1:3Sf=(abs(fft(data64(:,time1),K*N1)).^2/length(data64(:,time1)));for n=1:(length(Sf)-16)Sfmat(n,:)=Sf(n:n+15,:);endSfsmooth=Sfmat*ones(16,1)./16;plot(linspace(0,1/Ts,n),10*log10(Sfsmooth));hold on;endhold off;xlabel('frequency');ylabel('spectral density estimate(dB)');xlim([0 (1/Ts/2)]);ylim([-20 20]);title('9-6c periodogram,N=64,rect window,smooth M=2');%9-6dwn1=2*hanning(N1);figure(4);for time1=1:3datatapering64(:,time1)=data64(:,time1).*wn1;Sf=(abs(fft(datatapering64(:,time1),K*N1)).^2/length(datatapering64(: ,time1)));for n=1:(length(Sf)-16)Sfmat(n,:)=Sf(n:n+15,:);endSfsmooth=Sfmat*ones(16,1)./16;plot(linspace(0,1/Ts,n),10*log10(Sfsmooth));hold on;endhold off;xlabel('frequency');ylabel('spectral density estimate(dB)');xlim([0 (1/Ts/2)]);ylim([-20 20]);title('9-6d periodogram,N=64,hanning window,smooth M=2');从图9-6a中的周期图中可以看出,频谱假峰很多,可靠性差、分辨力低,难以从中得到正确的频谱信息。
matlab信号分析实验报告
matlab信号分析实验报告Matlab信号分析实验报告引言:信号分析是一门重要的学科,它涉及到信号的获取、处理和解释。
在现代科学和工程领域中,信号分析被广泛应用于各种领域,如通信、图像处理、音频处理等。
本实验报告将介绍在Matlab环境下进行信号分析的实验过程和结果。
1. 实验目的本实验旨在通过Matlab软件对不同类型的信号进行分析,包括时域分析、频域分析和滤波处理。
通过实验,我们可以深入了解信号的特性和分析方法,并掌握Matlab在信号分析中的应用。
2. 实验材料和方法本实验使用了Matlab软件和一些信号处理工具箱。
实验中使用的信号包括正弦信号、方波信号和噪声信号。
我们首先通过Matlab生成这些信号,并对其进行采样和量化。
然后,我们进行时域分析,包括信号的时域波形绘制和功率谱密度估计。
接下来,我们进行频域分析,包括信号的傅里叶变换和频谱绘制。
最后,我们对信号进行滤波处理,包括低通滤波和高通滤波。
3. 实验结果和讨论在实验中,我们首先生成了一个正弦信号,并对其进行采样和量化。
通过时域分析,我们可以观察到信号的周期性和振幅。
通过频域分析,我们可以观察到信号的频谱分布。
我们还对正弦信号进行了低通滤波和高通滤波,观察到滤波后信号的变化。
接下来,我们生成了一个方波信号,并对其进行采样和量化。
通过时域分析,我们可以观察到信号的周期性和方波特征。
通过频域分析,我们可以观察到信号的频谱分布。
我们还对方波信号进行了低通滤波和高通滤波,观察到滤波后信号的变化。
最后,我们生成了一个噪声信号,并对其进行采样和量化。
通过时域分析,我们可以观察到信号的随机性和波动性。
通过频域分析,我们可以观察到信号的频谱分布。
我们还对噪声信号进行了低通滤波和高通滤波,观察到滤波后信号的变化。
通过以上实验结果,我们可以得出以下结论:- 时域分析可以帮助我们观察信号的波形和特征。
- 频域分析可以帮助我们观察信号的频谱分布和频率成分。
实验用MATLAB进行信号频谱分析
实验1 用MATLAB 进行信号频谱分析一、实验目的㈠ 初步掌握MATLAB 产生常用离散时间信号的编程方法。
㈡ 学习编写简单的FFT 算法程序,对离散信号进行幅频谱分析。
㈢ 观察离散时间信号频谱的特点。
二、实验原理㈠ 常用的离散时间信号在 MATLAB 语言主要是研究离散信号的。
常用的离散信号有:1.单位取样序列⎩⎨⎧≠==0001)(n n n δ 2.单位阶跃序列⎩⎨⎧<≥=0001)(n n n u 3.实指数序列R a n a n x n∈∀=;)( 4.复指数序列n e n x nj ∀=+)(0)(ωσ5.正(余)弦序列)c o s ()(0θω+=n n x n ∀6.周期序列n N n x n x ∀+=)()(㈡ 离散信号的产生离散信号的图形显示使用stem 指令。
在 MATLAB 中的信号处理工具箱中,主要提供的信号是离散信号。
由于MATLAB 对下标的约定为从1开始递增,例如x=[5,4,3,2,1,0],表示x(1)=5,x(2)=4,X(3)=3…因此要表示一个下标不由1开始的数组x(n),一般应采用两个矢量,如 n=[-3,-2,-1,0,l ,2,3,4,5];x=[1,-l ,3,2,0,4,5,2,1];这表示了一个含9个采样点的矢量:X(n)={x(-3),x(-2),x(-1),x(0),x(1),x(2),x(3),x(4),x(5)}。
1.单位取样序列⎩⎨⎧≠==δ0001)(n n n 这一函数实现的方法有二:方法一:可利用MATLAB 的zeros 函数。
x=zeros(1,N); %建立一个一行N 列的全零数组x(1)=1; %对X (1)赋1方法二:可借助于关系操作符实现n=1:N;x=[n==1]; %n 等于1时逻辑关系式结果为真,x=1;n 不等于1时为假,x=0如要产生 ⎪⎩⎪⎨⎧≤<<=≤≤=-δ202100100)(10)(n n n n n n n n n n n n则可采用MATLAB 实现:n=n1:n2;x=[(n-n0)==0];%n=n0时逻辑关系式结果为真,x=1;n ≠n0时为假,x=02.单位阶跃序列⎩⎨⎧<≥=0001)(n n n u这一函数可利用MATLAB 的ones 函数实现:x=ones(1,N);还可借助于关系操作符“>=”来实现。
用matlab对信号进行频谱分析及滤波
华东交通大学课程设计(论文)任务书专业 xxx 班级 xx 姓名 xxx一、课程设计(论文)题目应用Matlab对信号进行频谱分析及滤波二、课程设计(论文)工作:自 xxx 年 x 月 x 日起至 xxx 年 x 月 x 日止。
三、课程设计(论文)的内容要求:学生签名:20 年月日课程设计(论文)评阅意见评阅人职称20 年月日目录设计过程步骤(5)2.1 语音信号的采集(5)2.2 语音信号的频谱分析(6)2.3 设计数字滤波器和画出其频谱响应(7)2.4 用滤波器对信号进行滤波(9)2.5滤波器分析后的语音信号的波形及频谱(10)●心得和经验(11) ●参考文献 (12)设计过程步骤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('频域信号');运行程序得到的图形:2.3 设计数字滤波器和画出其频谱响应紧接着着我们做了一个数字滤波器:采样频率10Hz,通带截止频率fp=3Hz,阻带截止频率fs=4Hz通带衰减小于1dB,阻带衰减大于20dB,我们主要使用双线性变换法由模拟滤波器原型设计数字滤波器。
运用Matlab虚拟信号频谱分析
运用Matlab虚拟信号频谱分析摘要:频谱分析被被广泛运用于各大领域,如物理.电子学 .建筑学等等,它是对各种震动进行特性分析的重要手段。
而频谱分析使用Matlab进行的,在Matlab 中运用函数FFT(快速傅立叶变换)和DFT(离散傅立叶变换)进行频谱分析。
所以我们要熟悉运用Matlab软件以及DFT和FFT进行频谱分析的方法,利用这个方法我们可以减少繁琐的测量工作,减少错误。
最后通过实例得到虚拟结果。
关键词:Matlab.FFT.DFT.频谱分析。
0.引言在信号处理过程中,频域分析方法往往逼时域分析方法更加方便和有效,对于确知连续时间信号,其品与分析可以通过连续时间傅立叶变换进行,但是,这样计算出来的结果仍然是连续函数,计算机不能直接加以处理,为了实现数值计算,还仍需对其进行离散化处理,即采用DFT(离散傅立叶)进行分析。
DFT的快速算法的出现,使DFT 在数字通信.图像处理.功率估计.系统分析与仿真.雷达信号处理等各个领域得到广泛应用.1.频谱分析的认识利用傅里叶变换的方法对振动的信号进行分解,并按频率顺序展开,使其成为频率的函数,进而在频率域中对信号进行研究和处理的一种过程,称为频谱分析,一般理论上是利用傅里叶分析的方法,求出与时域描述相对应的频域描述,从中找出信号频谱的变化规律,以达到特征提取的实验目的。
但实际的待分析信号一般没有解析式,直接利用公式进行傅里叶分析非常困难。
DFT是一种时域和频域均离散化的傅里叶变换,适合数值计算且有快速算法,是分析信号的有力工具。
2序列的DFT变换DFT(离散傅里叶变换),是傅里叶变换在时域和频域上都呈离散的形式,将信号的时域采样变换为其DTFT的频域采样。
在形式上,变换两端(时域和频域上)的序列是有限长的,而实际上这两组序列都应当被认为是离散周期信号的主值序列。
即使对有限长的离散信号作DFT,也应当将其看作其周期延拓的变换。
在本次虚拟中用Matlab进行可直接得出结果。
实验1用MATLAB进行信号频谱分析
实验1用MATLAB进行信号频谱分析提供一个实验步骤,帮助您用MATLAB进行信号频谱分析。
以下是一个详细步骤,您可以按照提示进行操作。
1.准备信号数据选择一个信号数据,可以是一个音频文件或一个由数字数据表示的信号。
确保该文件位于MATLAB当前工作目录下,或者提供文件的完整路径。
2.导入信号数据在MATLAB命令窗口中键入以下命令,将信号数据导入到MATLAB中:`data = audioread('filename.wav');`或者,如果信号数据是数字数据矩阵,可以直接将其赋值给变量:`data = your_signal_data;`3.绘制时域波形图使用以下命令可以绘制信号的时域波形图:`plot(data);`这将绘制出信号的波形图。
可以使用音频播放器在MATLAB环境中播放信号,以便更好地了解信号特征:`sound(data, Fs);`这里的Fs是信号的采样率,通常以赫兹(Hz)为单位。
4.计算信号的频谱频谱可以通过对信号进行傅里叶变换来获得。
在MATLAB中,可以使用fft函数执行傅里叶变换。
使用以下命令来计算信号的频谱:`N = length(data); %获取信号数据的长度``Y = fft(data); %执行傅里叶变换``P = abs(Y/N); %计算信号的频谱(单侧幅度谱)`5.绘制频谱图使用以下命令可以绘制信号的频谱图:`f=(0:N-1)*(Fs/N);%计算频率轴``plot(f, P); %绘制频谱图``xlabel('频率(Hz)');``ylabel('幅度');`6.可选步骤:去除直流分量信号的频谱通常包含一个直流分量(频率为0Hz),可以通过以下步骤将其去除:`P(1)=0;%设置直流分量的幅度为0``plot(f, P); %绘制修正后的频谱图`到此为止,我们已经使用MATLAB完成了信号频谱分析的基本步骤。
基于Matlab的频谱分析
基于Matlab 的频谱分析一、实验目的1、把握时域抽样定理。
2、通过实验加深对FFT 的明白得。
3、熟悉应用FFT 对典型信号进行频谱分析的方式。
二、实验原理一、时域抽样定理时域抽样定理给出了持续信号抽样进程中信号不失真的约束条件:关于基带信号,信号抽样频率 大于等于2倍的信号最高频率 ,即 。
时域抽样是把持续信号 变成适于数字系统处置的离散信号 。
对持续信号以距离T 抽样,那么可取得的离散序列为 。
图1 持续信号抽样的离散序列若 ,那么信号 与 的频谱之间存在: 其中: 的频谱为, 的频谱为 。
可见,信号时域抽样致使信号频谱的周期化。
(rad/s))e (j ΩX ()∑∞-∞=-=n n X T )(j 1sam ωω)e (j ΩX []k X )e (j ωX )j (ωX T sam/2πω=[]k X ()t X []()kTt kT X X ==k ()t X []k X ()t X []()kT t kT X X ==k m sam f f 2≥sam f m f为抽样角频率, 为抽样频率。
数字角频率Ω与模拟角频率ω的关系为:Ω=ωT 。
二、 离散傅立叶变换(DFT )有限长序列)(n x 的离散傅立叶变换(DFT )为10,)()]([)(10-≤≤==∑-=-N n W n x n x DFT k X N n kn N逆变换为10,)(1)]([)(10-≤≤==∑-=-N n W k X N k X IDFT n x N n kn N 3、快速傅立叶变换(FFT )在各类信号序列中,有限长序列占重腹地位。
对有限长序列能够利用离散傅立叶变换(DFT)进行分析。
DFT 不但能够专门好的反映序列的频谱特性,而且易于用快速算法(FFT)在运算机上进行分析。
有限长序列的DFT 是其z 变换在单位圆上的等距离采样,或说是序列傅立叶的等距离采样,因此能够用于序列的谱分析。
FFT 是DFT 的一种快速算法,它是对变换式进行一次次分解,使其成为假设干小数据点的组合,从而减少运算量。
MATLAB离散信号的产生和频谱分析实验报告
实验一离散信号的产生和频谱分析一、实验目的仿真掌握采样定理。
学会用FFT 进行数字谱分析。
掌握FFT 进行数字谱分析的计算机编程实现方法。
培养学生综合分析、解决问题的能力,加深对课堂内容的理解。
二、实验要求掌握采样定理和数字谱分析方法;编制FFT 程序;完成正弦信号、线性调频信号等模拟水声信号的数字谱分析;三、实验内容单频脉冲(CWP )为)2e xp()()(0t f j T t rec t t s π=。
式中,)(Ttrect 是矩形包络,T 是脉冲持续时间,0f 是中心频率。
矩形包络线性调频脉冲信号(LFM )为)]21(2exp[)()(20Mt t f j Ttrect t s +=π。
式中,M 是线性调频指数。
瞬时频率Mt f +0是时间的线性函数,频率调制宽度为MT B =。
设参数为kHz f 200=,ms T 50=,kHz B 10=,采样频率kHz f s 100=。
1.编程产生单频脉冲、矩形包络线性调频脉冲。
2.编程实现这些信号的谱分析。
3.编程实现快速傅立叶变换的逆变换。
四、实验原理1、采样定理所谓抽样,就是对连续信号隔一段时间T 抽取一个瞬时幅度值。
在进行模拟/数字信号的转换过程中,当采样频率fs 大于信号中最高频率f 的2倍时(fs>=2f),采样之后的数字信号完整地保留了原始信号中的信息,一般实际应用中保证采样频率为信号最高频率的5~10倍;采样定理又称奈奎斯特定理。
2、离散傅里叶变换(FFT )长度为N 的序列()x n 的离散傅立叶变换()X k 为:10()(),0,....,1N nkN n X k x n W k N -===-∑N 点的DFT 可以分解为两个N/2点的DFT ,每个N/2点的DFT 又可以分解为两个N/4点的DFT 。
依此类推,当N 为2的整数次幂时(2MN =),由于每分解一次降低一阶幂次,所以通过M 次的分解,最后全部成为一系列2点DFT 运算。
信号的频谱分析实验
电子系电子信息工程专业实验报告 课程名称:《基于MATLAB 的信号与系统及数字信号处理仿真实验》实验项目名称:信号的频谱分析实验验时间: 2012-6-15实验地点:信息学院4层机房一、实验目的1、熟悉理解连续信号的时域采样和连续信号时域采样前后频谱变化关系;2、熟悉理解连续频谱的频域采样和频域采样点数的选择;3、学习掌握FFT 对连续信号和离散信号进行频谱分析的方法;4、了解FFT 对信号进行频谱分析过程中可能出现的分析误差及其原因。
二、实验原理1、时域采样① 对模拟信号()a x t 以间隔T 进行时域等间隔理想采样,形成的采样信号的频谱)(ˆΩj X是原模拟信号频谱()a X j Ω以采样角频率s Ω(2/s T πΩ=)为周期进行周期延拓。
公式为:)](ˆ[)(ˆt x FT j X a a =Ω1()a s n X j jn T ∞=-∞=Ω-Ω∑ ② 采样频率s Ω必须大于等于模拟信号最高频率的两倍以上,才能使采样信号的频谱不产生频谱混叠。
利用计算机计算上式并不方便,下面我们导出另外一个公式,以便用计算机上进行实验。
理想采样信号)(ˆt xa 和模拟信号)(t x a 之间的关系为: ∑∞-∞=-=n a a nT t t x t x)()()(ˆδ对上式进行傅立叶变换,得到: dt e nT t t x j X t j n a a Ω-∞∞-∞-∞=⎰∑-=Ω])()([)(ˆδdt e nT t t x t j n a Ω-∞-∞=∞∞-∑⎰-)()( δ=在上式的积分号内只有当nT t =时,才有非零值,因此: ∑∞-∞=Ω-=Ωn nT j a ae nT x j X )()(ˆ上式中,在数值上)(nT x a =)(n x ,再将T Ω=ω代入,得到:∑∞-∞=-=Ωn n j ae n x j X ω)()(ˆ上式的右边就是序列的傅立叶变换)(ωj eX ,即 Tj a e X j X Ω==Ωωω)()(ˆ 上式说明理想采样信号的傅立叶变换可用相应的采样序列的傅立叶变换得到,只要将自变量ω用T Ω代替即可。
信号频谱 matlab
信号频谱 matlab
信号频谱是指信号在频率域上的表现,它描述了信号在不同频率上的能量分布情况。
在Matlab中,我们可以使用不同的函数来分析和绘制信号的频谱。
常用的函数包括fft、pwelch和spectrogram等。
首先,我们可以使用fft函数来计算信号的频谱。
fft函数可以将信号从时域转换到频域,得到信号的幅度和相位信息。
通过对fft计算结果取模平方,我们可以得到信号的功率谱密度。
这样可以帮助我们分析信号在不同频率上的能量分布情况。
另外,pwelch函数可以用来估计信号的功率谱密度。
它采用了Welch方法,通过对信号进行分段处理,然后对每个段的功率谱进行平均来得到最终的估计结果。
pwelch函数可以帮助我们在频域上更好地分析信号的特性,尤其是在处理非平稳信号时具有很好的效果。
除了这些函数外,Matlab还提供了spectrogram函数来绘制信号的时频图。
spectrogram可以将信号分成多个时间窗口,并对每个时间窗口进行短时傅里叶变换,最终得到信号在时间-频率平面上
的能量分布情况。
这对于分析信号的瞬时频率特性非常有帮助。
总之,Matlab提供了丰富的工具和函数来分析信号的频谱特性,包括fft、pwelch和spectrogram等。
通过这些工具,我们可以全
面地了解信号在频率域上的特性,从而更好地理解和处理信号。
matlab实验报告-数字信号的产生和频谱分析
实验一 数字信号的产生和频谱分析一. 实验目的1.掌握采样定理内容,熟悉连续信号经理想采样前后的频谱变化关系,加深时域采样定理的理解。
2.熟悉FFT 算法原理和FFT 子程序的应用。
3.学习用FFT 对连续信号和时域离散信号进行谱分析的方法,了解可能出现的分析误差及其原因,以便在实际中正确应用FFT 。
掌握利用FFT 进行信号谱分析的原理。
4.理解信号通过高斯白噪声信道的原理。
二. 实验要求1. 按照采样定理生成CW 信号和LFM 信号;2. 画出信号时域波形图和频谱图;3. 生成高斯分布的白噪声;4. 生成一定信噪比的带噪信号,并对其进行谱分析。
三. 基本原理所谓抽样。
就是对时间连续的信号隔一定的时间间隔T 抽取一个瞬时幅度值在一个频带限制在(0,t )内的时间连续信号f (t ),如果以fs 的抽样频率对它进行抽样,那么根据这些抽样值就能完全恢复原信号。
根据抽样定理只有当发生fs ≥2fm ,抽样后的信号才能包含原连续的全部信息。
对于一个连续信号)(t x a ∧进行理想采样的过程可用下式表示:)()()(t p t x t x a a =∧其中)(t x a ∧是对)(t x a 的理想采样,)(t p 为周期冲激脉冲,即∑∞-∞=-=m nT t t p )()(δ)(t x a ∧的傅里叶变换)(Ω∧j X a 为)]([1)(Ω-Ω=Ω∑∞-∞=∧m j XTj X m aa上式表明)(Ω∧j X a 为)(Ωj X a 的周期延拓,其延拓周期为采样角频率(T s /2π=Ω)。
只有满足采样定理时,才不会发生频率混叠失真。
将②代入①进行傅里叶变换可得ˆ()[()()]()()()j taa n j ta n j nTa n X j x t t nT edtx t t nT edtx nT eωδδ∞∞-Ω-∞=-∞∞∞-Ω-∞=-∞∞-Ω=-∞=-=-=∑⎰∑⎰∑式中的()a x nT 就是采样后得到的序列()x n ,即 ()()a x n x n T =x(n)的傅里叶变换为()()j j nn X ex n eωω∞=-∞=∑比较两式可得 ˆ()()|j a TX j X e ωωω=Ω=这说明两者之间只在频率度量上差一个常数因子T 。
创新学分实验1_连续周期信号频谱分析的MATLAB算法实现
连续周期信号频谱分析的MATLAB 算法实现一 引言在上一章中介绍了四种不同类型信号的频谱变化规律,在这一章将具体研究其中的一种,即连续周期信号。
在从理论上掌握其频谱变化规律的基础上,我们将分带宽有限的连续周期信号和带宽无限的连续周期信号两个方面着重讨论如何应用离散傅里叶变换DFT 对其频谱进行分析,分别针对具体实例,通过MATLAB 编程采用FFT 算法实现对其频谱的计算,并和理论值比较,作了相应的误差分析。
二 时域采样定理根据下列关系式所构成的连续时间傅里叶级数对CTFS ,即∑∞∞-=tjk ek X t x 0)()(0ωω ⎰--=220000)(1)(T T tjk dt et x T k X ωω 1从理论上可求得:连续周期信号的频谱)(0ωk X 是非周期离散的频谱。
由于在时域信号是连续的,尚须对其作离散化处理(即采样)后才能利用DFT 进行分析。
对采样过程而言,如果不能恰当地确定采样间隔或采样点数,势必产生混叠误差。
例如,在时域欠取样情况下将出现频谱混叠而无法恢复原信号频谱,因而不能从时域样点准确地重建原来的连续信号,以至在严重情况下会得到错误的计算结果。
采样定理为采样后能否恢复原信号提供了理论依据。
对于连续周期信号的频谱分析,我们需要用到时域采样定理,即: 一个频谱在区间 ),(m m ωω-以外为零的频带有限信号)(t f ,可唯一地由其在均匀间隔⎪⎪⎭⎫⎝⎛<m s s f T T 21上的样点值)(s nT f 确定。
在严格满足取样定理并恰当选取采样间隔T 和采样点数N 的情况下,用DFT 求得的离散频谱值等于原来的连续周期信号离散频谱)(0ωk X 的准确值;否则,将求得)(0ωk X 的近似值。
三 带宽有限的连续周期信号的频谱分析3.1 实现方法与求解步骤设待分析的连续周期信号x(t)的表达式已知,通过分析可求得最高频率m f ,根据采样定理,采样速率要满足00,22f kf f f m s =≥为基频,k 为最高谐波次数。
应用MATLAB对信号进行频谱分析及滤波铁道大学
数字信号处理设计报告课题名称应用MATLAB对信号进行频谱分析及滤波姓名 XXXX学号 XXX8040827院、系电气系专业电子信息工程指导教师刘鑫淼应用MATLAB对信号进行频谱分析及滤波一、设计目的用MATLAB语言进行编程,绘出所求波形,并且运用FFT求对连续信号进行分析。
二、设计要求1、用Matlab产生正弦波,矩形波,并显示各自的时域波形图;2、进行FFT变换,显示各自频谱图,其中采样率、频率、数据长度自选,要求注明;3、绘制三种信号的均方根图谱;4、用IFFT回复信号,并显示恢复的正弦信号时域波形图。
三、系统原理用FFT对信号作频谱分析是学习数字信号处理的重要内容。
经常需要进行频谱分析的信号是模拟信号和时域离散信号。
频谱分辨率直接和FFT的变换区间N 有关,因为FFT能够实现频率分辨率是2π/N。
x(n)是一个长度为M的有限长序列,则x(n)的N点离散傅立叶变换为:X(k)=DFT[x(n)]=knNWNnnx∑-=1)(,k=0,1,...,N-1NjeNWπ2-=逆变换:x(n) =IDFT[X(k)]=knNWkXNnN-∑-=1)(1,k=0,1,...,N-1但FFT是一种比DFT更加快速的一种算法,提高了DFT的运算速率,为数字信号处理技术应用于各种信号处理创造了条件,大大提高了数字信号处理技术的发展。
本实验就是采用FFT,IFFT对信号进行谱分析。
四、程序设计fs=input('please input the fs:');%设定采样频率N=input('please input the N:');%设定数据长度t=0:0.001:1;f=100;%设定正弦信号频率%生成正弦信号x=sin(2*pi*f*t);figure(1);subplot(211);plot(t,x);%作正弦信号的时域波形axis([0,0.1,-1,1]);title('正弦信号时域波形');z=square(50*t);subplot(212)plot(t,z)axis([0,1,-2,2]);title('方波信号时域波形');grid;%进行FFT变换并做频谱图y=fft(x,N);%进行fft变换mag=abs(y);%求幅值f=(0:N-1)*fs/N;%横坐标频率的表达式为f=(0:M-1)*Fs/M; figure(2);subplot(211);plot(f,mag);%做频谱图axis([0,1000,0,200]);title('正弦信号幅频谱图');y1=fft(z,N);%进行fft变换mag=abs(y1);%求幅值f=(0:N-1)*fs/N;%横坐标频率的表达式为f=(0:M-1)*Fs/M; subplot(212);plot(f,mag);%做频谱图axis([0,1000,0,200]);title('方波信号幅频谱图');grid;%求功率谱sq=abs(y);power=sq.^2;figure(3)subplot(211);plot(f,power);title('正弦信号功率谱');grid;sq1=abs(y1);power1=sq1.^2;subplot(212);plot(f,power1);title('方波信号功率谱');grid; %用IFFT 恢复原始信号 xifft=ifft(y); magx=real(xifft);ti=[0:length(xifft)-1]/fs; figure(4); subplot(211); plot(ti,magx);axis([0,0.1,-1,1]);title('通过IFFT 转换的正弦信号波形'); zifft=ifft(y1);magz=real(zifft);ti1=[0:length(zifft)-1]/fs; subplot(212);plot(ti1,magz);title('通过IFFT 转换的方波信号波形');grid; 五、仿真结果及分析00.010.020.030.040.050.060.070.080.090.1-1-0.500.51正弦信号时域波形0.10.20.30.40.50.60.70.80.91-2-1012方波信号时域波形由图可以看出正弦波周期T=0.01,采样点N=1024.程序为: t=0:0.001:1;f=100;%设定正弦信号频率x=sin(2*pi*f*t);figure(1); subplot(211);plot(t,x);%作正弦信号的时域波形 axis([0,0.1,-1,1]);title('正弦信号时域波形'); z=square(50*t); subplot(212) plot(t,z)axis([0,1,-2,2]);title('方波信号时域波形');grid;0100200300400500600700800900100050100150200正弦信号幅频谱图1002003004005006007008009001000050100150200方波信号幅频谱图2、对正弦波、方波信号进行FFT 变换程序: y=fft(x,N);%进行fft 变换mag=abs(y);%求幅值f=(0:N-1)*fs/N;%横坐标频率的表达式为f=(0:M-1)*Fs/M; figure(2); subplot(211);plot(f,mag);%做频谱图 axis([0,1000,0,200]);title('正弦信号幅频谱图'); y1=fft(z,N);%进行fft 变换mag=abs(y1);%求幅值f=(0:N-1)*fs/N;%横坐标频率的表达式为f=(0:M-1)*Fs/M; subplot(212);plot(f,mag);%做频谱图 axis([0,1000,0,200]);title('方波信号幅频谱图');grid;05010015020025030035040045050051015x 104正弦信号功率谱0501001502002503003504004505001234x 105方波信号功率谱正弦信号、方波信号功率谱程序: sq=abs(y); power=sq.^2; figure(3)subplot(211); plot(f,power);title('正弦信号功率谱');grid; sq1=abs(y1); power1=sq1.^2; subplot(212); plot(f,power1);title('方波信号功率谱');grid;00.010.020.030.040.050.060.070.080.090.1-1-0.500.51通过IFFT 转换的正弦信号波形0.511.522.5-2-1012通过IFFT 转换的方波信号波形对两个信号进行恢复程序: xifft=ifft(y); magx=real(xifft);ti=[0:length(xifft)-1]/fs; figure(4); subplot(211); plot(ti,magx);axis([0,0.1,-1,1]);title('通过IFFT 转换的正弦信号波形'); zifft=ifft(y1); magz=real(zifft);ti1=[0:length(zifft)-1]/fs; subplot(212);plot(ti1,magz);title('通过IFFT 转换的方波信号波形');grid;当采样频率小于2fc 或N 小于M 时恢复信号就会出现失真,频谱会发生馄叠。
信号时域采样频谱分析(matlab)
基于matlab 的时域信号采样及频谱分析一:主要设计方法与步骤:1. 画出连续时间信号0sin()()t u t Ω-at x(t)=Ae 的时域波形及其幅频特性曲线,其中,幅度因子444.128A =,衰减因子222.144a =,模拟角频率0222.144Ω=;2. 对信号()x t 进行采样,得到采样序列0()sin()()ant x n Ae nT u n -=Ω,050n ≤≤,其中,1sT f =为采样间隔,通过改变采样频率可改变T ,画出采样频率分别为200H z ,500Hz ,1000Hz 时的采样序列波形;3. 对不同采样频率下的采样序列进行频谱分析,绘制其幅频和相频曲线,对各频率下采样序列()x n 和()x t 的幅频曲线有无差别,如有差别说明原因;4. 设系统单位抽样响应为5()()h n R n =,求解当输入为()x n 时的系统响应()y n ,画出()x n ,()h n ,()y n 的时域波形及幅频特性曲线,并利用结果验证卷积定理的正确性(此内容将参数设置为444.128A =,222.144a =,0222.144W =,1000fs =); 5. 用FFT 对信号()x n ,()h n ,()y n 进行频谱分析,观察与4中结果有无差别; 6. 由采样序列()x n 恢复出连续时间信号1()x t ,画出其时域波形,对比1()x t 与原来的连续时间信号()x t 的时域波形,计算并记录两者最大误差。
二:详细程序及仿真波形分析1.连续时间信号()x t 及其200/500/1000Hz Hz Hz 频率抽样信号函数()x n % 绘制信号x(n)的幅度谱和相位谱 clcclear all close alln=0:50 % 定义序列的长度是50A=input('请入A 的值A:') % 设置信号的有关参数 a=input('请入a 的值a:')w0=input('请入w0的值w0:') T1=0.005 T2=0.002 T3=0.001 T0=0.001x=A*exp(-a*n*T0).*sin(w0*n*T0) y1=A*exp(-a*n*T1).*sin(w0*n*T1) y2=A*exp(-a*n*T2).*sin(w0*n*T2) y3=A*exp(-a*n*T3).*sin(w0*n*T3) close allsubplot(2,1,1)stem(n,x) % 绘制x(n)的图形 grid ontitle('离散时间信号') subplot(2,1,2) plot(n,x) grid ontitle('连续时间信号')05101520253035404550离散时间信号5101520253035404550-50050100150连续时间信号figure(2)subplot(3,1,1) stem(n,y1) grid ontitle('200Hz 理想采样信号序列') subplot(3,1,2) stem(n,y2) grid ontitle('500Hz 连续时间信号') subplot(3,1,3) stem(n,y3)grid ontitle('1000Hz 连续时间信号')5101520253035404550200Hz 理想采样信号序列05101520253035404550500Hz 连续时间信号051015202530354045501000Hz 连续时间信号k=-25:25W=(pi/12.5)*k w=W/piY1=y1*exp(-j*pi/12.5).^(n'*k) figure (3) subplot(2,1,1) plot(w,abs(Y1)) gridxlabel('w') ylabel('幅度')title('200Hz 理想采样信号序列的幅度谱') axis([-2 2 0 1000]) subplot(2,1,2) plot(w,angle(Y1)) gridxlabel('w') ylabel('幅角')title('200Hz 理想采样信号序列的相位谱')-2-1.5-1-0.500.51 1.5205001000w幅度-2.5-2-1.5-1-0.50.511.52-4-2024w幅角200Hz 理想采样信号序列的相位谱Y2=y2*(exp(-j*pi/12.5)).^(n'*k) figure (4) subplot(2,1,1) plot(w,abs(Y2)) gridxlabel('w') ylabel('幅度')title('500Hz 理想采样信号序列的幅度谱') axis([-2 2 0 1000]) subplot(2,1,2) plot(w,angle(Y2)) gridxlabel('w') ylabel('幅角')title('500Hz 理想采样信号序列的相位谱')-2-1.5-1-0.500.51 1.5205001000w幅度-2.5-2-1.5-1-0.50.511.52-4-2024w幅角500Hz 理想采样信号序列的相位谱Y3=y3*(exp(-j*pi/12.5)).^(n'*k) figure (5) subplot(2,1,1) plot(w,abs(Y3)) gridxlabel('w') ylabel('幅度')title('1000Hz 理想采样信号序列的幅度谱') axis([-2 2 0 1000]) subplot(2,1,2) plot(w,angle(Y3)) gridxlabel('w') ylabel('幅角')title('1000Hz 理想采样信号序列的相位谱')-2-1.5-1-0.500.51 1.5205001000w幅度-2.5-2-1.5-1-0.50.511.52-4-2024w幅角1000Hz 理想采样信号序列的相位谱分析:采样频率为1000Hz 时没有失真,500Hz 时有横线,产生失真,200Hz 时横线加长,失真加大。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验1 用MATLAB 进行信号频谱分析
一、实验目的
㈠ 初步掌握MATLAB 产生常用离散时间信号的编程方法。
㈡ 学习编写简单的FFT 算法程序,对离散信号进行幅频谱分析。
㈢ 观察离散时间信号频谱的特点。
二、实验原理
㈠ 常用的离散时间信号
在 MATLAB 语言主要是研究离散信号的。
常用的离散信号有:
1.单位取样序列
⎩⎨⎧≠==0
001)(n n n δ 2.单位阶跃序列
⎩⎨⎧<≥=0001)(n n n u
3.实指数序列
R a n a n x n
∈∀=;)( 4.复指数序列
n e n x n
j ∀=+)(0)(ωσ
5.正(余)弦序列
)cos()(0θω+=n n x n ∀
6.周期序列
n N n x n x ∀+=)()(
㈡ 离散信号的产生
离散信号的图形显示使用stem 指令。
在 MATLAB 中的信号处理工具箱中,主要提供的信号是离散信号。
由于MATLAB 对下标的约定为从1开始递增,例如x=[5,4,3,2,1,0],表示x(1)=5,x(2)=4,X(3)=3…
因此要表示一个下标不由1开始的数组x(n),一般应采用两个矢量,如 n=[-3,-2,-1,0,l ,2,3,4,5];
x=[1,-l ,3,2,0,4,5,2,1];
这表示了一个含9个采样点的矢量:X(n)={x(-3),x(-2),x(-1),x(0),x(1),x(2),x(3),x(4),x(5)}。
1.单位取样序列
⎩⎨⎧≠==δ0
001)(n n n 这一函数实现的方法有二:
方法一:可利用MATLAB 的zeros 函数。
x=zeros(1,N); %建立一个一行N 列的全零数组
x(1)=1; %对X (1)赋1
方法二:可借助于关系操作符实现
n=1:N;
x=[n==1]; %n 等于1时逻辑关系式结果为真,x=1;n 不等于1时为假,x=0
如要产生 ⎪⎩⎪⎨⎧≤<<=≤≤=-δ202100100)(10)(n n n n n n n n n n n n
则可采用MATLAB 实现:
n=n1:n2;
x=[(n-n0)==0];%n=n0时逻辑关系式结果为真,x=1;n ≠n0时为
假,x=0
2.单位阶跃序列
⎩⎨⎧<≥=0001)(n n n u
这一函数可利用MATLAB 的ones 函数实现:
x=ones(1,N);
还可借助于关系操作符“>=”来实现。
如要产生在n1≤n0≤n2上的单位阶跃序列
⎩⎨⎧<≥=-00
001)(n n n n n n u
则可采用MATLAB 实现:
n=n1:n2;
x=[(n-n0)>=0]; %n-n0≥0为真,x=1;n-n0<0时为假,x=0
3.实指数序列
为任意实数a a n x n =)(
采用MATLAB 实现:
n=0:N-l ;
x=a.^n ;
4.复指数序列
n j e n x )(0)(ω+σ=
采用MATLAB 实现:
n=0:N-1;
x=exp((lu+j*w0)*n);
5.正(余)弦序列
)cos()(0θω+=n n x
采用MATLAB 实现:
n=0:N-l ;
x=cos(w0*n+Q);
6.随机序列
MATLAB 中提供了两类(伪)随机信号:
rand(1,N)产生[0,1)上均匀分布的随机矢量;
randn(1,N)产生均值为0,方差为1的高斯随机序列,也就是白噪声序列。
其它分布的随机数可通过上述随机数的变换而产生。
7.周期序列
)()(N n x n x +=
例如,设t1表示T 序列中一个周期的序列,要产生4个周期的T 序列,用MATLAB 实现:
T =[t1 t1 t1 t1];
三、实验任务
㈠ 运行实验原理中介绍的例题程序,读懂每一条程序的含义,熟悉MATLAB 中离散信号和频谱分析常用的子函数。
㈡ 编写求解例1中单位阶跃序列频谱的程序,并显示其信号及其频谱曲线。
n0=0;nf=10;ns=3;N=32;M=100;
n2=n0:nf;x2=[(n2-ns)>=0];
subplot(3,1,1),stem(n2,x2); %画出x2的单位阶跃序列
i=0:N-1; j=0:M-1; %样点自0开始
y1=fft(x2,N); %对x2进行32点傅里叶变换y2=fft(x2,M); %对x2进行100点傅里叶变换aw1=abs(y1); aw2=abs(y2); %求幅度谱
subplot(3,1,2);plot(i,aw1) %32点傅里叶变换的频谱图subplot(3,1,3);plot(j,aw2) %100点傅里叶变换的频谱图
㈢已知一个用square产生的方波信号频率为100Hz,幅度为2V,对其进行32点的采样并进行FFT运算,显示采样后的信号及其频谱图。
(可参考例5)f=100;Um=2;nt=1; %输入信号频率100、振幅为2和显示一个周期个数
N=32;T=nt/f; %N为32个采样点数,T为窗口显示时间dt=T/N; %采样时间间隔
n=0:N-1;
t=n*dt;
xn=Um*square(2*f*pi*t,50); %产生时域信号
subplot(2,1,1);stem(t,xn); %显示时域信号
axis([0 T 1.1*min(xn) 1.1*max(xn)]);
ylabel('x(n)');
i=0:N-1;
y=fft(xn,N);
AW=abs(y); %用FFT子函数求信号的频谱
subplot(2,1,2);stem(i,AW); %显示信号的频谱
ylabel('|X(k)|');
(四) 一无限长序列x(n)=)(8.0n u n
① 截取序列长度M=10点,用FFT 计算其频谱,并与理论计算的结果进行比较,观察频谱泄漏现象.
② 截取序列长n0=0;nf=9;
n3=n0:nf;x3=(0.8).^n3; %实数指数序列 subplot(3,1,1);stem(n3,x3);
N=10;i=0:N-1;
M=50;j=0:M-1;
y1=fft(x3,N);
y2=fft(x3,M);
aw1=abs(y1);aw2=abs(y2); %求幅度谱
subplot(3,1,2);plot(i,aw1);
subplot(3,1,3);plot(j,aw2);
四、实验总结
3.我们知道抽样时间间隔越小,此时显示的频谱越是准确。
因此,当我们在利用fft计算频谱的时候,我们应该尽量提高取样点数,在任务一中发现32个采样点比100个采样点的频谱泄露严重,同时在任务三中也可以发现在M=10的时候频谱泄露比M=50的时候严重。
4 连续信号的频谱是非周期的,一旦我们将其离散,那么依据“一个域的离散必定导致另一个域的周期延拓”,因此我们可以知道离散时间信号的频谱是周期的。