时域与频域的matlab程序

合集下载

matlab由导出的时域数据做傅里叶变换得到的频域波形

matlab由导出的时域数据做傅里叶变换得到的频域波形

matlab由导出的时域数据做傅里叶变换得到的频域波形Title: Frequency Domain waveform Obtained from Fourier Transform of Time-Domain Data Exported from MATLAB正文:傅里叶分析是信号处理中非常重要的一种分析方法,它将时域信号转换为频域信号,用于分析信号的频率成分和频谱特性。

MATLAB是一个功能强大的数学计算软件,也具备进行傅里叶变换和信号处理的能力。

本文将讨论如何使用MATLAB导出的时域数据进行傅里叶变换,并获取频域波形。

首先,我们需要在MATLAB中获得时域数据。

可以通过各种方式获得时域信号,例如从实验测量、模拟信号或者音频文件中读取。

一旦获得时域数据,我们可以将其导出为.csv或.txt格式等常见的数据文件。

接下来,在MATLAB中打开导出的时域数据文件,并加载到工作空间中。

我们可以使用MATLAB的文件读取和数据处理功能来读取和处理导出的时域数据。

确保正确处理和调整数据格式后,可以将数据传递给MATLAB的傅里叶变换函数。

在MATLAB中,使用fft函数可以对时域数据进行傅里叶变换。

傅里叶变换将时域信号分解成一系列正弦波的叠加,得到信号的频域表示。

根据需要,可以选择使用快速傅里叶变换(FFT)或离散傅里叶变换(DFT)等不同变换方法。

完成傅里叶变换后,我们可以获取到频域波形。

频域波形是一种将频率和振幅表示在坐标轴上的图像。

根据具体需求,我们可以选择绘制幅度谱、相位谱或复数形式的频谱图。

使用MATLAB中的绘图函数,如plot、stem或mesh等,可以将频域波形可视化,并进行必要的解释和分析。

频域波形提供了信号的频率分量信息,可以用于进一步研究信号的频谱特性。

例如,我们可以通过观察频域波形确定信号中的主要频率成分、谐波、噪声等。

频域波形的分析还可以用于滤波、音频处理、图像处理等各种应用领域。

matlab的cpsd函数与fft函数

matlab的cpsd函数与fft函数

matlab的cpsd函数与fft函数MATLAB中的cpsd(cross power spectral density)和fft(fast Fourier transform)函数是频谱分析中常用的工具。

cpsd函数计算两个信号的交叉功率谱密度,fft函数用于将信号从时域转换为频域。

首先,我们来探讨cpsd函数。

cpsd函数的语法如下:```[Pxy,f] = cpsd(x,y,window,noverlap,nfft,fs)```其中,x和y是输入信号,可以是向量或矩阵,并且长度必须相同。

window是窗函数,用于对信号进行分段处理。

noverlap是分段过程中窗口之间的重叠样本数。

nfft是FFT的长度,用于指定频谱的精度。

fs是采样率。

cpsd函数返回两个输出值,Pxy是交叉功率谱密度估计值,f是对应的频率向量。

cpsd函数首先对输入信号进行分段处理,然后使用窗函数对每个段进行加窗。

窗函数通常选择汉宁窗或汉明窗,用于减小频谱泄漏的影响。

接下来,对每个段进行FFT计算,得到频域信号。

最后,对每个段计算功率谱密度,然后对所有段的结果取平均得到交叉功率谱密度估计。

接下来,我们讨论fft函数。

fft函数的语法如下:```Y = fft(X,n,2)```其中,X是输入信号,可以是向量或矩阵。

n是FFT的长度,用于指定频谱的精度。

2是指定FFT的维度,2表示对每列进行FFT变换。

fft 函数返回FFT的结果Y,它的大小与输入信号X相同。

fft函数使用快速傅里叶变换算法对输入信号进行频谱分析。

它将时域信号转换为频域信号,通过计算信号的幅度和相位谱来提取信号的频谱信息。

通过fft函数,我们可以获得信号在不同频率上的能量分布。

综上所述,cpsd函数和fft函数是MATLAB中用于频谱分析的常用工具。

cpsd函数用于计算两个信号的交叉功率谱密度估计,可以获得不同频率上的相关性信息。

fft函数用于将信号从时域转换为频域,提取信号的频谱信息。

脑电时频分析原理及matlab操作

脑电时频分析原理及matlab操作

智库时代·230·智者论道 脑电时频分析原理及Matlab 操作*冯廷炜(新疆师范大学,新疆乌鲁木齐 830017)摘要:时频分析(TFD)是时域分析与频域分析的总称。

时间和频率是描述信号的两个重要的物理量。

时域分析是指在空间一定时,时间进程上大脑头皮电极分布,多指事件相关电位ERP。

而频域是在时间一定的情况下,对空间不同频段上的能量Power 值能量升高ERS(事件相关同步)或降低ERD(事件相关去同步)电极分布,时频分析又称神经振荡。

时频分析广泛应用在心理学、医学、工程学、信号雷达等各个领域。

对人类脑认知机制研究也有重要的现实意义。

关键词:ERP;时频分析;Matlab;letswave 中图分类号:B025.4文献标识码:A文章编号:2096-4609(2020)04-0230-002ERP 是指在头皮表面记录大脑神经活动产生的电信号,是特定事件或者特定任务诱发的电位。

而EEG 是自发脑电位,大脑无时无刻都在周期性、有节律的发生自发电位。

ERP 具有高时间分辨率的优势,主要用来分析锁时锁相的信号。

而EEG 或时频主要对于那些被忽略的锁时或非锁相信号进行叠加平均。

EEG 和ERP 都可以在频域中进行分析。

一、时频分析TFD(Time Frequency Domain)时频分析。

在数据分析中,需要多个试次平均叠加才可能得到。

时域和时频域信号处理方法是ERP 信号处理中较为常用的处理方法。

脑电信号通常可以从信号处理的角度可以理解成典型的多通道时间序列信号。

各通道间具有很强的相关性。

由于脑电信号较低的信噪比,通常需要将实验中重复多次刺激得到的脑电信号进行平均叠加,以降低噪音对信号的影响。

但在平均叠加之前,我们需要对脑电信号进行预处理,以求达到更高的信号质量。

为此,脑电信号的预处理过程是脑电信号分析过程中起到了较为关键的作用。

其中去除伪迹,挑选 ICA 各个伪迹成分需要较多的人工经验。

时域转化为频率的matlab程序

时域转化为频率的matlab程序

在MATLAB中,可以使用FFT(Fast Fourier Transform)函数将时域信号转换为频域信号。

以下是一个简单的示例程序:
matlab复制代码
% 定义时域信号
t = 0:0.001:1-0.001; % 时间向量
f = 10; % 频率
x = sin(2*pi*f*t); % 时域信号
% 执行FFT,得到频域信号
y = fft(x);
% 计算频率轴
T = 1/length(t);
f = (0:length(t)-1)*T;
% 绘制频域信号
figure;
plot(f,abs(y)/max(abs(y))); % 只显示振幅
xlabel('Frequency (Hz)');
ylabel('Amplitude');
title('Frequency Domain');
这段代码首先定义了一个时域信号,然后使用FFT函数将其转换为频域信号。

然后,计算频率轴并绘制频域信号。

注意,这个程序只显示了频域信号的振幅,没有显示相位信息。

在绘图时,你可能想要对振幅进行归一化处理,使得最大的振幅为1,这样在图形上就可以更清楚地看出哪些频率的信号更强。

MATLAB信号频谱分析FFT详解

MATLAB信号频谱分析FFT详解

MATLAB信号频谱分析FFT详解FFT(快速傅里叶变换)是一种常用的信号频谱分析方法,它可以将信号从时域转换到频域,以便更好地分析信号中不同频率成分的特征。

在MATLAB中,使用fft函数可以方便地进行信号频谱分析。

首先,我们先介绍一下傅里叶变换的基本概念。

傅里叶变换是一种将信号分解成不同频率成分的技术。

对于任意一个周期信号x(t),其傅里叶变换X(f)可以表示为:X(f) = ∫(x(t)e^(-j2πft))dt其中,X(f)表示信号在频率域上的幅度和相位信息,f表示频率。

傅里叶变换可以将信号从时域转换到频域,以便更好地分析信号的频率特征。

而FFT(快速傅里叶变换)是一种计算傅里叶变换的高效算法,它通过分治法将傅里叶变换的计算复杂度从O(N^2)降低到O(NlogN),提高了计算效率。

在MATLAB中,fft函数可以方便地计算信号的傅里叶变换。

使用FFT进行信号频谱分析的步骤如下:1. 构造信号:首先,我们需要构造一个信号用于分析。

可以使用MATLAB中的一些函数生成各种信号,比如sin、cos、square等。

2. 采样信号:信号通常是连续的,为了进行FFT分析,我们需要将信号离散化,即进行采样。

使用MATLAB中的linspace函数可以生成一定长度的离散信号。

3. 计算FFT:使用MATLAB中的fft函数可以方便地计算信号的FFT。

fft函数的输入参数是离散信号的向量,返回结果是信号在频率域上的复数值。

4. 频率换算:信号在频域上的复数值其实是以采样频率为单位的。

为了更好地观察频率成分,我们通常将其转换为以Hz为单位的频率。

可以使用MATLAB中的linspace函数生成一个对应频率的向量。

5. 幅度谱计算:频域上的复数值可以由实部和虚部表示,我们一般更关注其幅度,即信号的相对强度。

可以使用abs函数计算出频域上的幅度谱。

6. 相位谱计算:除了幅度谱,信号在频域上的相位信息也是重要的。

matlab频域积分

matlab频域积分

matlab频域积分Matlab是一种非常强大的数学软件,它提供了丰富的工具和函数,用于处理和分析各种数据。

频域积分是其中一个重要的功能,在信号处理和图像处理中起着重要的作用。

频域积分可以将信号从时域转换到频域,并在频域中进行积分操作。

频域积分可以用于许多应用,如滤波、噪声消除、频谱分析等。

在Matlab中,我们可以使用fft函数来实现频域积分。

我们需要了解一些基本概念。

在信号处理中,我们通常使用离散傅里叶变换(DFT)来将信号从时域转换到频域。

DFT将信号分解成一系列频率分量,每个分量都有一个幅度和相位。

频域积分就是对这些分量进行积分操作。

在Matlab中,我们可以使用fft函数来进行DFT。

fft函数将一个时域信号作为输入,并返回其在频域中的表示。

具体而言,我们可以使用fft函数将信号从时域转换为频域表示的复数数组。

一旦我们获得了频域表示,我们就可以对其进行积分操作。

在频域中,积分操作可以简单地通过将每个频率分量乘以其对应的频率来实现。

这样,我们就可以将信号从频域中恢复到时域中。

在Matlab中,我们可以使用ifft函数来进行逆变换,将频域信号转换回时域信号。

ifft函数接受频域表示的复数数组作为输入,并返回其在时域中的表示。

通过频域积分,我们可以实现许多信号处理的功能。

例如,我们可以使用频域积分来进行滤波操作。

滤波可以帮助我们去除信号中的噪声或不需要的频率分量。

通过在频域中对信号进行积分操作,我们可以选择性地过滤掉一些频率分量,从而实现滤波效果。

频域积分还可以用于频谱分析。

频谱分析可以帮助我们了解信号中不同频率分量的强度和相位。

通过对频域表示进行积分操作,我们可以计算出不同频率分量的能量或功率,从而获得信号的频谱信息。

在实际应用中,频域积分是一个非常有用的工具。

它可以帮助我们处理和分析各种类型的信号和数据。

通过使用Matlab中的fft和ifft函数,我们可以轻松地实现频域积分,并应用于各种应用中。

实验二-时域采样与频域采样及MATLAB程序

实验二-时域采样与频域采样及MATLAB程序

实验二时域采样与频域采样一实验目的1掌握时域连续信号经理想采样前后的频谱变化,加深对时域采样定理的理解2理解频率域采样定理,掌握频率域采样点数的选取原则二实验原理1时域采样定理对模拟信号“)以T进行时域等间隔采样,形成的釆样信号的频谱XJJQ)会以采样角频率2 (Q,=芋)为周期进行周期延拓,公式为:利用计算机计算上式并不容易,下面导出另外一个公式。

理想采样信号念⑴和模拟信号暫⑴之间的关系为:£(『)= %(0工郭-切n—x对上式进行傅里叶变换,得到:+30 -f-QQX a(jn)=匚[%(『)£ 刃-£ 匚心⑴d(t-nT)e-iai dtZI--«川―00在上式的积分号内只有当时,才有非零值,因此:X a(j^=^x a{nT)e-^T上式中,在数值上£(〃)= □),再将co=QT代入,得到:匕(山)=f兀何厂筲必丁= X(严)|亠勿上式说明采样信号的傅里叶变换可用相应序列的傅里叶变换得到,只要将自变量Q用代替即可。

2频域采样定理对信号x(n)的频谱函数X(e®在[0, 2刃上等间隔采样N点,得到X 伙)= X(严)“k = 0,l,2,..・,N — l则有:x N(n) = IDFT[X伙)h =[乞如iN)]恥)00即N点1DFT[X伙)]得到的序列就是原序列x(n)以N为周期进行周期延拓后的主值序列, 因此,频率域采样要使时域不发生混叠,则频域采样点数N必须大于等于时域离散信号的长度M (即N >M ),在满足频率域采样定理的条件下,心(")就是原序列.丫⑺)。

如果N>M,则g(”)比原序列x(〃)尾部多N —M个零点,反之,时域发生混叠,x N(n)与x(n)不等。

对比时域采样定理与频域采样定理,可以得到这样的结论:两个定理具有对偶性,即“时域采样,频谱周期延拓;频域釆样,时域信号周期延拓”。

在数字信号处理中,都必须服从这二个定理。

基于MATLAB自动控制系统时域频域分析与仿真

基于MATLAB自动控制系统时域频域分析与仿真

基于MATLAB自动控制系统时域频域分析与仿真MATLAB是一款强大的数学软件,也是自动控制系统设计的常用工具。

它不仅可以进行时域分析和频域分析,还可以进行相关仿真实验。

本文将详细介绍MATLAB如何进行自动控制系统的时域和频域分析,以及如何进行仿真实验。

一、时域分析时域分析是指对系统的输入信号和输出信号进行时域上的观察和分析,以了解系统的动态特性和稳定性。

MATLAB提供了一系列的时域分析工具,如时域响应分析、稳态分析和步骤响应分析等。

1.时域响应分析通过时域响应分析,可以观察系统对于不同的输入信号的响应情况。

在MATLAB中,可以使用`lsim`函数进行系统的时域仿真。

具体步骤如下:- 利用`tf`函数或`ss`函数创建系统模型。

-定义输入信号。

- 使用`lsim`函数进行时域仿真,并绘制系统输出信号。

例如,假设我们有一个二阶传递函数模型,并且输入信号为一个单位阶跃函数,可以通过以下代码进行时域仿真:```num = [1];den = [1, 1, 1];sys = tf(num, den);t=0:0.1:10;u = ones(size(t));[y, t, x] = lsim(sys, u, t);plot(t, y)```上述代码中,`num`和`den`分别表示系统的分子和分母多项式系数,`sys`表示系统模型,`t`表示时间序列,`u`表示输入信号,`y`表示输出信号。

通过绘制输出信号与时间的关系,可以观察到系统的响应情况。

2.稳态分析稳态分析用于研究系统在稳态下的性能指标,如稳态误差和稳态标准差。

在MATLAB中,可以使用`step`函数进行稳态分析。

具体步骤如下:- 利用`tf`函数或`ss`函数创建系统模型。

- 使用`step`函数进行稳态分析,并绘制系统的阶跃响应曲线。

例如,假设我们有一个一阶传递函数模型,可以通过以下代码进行稳态分析:```num = [1];den = [1, 1];sys = tf(num, den);step(sys)```通过绘制系统的阶跃响应曲线,我们可以观察到系统的稳态特性。

matlab数值积分的实现:时域积分和频域积分

matlab数值积分的实现:时域积分和频域积分

matlab数值积分的实现:时域积分和频域积分积分操作主要有两种方法:时域积分和频域积分,积分中常见的问题就是会产生二次趋势。

关于积分的方法,在国外一个论坛上有人提出了如下说法,供参考。

Double integration of raw acceleration data is a pretty poorestimate for displacement. The reason is that at each integration, youare compounding the noise in the data.If you are dead set on working in the time-domain, the best results come from the following steps.Remove the mean from your sample (now have zero-meansample)Integrate once to get velocity using some rule (trapezoidal, etc.)Remove the mean from the velocityIntegrate again to get displacement.Remove the mean. Note, if you plot this, you will see drift over time.To eliminate (some to most) of the drift (trend), use a least squares fit (high degree depending on data) to determine polynomial coefficients.Remove the least squares polynomial function from your data.A much better way to get displacement from acceleration data is to work in the frequency domain. To do this, follow these steps...Remove the mean from the accel. dataTake the Fouriertransform (FFT) of the accel. data.Convert the transformed accel. data to displacement data by dividing each element by -omega^2, where omega is the frequency band.Now take the inverse FFT to get back to the time-domain and scale your result.This will give you a much better estimate of displacement.说到底就是频域积分要比时域积分效果更好,实际测试也发现如此。

matlab频域分析实验报告

matlab频域分析实验报告

Matlab频域分析实验报告引言频域分析是一种常用的信号处理技术,可以帮助我们理解信号的频率特性和频率成分。

在本实验中,我们将使用Matlab进行频域分析,并通过实际的信号示例来说明其应用。

实验目标本实验的目标是通过Matlab进行频域分析,了解信号的频率特性,并能够对信号进行频域滤波、谱估计和频域增强。

实验步骤步骤一:加载信号数据首先,我们需要加载信号数据。

在Matlab中,我们可以使用load()函数来加载数据文件。

假设我们的信号数据文件名为signal.mat,则可以使用以下代码进行加载:load('signal.mat');步骤二:绘制时域波形图加载信号数据后,我们可以通过绘制时域波形图来观察信号的时域特性。

可以使用plot()函数来绘制信号的时域波形图。

以下是示例代码:plot(signal);xlabel('时间');ylabel('信号幅度');title('信号的时域波形图');步骤三:进行傅里叶变换为了将信号转换到频域,我们需要进行傅里叶变换。

在Matlab中,可以使用fft()函数对信号进行傅里叶变换。

以下是示例代码:signal_freq = fft(signal);步骤四:绘制频域幅度谱进行傅里叶变换后,我们可以绘制信号的频域幅度谱来观察信号的频率特性。

可以使用abs()函数来计算频域幅度,并使用plot()函数来绘制频域幅度谱图。

以下是示例代码:signal_freq_amp = abs(signal_freq);plot(signal_freq_amp);xlabel('频率');ylabel('幅度');title('信号的频域幅度谱');步骤五:频域滤波频域分析不仅可以帮助我们观察信号的频率特性,还可以进行频域滤波。

例如,我们可以通过在频域中将低幅度的频率成分设置为0来实现低通滤波。

matlab频域积分

matlab频域积分

matlab频域积分Matlab是一种功能强大的数学软件工具,它不仅可以进行各种数学计算,还可以进行信号处理、图像处理等多种科学计算任务。

频域积分是Matlab中一个重要的概念,它在信号处理领域有着广泛的应用。

在信号处理中,频域积分是一种将信号从时域转换到频域的方法。

通过频域积分,我们可以将一个信号分解成不同频率的成分,从而更好地理解信号的特性和结构。

频域积分可以帮助我们分析和处理各种类型的信号,比如音频信号、图像信号等。

在Matlab中,我们可以使用fft函数来进行频域积分。

fft函数可以将信号从时域转换到频域,并返回信号在频域中的幅度和相位信息。

通过分析频域中的幅度和相位信息,我们可以得到信号的频谱特性,从而更好地理解信号的频率成分。

在使用fft函数进行频域积分时,我们需要注意一些细节。

首先,我们需要将信号进行合适的预处理,比如去除直流分量、进行窗函数处理等。

这些预处理操作可以减小频谱泄漏和谱线展宽的影响,从而提高频域积分的准确性。

我们需要选择合适的采样率和采样点数。

采样率决定了信号在频域中的分辨率,采样点数决定了信号在频域中的可见范围。

选择合适的采样率和采样点数可以更好地展示信号的频谱特性,并减小频域积分的误差。

在使用fft函数进行频域积分时,我们还可以对信号进行滤波操作,从而去除不需要的频率成分。

滤波可以帮助我们提取感兴趣的频率成分,去除噪声或其他干扰信号,从而更好地分析和处理信号。

除了fft函数,Matlab还提供了其他一些函数和工具箱来进行频域积分。

比如,我们可以使用pwelch函数进行功率谱密度估计,使用spectrogram函数进行短时傅里叶变换等。

这些函数和工具箱可以帮助我们更全面地分析和处理信号的频谱特性。

总结起来,频域积分是Matlab中一个重要的概念,它在信号处理领域有着广泛的应用。

通过使用fft函数或其他相关函数,我们可以将信号从时域转换到频域,并分析信号在频域中的幅度和相位信息。

匹配滤波器在时域频域实现MATLAB源码

匹配滤波器在时域频域实现MATLAB源码

匹配滤波在时域、频域的实现%%------匹配滤波器在时、频域设计实现------%说明:1、运行版本:MATLAB R2021a% 2、以单周期线性调频信号进行示例%作者:在路上,正出发(Xu Y.B.)%日期:2021/5%% 开始clc;clearvars;close all;set(0,'defaultfigurecolor','w');%% 参数设置B=300e6;%带宽(单位:Hz)T=10e-6;%信号时宽K=B/T;fs=2*B;%采样率%% LFM信号产生t=-T/2:1/fs:T/2;s=exp(1j*pi*K*t.^2);figure;subplot(211)plot(t*1e6,real(s),'r')axis tightxlabel('时间/us')ylabel('幅度')title('LFM信号实部')subplot(212)plot(t*1e6,imag(s),'b')axis tightxlabel('时间/us')ylabel('幅度')title('LFM信号虚部')%% 时域方法匹配滤波s_filter=fliplr(conj(s));Match_filter=conv(s,s_filter);figure;t_filter=-T/2:1/fs:3*T/2;plot(t_filter*1e6,abs(Match_filter),'-b') axis tightxlabel('时间/us')ylabel('幅度')title('时域法匹配输出')%% 频域法匹配滤波N=2^nextpow2(length(s));s_filter_fft=fft(s_filter,N);s_fft=fft(s,N);s_filter_s_fft=s_fft.*s_filter_fft;s_filter_out=ifft(s_filter_s_fft); figure;t_fft=[t t(end)+(1:N-length(t))/fs]; plot(t_fft,abs(s_filter_out),'r')axis tightxlabel('时间/us')ylabel('幅度')title('频域法匹配输出')。

时域脉冲压缩和频域脉冲压缩比较附matlab源码

时域脉冲压缩和频域脉冲压缩比较附matlab源码

首先在脉冲压缩之前要搞清楚以下两点,而不是上来就自己想着设计一个匹配滤波器进行脉冲压缩,这样往往会导致错误的结果!1. LFM波形是up-chirp的,还是down-chirp的?2. LFM的带宽B,脉冲持续时间Te(不是Tr噢),mu = B/Te和TS(时域采样间隔)其次,要清楚频域脉冲压缩的实质是快速计算时域脉冲压缩,这两个是一回事!1 时域脉冲压缩,采用xcorr(等长),或conv(不等长)nscat = 3;rrec = 200;b = 100e6;scat_range = [10, 30, 100];scat_rcs = [1 1 2];taup = 0.005e-3;f0 = 5.6e9; % carrier freq ,由于exp(-i*2*pi*f0*2*range/c)与t无关,此项是个固定的相移,不起作用,建模中可以忽略c = 3.e8; % speed of lightfs = 2*b; % sampling freqsampling_interval = 1/fs;n = fix(taup/sampling_interval);freqlimit = 0.5*fs;freq = linspace(-freqlimit,freqlimit,n); % notice freq_sampling_interval = fs/n = 1/taup; t = linspace(-taup/2,taup/2,n);% initialize input, output and replica vectorsx(nscat,1:n) = 0.; % x is a nscat-by-n matrixy(1:n) = 0.;replica(1:n) = 0.;% baseband lfm signalreplica = exp(i * pi * (b/taup) .* t.^2);% 我以前不知道原来接收的一个脉冲中包含了多个目标的回波for j = 1:1:nscatrange = scat_range(j) ;%对于函数Y来说,平移都是加..%其实,平移都是针对函数Y来说的,而不是x...%因为x是y的自变量,分析的时候将对函数Y的加,等效的变成了自变量的减!%MATLAB针对自变量X的移动(t - tau) 必须变成针对函数Y本身的移动(t + tau)% t +(2*range/c) means target locate at tau = 2*range/c% t +(2*range/c) MUST greater than t, 不是课本上自变量的移动t - (2*range/c) !% f(t-t0)是自变量t的范围不动,比如观测范围永远是t=0:100ms,用于不会有t0=200ms 的图像出现在f(t-t0)的图像中% 所以f(t-t0)是通过调整自变量实现曲线的移动的,而且自变量t的范围固定,这样移动曲线y不具有物理意义。

时域和频域特征提取Matlab编程实例

时域和频域特征提取Matlab编程实例

第一章绪论1.1 概述机械信号是指机械系统在运行过程中各种随时间变化的动态信息,经各种测试仪器拾取并记录和存储下来的数据或图像。

机械设备是工业生产的基础,而机械信号处理与分析技术则是工业发展的一个重要基础技术。

随着各行各业的快速发展和各种各样的应用需求,信号分析和处理技术在信号处理速度、分辨能力、功能范围以及特殊处理等方面将会不断进步,新的处理激素将会不断涌现。

当前信号处理的发展主要表现在:1.新技术、新方法的出现;2.实时能力的进一步提高;3.高分辨率频谱分析方法的研究三方面。

信号处理的发展与应用是相辅相成的,工业方面应用的需求是信号处理发展的动力,而信号处理的发展反过来又拓展了它的应用领域。

机械信号的分析与处理方法从早期模拟系统向着数字化方向发展。

在几乎所有的机械工程领域中,它一直是一个重要的研究课题。

机械信号分析与处理技术正在不断发展,它已有可能帮助从事故障诊断和监测的专业技术人员从机器运行记录中提取和归纳机器运行的基本规律,并且充分利用当前的运行状态和对未来条件的了解与研究,综合分析和处理各种干扰因素可能造成的影响,预测机器在未来运行期间的状态和动态特性,为发展预知维修制度、延长大修期及科学地制定设备的更新和维护计划提供依据,从而更为有效地保证机器的稳定可靠运行,提高大型关键设备的利用率和效率。

机械信号处理是通过对测量信号进行某种加工变换,削弱机械信号中的无用的冗余信号,滤除混杂的噪声干扰,或者将信号变成便于识别的形式以便提取它的特征值等。

机械信号处理的基本流程图如图1.1所示。

图1.1机械信号处理的基本流程本文主要就第三、第四步骤展开讨论。

第2章机械信号的时域处理及其分析方法2.1 时域统计特征参数处理通过时域波形可以得到的一些特征参数,它们常用于对机械进行快速评价和简易诊断。

2.1.1有量纲的幅值参数有量纲的幅值参数包括方根幅值、平均幅值、均方幅值和峰值等。

若随机过程x(t) 符合平稳、各态历经条件且均值为零,设x为幅值,p(x)为概率密度函数,有量纲型幅值参数可定义为.1厂X r,l =2X,丨=1X rms,丨=2jXp,l T 旳式中:xr为方根均值,x为均值,Xrms为均方值,Xp为峰值由于有量纲型幅值参数来描述机械状态,不但与及其的状态有关,而且与机器的运动参数(如转速、载荷等)有关,因此直接用它们评价不同工况的机械无法得出统一的结论。

matlab时域宽度,MATLAB对信号的时域与频域分析

matlab时域宽度,MATLAB对信号的时域与频域分析

matlab时域宽度,MATLAB对信号的时域与频域分析%信号的时域和频域分析%信号的频域分析,计算⽅波的DFS(离散傅⾥叶变换),在60的时窗宽度上⽅波宽度分别为%5到12,并且画出x(n)和DFS(x(n))的杆状图L=5;N=60;k=[-N/2:N/2];xn=[zeros(1,(N-L+1)/2),ones(1,L),zeros(1,(N-L-1)/2)];n=[0:N-1];subplot(221)stem(n,xn);gridaxis([0 60 -0.3 1.3]);title('xn');p=0:N-1;WN=exp(-j*2*pi/N);nk=n'*p;WNnk=WN.^nk;Xk=xn*WNnk;magXk=abs([Xk(N/2+1:N) Xk(1:N/2+1)]);subplot(222)stem(k,magXk);gridaxis([-N/2 N/2 -0.5 5.5]);xlabel('k');ylabel('spectrum');title('DFS:L=5,N=60');L=12;N=60;k=-N/2:N/2;xn=[zeros(1,(N-L+1)/2),ones(1,L),zeros(1,(N-L-1)/2)];n=0:N-1;subplot(223)stem(n,xn);gridaxis([0 60 -0.3 1.3]);title('xn');p=[0:N-1];WN=exp(-j*2*pi/N);nk=n'*p;magXk=abs([Xk(N/2+1:N) Xk(1:N/2+1)]);subplot(224)stem(k,magXk);gridaxis([-N/2 N/2 -0.5 13]);xlabel('k');ylabel('spectrum');title('DFS:L=12,N=60');%频谱分析的若⼲问题%不同时窗正弦信号频谱的分析%1Hz的正弦波仅取10个周期及50个周期,都做4096点FFT,⽐较两者的频谱t=0:0.1:10; %取10或50(将10变成50即可)个周期的进⾏变换y1=sin(2*pi*t);Y1=fft(y1,4096); %4096点的快速傅⾥叶变换Y=fftshift(Y1);c=[0:2047]/409;plot(c,abs(Y(2049:4096)))axis([0 2 -5 60]);title('sin(t)周期 T=10')grid%加窗函数后的频谱特征分析%不加窗函数是正弦谱线与矩形窗频谱的卷积;加窗函数是正弦谱线于汉明窗频谱的卷积%后者的旁瓣⼩得多,但是主谱线宽⼀些t=0.1:0.1:20; %取20个周期y=sin(2*pi*t); %定义1Hz的正弦波w=hamming(200); %定义200长的汉明窗y=y.*w';Y1=fft(y,4096); %4096点的快速傅⾥叶变换Y=fftshift(Y1);c=[0:2047]./409.6;plot(c,abs(Y(2049:4096)))axis([0 3 -5 60]);title('sin(t) 加窗频谱');grid%CZT线性调频Z变换%应⽤CZT变换不在频率轴上均匀采样,对关⼼的部分加⼤采样密度,可以提⾼关⼼部分的f1=13.2;f2=13.41;f3=15;fs=60;n=0:N-1;t=2*pi*n/fs;e=fs/N;n1=0:e:(fs/2)-e;x=sin(f1*t)+sin(f2*t)+sin(f3*t); %三个不同频率正弦信号相加Y1=abs(fft(x)); %⼀般傅⾥叶频谱分析subplot(121)plot(n1,(Y1(1:N/2)));title('fft');grid;M=60; %CZT变换的长度f0=12.6;q=0.05;A=exp(j*2*pi*f0/fs); %CZT变换的起点W=exp(-j*2*pi*q/fs); %CZT变换的倾斜率Y3=czt(x,M,W,A); %CZT变换做频谱分析n2=f0:q:f0+(M-1)*q;subplot(122)plot(n2,abs(Y3));title('czt');grid%常见信号的频谱分析%基础波形 fft(快速傅⾥叶变换),fftshift(移动傅⾥叶变换的系数)n=2048;t=1:2048;y=zeros(1,n);y(1,[1020:1035])=1; %定义宽度为15的⽅波y1=[zeros(1,1000),ones(1,60),zeros(1,988)];%定义宽度为60的⽅波subplot(121)plot(t,y,'b',t,y1,'r')axis([850 1200 -0.2 1.3]);title('⽅形图');gridsubplot(122)Y2=fft(y,2048);Y3a=fftshift(Y3);w=-1024:1023;semilogy(w,abs(Y2a),'b',w,abs(Y3a),'r')axis([-500 500 -5 80]);title('⽅波频谱');axis([-250 250 1 100]);grid;%三⾓波n=2048;t=1:2048;y=[zeros(1,800),[1:500],zeros(1,748)]; %定义三⾓波subplot(121)plot(t,y)axis([0 2100 -30 560]);title('三⾓波');gridsubplot(122)Y1=fft(y,2048);Y=fftshift(Y1);c=-1024:1023;yw=log(abs(Y)+eps);plot(c,yw,'r')axis([-104 104 7 12]);title('三⾓波频谱');grid on;%冲击函数n=400;delta=4*pi/n;t=-2*pi:delta:2*pi;y=sinc(t); %定义冲击函数subplot(121)plot(t,y)axis([-7 7 -0.4 1.3]);title('sinc(t)');gridsubplot(122)c=-1024:1023;plot(c,abs(Y))axis([-500 500 -5 40]);title('sinc(t)的频谱');grid%调制信号%双边带调幅fs=1000;t=0:1/fs:.4;fc=250;y=0.4*cos(pi*20*t);x=modulate(y,fc,fs,'amdsb-tc'); %双边带调幅subplot(121)plot(t,x)legend('调幅双边带波形');gridsubplot(122)p=fft(x,1024);p1=fftshift(p);w=0:511;p2=abs(p1);plot(w,p2(1:512));grid;legend('调幅双边带频谱')axis([100 400 -10 100])%⽤直⽅图表⽰调频信号谱m=5; %⽤直⽅图表⽰调制指数为5的调频信号谱分析n=1:10;y1(n)=besseli(n,(i*m),1);z1=real(y1./(i.^(n)));z2=fliplr(z1);y0=besseli(0,(i*m),1);z0=real(y0);z=[z2 z0 z1];axis([-10 10 -.1 .8]);gridtitle('m=5')^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ %四种数字调制⽅法(ASK FSK PSK OQPSK)的频谱图%产⽣码元宽度为64的随机序列%m⽂件n=1:8192;m=1:128;x(n)=randint(1,8192,2);x=[x(n)]';y(n)=zeros(1,8192);z(m)=zeros(1,128);for n=1:8192form=1:128if n==64*m-63z(m)=x(n);if m==ceil(n/64)y([(64*m-63):(64*m)]')=z(m);endendendendn=1:8192;rm2=y(n);%ASK调制n=[1:(2^13)];x1=cos(n.*1e9*2*pi/4e9);run('rm2');X2=rm2;x2=X2';x=x1.*X2;b=.42+.5*cos(2*pi*(n-(2^12))/(2^13))+0.08*...cos(4*pi*(n-(2^12))/(2^13));X=b.*x;x3=[ones(1,64) zeros(1,8128)];y1=X(1:(2^13));y4=x1.*x3;Y1=fft(y1,(2^13));magY1=abs(Y1(1:1:(2^12)+1))/(200);u=(2*w1/pi)*1e9;figure(1)subplot(211)plot(u,magY1,'b',u,magY4,'r');gridtitle('ASKr');axis([4e8,1.6e9,0,1.1])X2=b.*X2;y2=X2(1:(2^13));Y2=fft(y2,(2^13));magY2=abs(Y2(1:1:(2^12)+1))/(200);k1=0:(2^12);w1=(2*pi/(2^13))*k1;u=(2*w1/pi)*1e9;Y3=fft(x3,(2^13));magY3=abs(Y3(1:1:(2^12)+1))/(40); subplot(212)semilogy(u,magY2,'b',u,magY3,'r');gridtitle('ASKr-modulation');axis([0 1.2e9 3e-4 3]);figure(2)subplot(211);plot(n,x2);axis([0 720 -0.2 1.2])subplot(212);plot(n,x);axis([0 720 -1.2 1.2])%FSK调制频谱分析n=[1:(2^13)];d=.13;run('rm2');x2=((2*rm2)-1);x5=cos(.5*n.*((1e8*2*pi/4e8)-d));x4=cos(.5*n.*((1e8*2*pi/4e8)+d));x=cos(.5*n.*((1e8*2*pi/4e8)+d*x2));b=.42+.5*cos(2*pi*(n-(2^12))/(2^13))+0.08*...cos(4*pi*(n-(2^12))/(2^13));X=b.*x;x3=[ones(1,64) zeros(1,8128)];y1=X(1:(2^13));y4=x4.*x3;y5=x5.*x3;Y1=fft(y1,(2^13));magY1=abs(Y1(1:1:(2^12)+1))/(200*2); Y4=fft(y4,(2^13));magY4=abs(Y4(1:1:(2^12)+1))/(70);Y5=fft(y5,(2^13));magY5=abs(Y5(1:1:(2^12)+1))/(70);subplot(211)plot(u,magY1,'b',u,magY4,'r',u,magY5,'g');gridtitle('FSKr');axis([1e8 1e9 0 .65]);X2=b.*x2;y2=X2(1:(2^13));Y2=fft(y2,(2^13));magY2=abs(Y2(1:1:(2^12)+1))/(50*6); k1=0:(2^12);w1=(2*pi/(2^13))*k1;u=(2*w1/pi)*1e9;Y3=fft(x3,(2^13));magY3=abs(Y3(1:1:(2^12)+1))/(30); subplot(212)plot(u,magY2,'b',u,magY3,'r');gridtitle('FSKr-modulation');axis([0 1.2e9 0 2.3])figure(2)subplot(211);plot(n,x2);axis([0 320 -1.2 1.2])subplot(212);plot(n,x);axis([0 320 -1.2 1.2])%PSK调制n=[1:(2^13)];x1=cos(n.*1e9*2*pi/4e9);run('rm2');x2=(2*rm2)-1;x=x1.*x2;b=.42+.5*cos(2*pi*(n-(2^12))/(2^13))+0.08*...cos(4*pi*(n-(2^12))/(2^13));X=b.*x;x3=[ones(1,64) zeros(1,8128)];y1=X(1:(2^13));y4=x1.*x3;Y1=fft(y1,(2^13));magY1=abs(Y1(1:1:(2^12)+1))/(300); Y4=fft(y4,(2^13));magY4=abs(Y4(1:1:(2^12)+1))/(30);k1=0:(2^12);w1=(2*pi/(2^13))*k1;u=(2*w1/pi)*1e9;figure(1)subplot(211)y2=X2(1:(2^13));Y2=fft(y2,(2^13));magY2=abs(Y2(1:1:(2^12)+1))/(300); k1=0:(2^12);w1=(2*pi/(2^13))*k1;u=(2*w1/pi)*1e9;Y3=fft(x3,(2^13));magY3=abs(Y3(1:1:(2^12)+1))/(30); subplot(212)plot(u,magY2,'b',u,magY3,'r');gridtitle('PSKr-modulation');axis([0 1.2e9 0 2.3])figure(2)subplot(211);plot(n,x2);title('PSKr');axis([0 1200 -1.2 1.2])subplot(212);plot(n,x);axis([100 275 -1.2 1.2])%谱估计 tfe 从输⼊输出中估计传递函数%估计传输函数h=fir1(30,.2,boxcar(31)); %使⽤矩形窗x=randn(16384,1); %输⼊信号y=filter(h,1,x); %输出信号z=tfe(x,y,1024,[],[],512);n=[1:length(z)];p=log10(abs(z)+eps);plot(n,p);grid%互功率谱密度 csd已知⼆信号求互功率谱密度h=fir1(30,.2,hamming(31)); %使⽤汉明窗h1=ones(1,10)/sqrt(10);r=randn(16384,1);x=filter(h1,1,r);y=filter(h,1,x);z=csd(x,y,1024,10000,triang(500),0,[]); %使⽤三⾓窗n=[1:length(z)];p=log10(abs(z)+eps);plot(n,p);gridx=randn(16384,1);y=filter(h,1,x);z=psd(y,1024,10000,kaiser(512,5),0,.95); %使⽤凯塞窗n=[1:length(z)];p=log10(abs(z)+eps);plot(n,p);grid。

如何利用Matlab技术进行频域分析

如何利用Matlab技术进行频域分析

如何利用Matlab技术进行频域分析MATLAB是一种功能强大的数学软件,被广泛应用于科学研究和工程领域。

其中的频域分析功能被广泛用于信号处理、图像处理、音频处理等领域。

本文将介绍如何利用MATLAB技术进行频域分析,以及常用的频域分析方法和技巧。

一、频域分析的基本概念在开始介绍如何利用MATLAB进行频域分析之前,我们先来了解一下频域分析的基本概念。

频域分析是指将信号从时域(时间域)转换到频域(频率域),以便更好地理解信号的频谱特性。

频域分析的基本原理是傅里叶变换。

傅里叶变换是将一个信号分解成一系列正弦函数和余弦函数的和,通过这种方式可以清晰地看到信号的频谱成分。

MATLAB中提供了多种傅里叶变换的函数,比如fft、ifft等,可以快速、方便地进行频域分析。

二、MATLAB中的频域分析函数MATLAB中提供了多种用于频域分析的函数,包括快速傅里叶变换(FFT)、离散傅里叶变换(DFT)、傅里叶逆变换(IFFT)等。

1. 快速傅里叶变换(FFT)快速傅里叶变换是一种将离散信号转换为频域表示的快速方法。

在MATLAB 中,可以使用fft函数进行快速傅里叶变换,如下所示:```MATLABX = fft(x);```其中,x为输入信号,X为傅里叶变换后的结果。

通过快速傅里叶变换,可以将信号从时域转换到频域,得到信号的频谱信息。

2. 离散傅里叶变换(DFT)离散傅里叶变换是一种将离散信号转换为频域表示的方法。

在MATLAB中,可以使用dft函数进行离散傅里叶变换,如下所示:```MATLABX = dft(x);```其中,x为输入信号,X为傅里叶变换后的结果。

3. 傅里叶逆变换(IFFT)傅里叶逆变换是一种将频域信号转换回时域信号的方法。

在MATLAB中,可以使用ifft函数进行傅里叶逆变换,如下所示:```MATLABx = ifft(X);```其中,X为输入的频域信号,x为傅里叶逆变换后的结果。

短时傅里叶变换 matlab程序

短时傅里叶变换 matlab程序

短时傅里叶变换 matlab程序短时傅里叶变换(Matlab程序)短时傅里叶变换(Short-Time Fourier Transform,STFT)是一种将信号从时域转换到频域的方法,它克服了傅里叶变换只能处理稳态信号的限制。

在实际应用中,我们经常需要对非稳态信号进行频谱分析,这时就可以使用短时傅里叶变换来获得信号的频谱信息。

在Matlab中,我们可以使用stft函数来实现短时傅里叶变换。

下面我们将介绍如何使用Matlab进行短时傅里叶变换,并给出一个简单的示例。

我们需要导入信号数据。

假设我们有一个包含音频信号的.wav文件,我们可以使用Matlab中的audioread函数将其读入到Matlab中。

假设读入的音频信号为x(n),其中n为时间序列。

```matlab[x, fs] = audioread('audio.wav');```其中x为音频信号的时间序列,fs为采样率。

接下来,我们需要选择窗函数和窗长。

窗函数的作用是将信号分为若干个窗口,并对每个窗口进行傅里叶变换。

常用的窗函数有矩形窗、汉明窗等。

窗长的选择需要权衡频率与时间分辨率,一般选择合适的窗长可以获得较好的频谱分辨率。

在Matlab中,我们可以使用hamming函数生成汉明窗。

假设窗长为N,我们可以使用如下代码生成汉明窗:```matlabN = 256;window = hamming(N);```然后,我们可以调用stft函数进行短时傅里叶变换。

stft函数的输入参数包括信号序列x、窗函数window和窗长N。

该函数将返回短时傅里叶变换后的频谱。

```matlab[S, f, t] = stft(x, window, N);```其中S为频谱矩阵,f为频率向量,t为时间向量。

我们可以使用imagesc函数将频谱可视化。

imagesc函数将频谱矩阵作为输入,将其映射为彩色图像。

```matlabimagesc(t, f, abs(S));axis xy;colorbar;xlabel('时间');ylabel('频率');```上述代码将绘制出短时傅里叶变换后的频谱图像,横轴表示时间,纵轴表示频率。

如何使用Matlab进行频域分析与滤波处理

如何使用Matlab进行频域分析与滤波处理

如何使用Matlab进行频域分析与滤波处理引言:MATLAB是一种功能强大的数值计算和数据分析工具,广泛应用于各个领域,包括信号处理。

频域分析和滤波处理是信号处理中重要的内容之一,本文将介绍如何使用MATLAB进行频域分析和滤波处理。

一、频域分析的基本概念频域分析是将信号从时域转换到频域的过程,通过分析信号在频率上的分布情况,可以获取信号的频谱信息。

常用的频域分析方法有傅里叶变换和功率谱分析。

1.1 傅里叶变换傅里叶变换是时域信号与频域信号之间的转换关系,将一个信号表示为振幅和相位的频谱形式。

在MATLAB中,可以使用fft函数进行傅里叶变换。

例如,对一个时域信号x进行傅里叶变换,可以使用以下代码:```matlabX = fft(x);```1.2 功率谱分析功率谱分析是对信号在频域上能量分布的分析,通过计算信号的功率谱密度,可以了解信号在不同频率下的能量分布情况。

在MATLAB中,可以使用pwelch函数进行功率谱分析。

例如,对一个时域信号x进行功率谱分析,可以使用以下代码:```matlab[P,F] = pwelch(x,[],[],[],Fs);```二、频域滤波的基本原理频域滤波是通过改变信号在频域上的能量分布情况,来实现对信号的滤波处理。

常用的频域滤波方法包括低通滤波、高通滤波、带通滤波和带阻滤波。

2.1 低通滤波低通滤波是用来去除信号中高频成分,只保留低频成分的滤波方法。

在MATLAB中,可以使用fir1函数设计一个低通滤波器,并使用filter函数进行滤波处理。

例如,设计一个截止频率为100Hz的低通滤波器对信号x进行滤波:```matlabFs = 1000; % 采样率Fc = 100; % 截止频率order = 50; % 滤波器阶数b = fir1(order,Fc/(Fs/2),'low');y = filter(b,1,x);```2.2 高通滤波高通滤波是用来去除信号中低频成分,只保留高频成分的滤波方法。

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

一.典型连续信号和离散信号的时域波形。

1.单边指数信号)()(t u Ae t y t α=;
2.单位冲激信号)()(0t t t y +=δ;
3.单位阶跃信号)()(0t t u t y +=;
4.矩形脉冲信号)]()([)(21t t u t t u A t y +-+⋅=;
5.正弦信号)()sin()(t u t A t y ω⋅=;
6.单位序列)()(0n n n y +=δ;
7.单位阶跃序列)()(0n n u n y +=;
8.单位矩形序列)()()(21n n u n n u n y +-+=;
9.指数序列)()(n u a A n y n ⋅=;
10.正弦序列)()sin()(n u n A n y ω⋅=。

单边指数信号
function zhishu(A,a,t1,t2,dt) t1=0
t2=10
A=1
A=-0.4
dt=0.01
t=t1:dt:t2;
y=A*exp(a*t);
plot(t,y)
axis([t1,t2,0,1.2])
xlabel('t')
ylabel('y(t)')
title(' 单边指数信号')
单位冲激信号
function chongji(t1,t2,t0)
dt=0.01;
t1=10;
t2=-5;
t=t1:dt:t2;
n=length(t);
x=zeros(1,n);
x(1,(-t0-t1)/dt+1)=1/dt; stairs(t,x);
axis([t1,t2,0,1.2/dt])
xlabel('t')
ylabel('y(t)')
title('单位冲激信号')
单位阶跃信号
function jieyao(t1,t2,t0)
t1=0;t2=10;t0=-4
t=t1:0.01:-t0;
tt=-t0:0.01:t2;
n=length(t);
nn=length(tt);
u=zeros(1,n);
uu=ones(1,nn);
plot(tt,uu)
hold on
plot(t,u)
plot([-t0,-t0],[0,1])
hold off
title('单位阶跃信号y(t)')
axis([t1,t2,-0.2,1.5])
矩形脉冲信号
function jxmcxh(A,width,T1,T2,dt,T0) A=3;width=2;
T1=-3;T2=3;
T0=0;dt=0.01
t=T1:dt:T2;
ft=A*rectpuls(t-T0,width);
plot(t,ft);
xlabel('t')
ylabel('y(t)')
title('矩形脉冲信号')
axis([t1,t2,0,4]);
正弦信号
function zhengxian(A,w,t1,t2,dt) A=5;w=0.5*pi;t1=0;t2=15;dt=0.01 t=t1:dt:t2;
f=A*sin(w*t);
plot(t,f)
title('正弦信号')
xlabel('t')
ylabel('y(t)')
单位序列
function dwxulie(k1,k2,k0) k1=-8;k2=12;k0=-2;
k=k1:k2;
n=length(k);
f=zeros(1,n);
f(1,-k0-k1+1)=1;
stem(k,f,'filled')
axis([k1,k2,0,1.5])
title('单位冲序列')
单位阶跃序列
function jyxulie(k1,k2,k0) k1=-10;k2=10;k0=4;
k=k1:-k0-1;
kk=-k0:k2;
n=length(k);
nn=length(kk);
u=zeros(1,n);
uu=ones(1,nn);
stem(kk,uu,'filled')
hold on
stem(k,u,'filled')
hold off
title('单位阶跃序列') axis([k1,k2,0,1.5])
单位矩形序列
function jyxulie(k1,k2,k0) k1=-8;k2=12;k0=1;
axis([k1,k2,0,1.5]);
k=k1:-k0-1;
kk=-k0:6;
kkk=7:k2
n=length(k);
nn=length(kk);
nnn=length(kkk);
u=zeros(1,n);
uu=ones(1,nn);
uuu=zeros(1,nnn);
stem(kk,uu,'filled')
hold on
stem(k,u,'filled')
stem(kkk,uuu,'filled') hold off
title('单位矩形序列')
指数序列
function dszsu(c,a,k1,k2)
%c: 指数序列的幅度
%a: 指数序列的底数
%k1: 绘制序列的起始序号%k2: 绘制序列的终止序号c=1;a=2;k1=-2;k2=10;
k=k1:k2;
x=c*(a.^k);
stem(k,x,'filled')
hold on
plot([k1,k2],[0,0])
hold off
title('指数序列')
xlabel('n')
ylabel('f(n)')
正弦序列
function zxxulie(A,w,k1,k2)
k1=-30;k2=30;a=2;w=0.25
k=k1:k2;
stem(k,A*sin(k*w),'filled')
title('离散时间正弦序列f(n)=Asin(wn)') xlabel('n')
ylabel('f(n)')。

相关文档
最新文档