用MATLAB分析离散信号的频谱与信号的采样
- 格式:doc
- 大小:460.50 KB
- 文档页数:7
实验2利用MATLAB分析信号频谱及系统的频率特性引言:在信号处理和通信领域中,频谱分析是一项非常重要的技术。
频谱分析可以帮助我们了解信号的频率特性,包括频率成分和幅度。
MATLAB是一款功能强大的数学软件,提供了多种工具和函数用于信号处理和频谱分析。
本实验旨在通过MATLAB分析信号频谱及系统的频率特性,深入理解信号处理和频域分析的原理和应用。
实验步骤:1.生成一个信号并绘制其时域波形。
首先,我们可以使用MATLAB提供的函数生成一个信号。
例如,我们可以生成一个用正弦函数表示的周期信号。
```matlabt=0:0.001:1;%时间范围为0到1秒,采样率为1000Hzf=10;%信号频率为10Hzx = sin(2*pi*f*t); % 生成正弦信号plot(t,x) % 绘制信号的时域波形图title('Time domain waveform') % 添加标题```2.计算信号的频谱并绘制频谱图。
使用MATLAB中的FFT函数可以计算信号的频谱。
FFT函数将信号从时域转换为频域。
```matlabFs=1000;%采样率为1000HzL = length(x); % 信号长度NFFT = 2^nextpow2(L); % FFT长度X = fft(x,NFFT)/L; % 计算X(k)f = Fs/2*linspace(0,1,NFFT/2+1); % 计算频率轴plot(f,2*abs(X(1:NFFT/2+1))) % 绘制频谱图title('Frequency spectrum') % 添加标题```3.使用MATLAB分析系统的频率特性。
MATLAB提供了Signal Processing Toolbox,其中包含了分析系统频率特性的函数和工具。
```matlabHd = designfilt('lowpassfir', 'FilterOrder', 6,'CutoffFrequency', 0.3, 'SampleRate', Fs); % 设计一个低通滤波器fvtool(Hd) % 显示滤波器的频率响应``````matlab[W,F] = freqz(Hd); % 计算滤波器的频率响应plot(F,abs(W)) % 绘制滤波器的振幅响应title('Frequency response of lowpass filter') % 添加标题```实验结果:运行上述代码后,我们可以得到如下结果:1.时域波形图2.频谱图3.滤波器频率响应讨论与结论:本实验通过MATLAB分析信号频谱及系统的频率特性,深入理解了信号处理和频域分析的原理和应用。
利用Matlab进行频谱分析的方法引言频谱分析是信号处理和电子工程领域中一项重要的技术,用于分析信号在频率域上的特征和频率成分。
在实际应用中,频谱分析广泛应用于音频处理、图像处理、通信系统等领域。
Matlab是一种强大的工具,可以提供许多功能用于频谱分析。
本文将介绍利用Matlab进行频谱分析的方法和一些常用的工具。
一、Matlab中的FFT函数Matlab中的FFT(快速傅里叶变换)函数是一种常用的频谱分析工具。
通过使用FFT函数,我们可以将时域信号转换为频域信号,并得到信号的频谱特征。
FFT 函数的使用方法如下:```Y = fft(X);```其中,X是输入信号,Y是输出的频域信号。
通过该函数,我们可以得到输入信号的幅度谱和相位谱。
二、频谱图的绘制在进行频谱分析时,频谱图是一种直观和易于理解的展示形式。
Matlab中可以使用plot函数绘制频谱图。
首先,我们需要获取频域信号的幅度谱。
然后,使用plot函数将频率与幅度谱进行绘制。
下面是一个示例:```X = 1:1000; % 时间序列Y = sin(2*pi*10*X) + sin(2*pi*50*X); % 输入信号Fs = 1000; % 采样率N = length(Y); % 信号长度Y_FFT = abs(fft(Y)); % 计算频域信号的幅度谱f = (0:N-1)*(Fs/N); % 频率坐标plot(f, Y_FFT);```通过上述代码,我们可以得到输入信号在频谱上的特征,并将其可视化为频谱图。
三、频谱分析的应用举例频谱分析可以应用于许多实际问题中。
下面将介绍两个常见的应用举例:语音信号分析和图像处理。
1. 语音信号分析语音信号分析是频谱分析的一个重要应用领域。
通过对语音信号进行频谱分析,我们可以探索声波的频率特性和信号的频率成分。
在Matlab中,可以使用wavread 函数读取音频文件,并进行频谱分析。
下面是一个示例:```[waveform, Fs] = wavread('speech.wav'); % 读取音频文件N = length(waveform); % 信号长度waveform_FFT = abs(fft(waveform)); % 计算频域信号的幅度谱f = (0:N-1)*(Fs/N); % 频率坐标plot(f, waveform_FFT);```通过上述代码,我们可以获取语音信号的频谱特征,并将其可视化为频谱图。
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的DFT及FFT频谱分析基于Matlab的DFT及FFT频谱分析一、引言频谱分析是信号处理中的重要任务之一,它可以揭示信号的频率特性和能量分布。
离散傅里叶变换(DFT)及快速傅里叶变换(FFT)是常用的频谱分析工具,广泛应用于许多领域。
本文将介绍通过Matlab进行DFT及FFT频谱分析的方法和步骤,并以实例详细说明。
二、DFT及FFT原理DFT是一种将时域信号转换为频域信号的离散变换方法。
它将信号分解成若干个正弦和余弦函数的叠加,得到频率和幅度信息。
FFT是一种高效的计算DFT的算法,它利用信号的对称性和周期性,将计算复杂度从O(N^2)降低到O(NlogN)。
FFT通过将信号分解成不同长度的子序列,递归地进行计算,最终得到频谱信息。
三、Matlab中的DFT及FFT函数在Matlab中,DFT及FFT可以通过内置函数进行计算。
其中,DFT使用函数fft,FFT使用函数fftshift。
fft函数可直接计算信号的频谱,fftshift函数对频谱进行频移操作,将低频移到频谱中心。
四、Matlab中DFT及FFT频谱分析步骤1. 读取信号数据首先,将待分析的信号数据读入到Matlab中。
可以使用内置函数load读取文本文件中的数据,或通过自定义函数生成模拟信号数据。
2. 时域分析通过plot函数将信号数据在时域进行绘制,以观察信号的波形。
可以设置合适的坐标轴范围和标签,使图像更加清晰。
3. 信号预处理针对不同的信号特点,可以进行预处理操作,例如去除直流分量、滤波等。
这些操作可提高信号的频谱分析效果。
4. 计算DFT/FFT使用fft函数计算信号数据的DFT/FFT,并得到频谱。
将信号数据作为输入参数,设置采样频率和点数,计算得到频谱数据。
5. 频域分析通过plot函数将频谱数据在频域进行绘制,观察信号的频率特性。
可以设置合适的坐标轴范围和标签,使图像更加清晰。
6. 结果解读根据频谱图像,分析信号的频率成分、幅度分布和峰值位置。
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对采样数据进行频谱分析1、采样数据导入Matlab采样数据的导入至少有三种方法。
第一就是手动将数据整理成Matlab支持的格式,这种方法仅适用于数据量比较小的采样。
第二种方法是使用Matlab的可视化交互操作,具体操作步骤为:File-->Import Data,然后在弹出的对话框中找到保存采样数据的文件,根据提示一步一步即可将数据导入。
这种方法适合于数据量较大,但又不是太大的数据。
据本人经验,当数据大于15万对之后,读入速度就会显著变慢,出现假死而失败。
第三种方法,使用文件读入命令。
数据文件读入命令有textread、fscanf、load等,如果采样数据保存在txt文件中,则推荐使用textread命令。
如[a,b]=textread('data.txt','%f%*f%f');这条命令将data.txt中保存的数据三个三个分组,将每组的第一个数据送给列向量a,第三个数送给列向量b,第二个数据丢弃。
命令类似于C语言,详细可查看其帮助文件。
文件读入命令录入采样数据可以处理任意大小的数据量,且录入速度相当快,一百多万的数据不到20秒即可录入。
强烈推荐!2、对采样数据进行频谱分析频谱分析自然要使用快速傅里叶变换FFT了,对应的命令即fft,简单使用方法为:Y=fft(b,N),其中b即是采样数据,N为fft数据采样个数。
一般不指定N,即简化为Y=fft(b)。
Y即为FFT变换后得到的结果,与b的元素数相等,为复数。
以频率为横坐标,Y数组每个元素的幅值为纵坐标,画图即得数据b的幅频特性;以频率为横坐标,Y数组每个元素的角度为纵坐标,画图即得数据b的相频特性。
典型频谱分析M程序举例如下:clcfs=100;t=[0:1/fs:100];N=length(t)-1;%减1使N为偶数%频率分辨率F=1/t=fs/Np=1.3*sin(0.48*2*pi*t)+2.1*sin(0.52*2*pi*t)+1.1*sin(0.53*2*pi*t)...+0.5*sin(1.8*2*pi*t)+0.9*s in(2.2*2*pi*t);%上面模拟对信号进行采样,得到采样数据p,下面对p进行频谱分析figure(1)plot(t,p);grid ontitle('信号p(t)');xlabel('t')ylabel('p')Y=fft(p);magY=abs(Y(1:1:N/2))*2/N;f=(0:N/2-1)'*fs/N;figure(2)%plot(f,magY);h=stem(f,magY,'fill','--');set(h,'MarkerEdgeColor','red','Marker','*')grid ontitle('频谱图(理想值:[0.48Hz,1.3]、[0.52Hz,2.1]、[0.53Hz,1.1]、[1.8Hz,0.5]、[2.2Hz,0.9])');xlabel('f(Hz)')ylabel('幅值')对于现实中的情况,采样频率fs一般都是由采样仪器决定的,即fs为一个给定的常数;另一方面,为了获得一定精度的频谱,对频率分辨率F有一个人为的规定,一般要求F<0.01,即采样时间ts>100秒;由采样时间ts和采样频率fs即可决定采样数据量,即采样总点数N=fs*ts。
matlab离散信号的频谱分析实验报告Matlab离散信号的频谱分析实验报告引言:信号频谱分析是信号处理领域中的重要内容,它可以帮助我们了解信号的频率特性和频谱分布。
在实际应用中,离散信号的频谱分析尤为重要,因为大部分现实世界中的信号都是以离散形式存在的。
本实验旨在使用Matlab对离散信号进行频谱分析,并探索不同信号的频谱特性。
一、实验准备在进行实验之前,我们需要准备一些基本的工具和知识。
首先,我们需要安装Matlab软件,并熟悉其基本操作。
其次,我们需要了解离散信号的基本概念和性质,例如采样率、离散傅里叶变换等。
最后,我们需要准备一些实验数据,可以是自己生成的信号,也可以是从外部设备中获取的信号。
二、实验步骤1.生成离散信号首先,我们可以使用Matlab的随机函数生成一个离散信号。
例如,我们可以使用randn函数生成一个均值为0、方差为1的高斯白噪声信号。
代码如下:```matlabN = 1000; % 信号长度x = randn(N, 1); % 生成高斯白噪声信号```2.计算信号的频谱接下来,我们可以使用Matlab的fft函数对信号进行离散傅里叶变换,从而得到信号的频谱。
代码如下:```matlabX = fft(x); % 对信号进行离散傅里叶变换```3.绘制频谱图最后,我们可以使用Matlab的plot函数将信号的频谱绘制出来,以便更直观地观察信号的频谱特性。
代码如下:```matlabf = (0:N-1)*(1/N); % 构建频率轴plot(f, abs(X)); % 绘制频谱图xlabel('Frequency'); % 设置横轴标签ylabel('Magnitude'); % 设置纵轴标签title('Spectrum Analysis'); % 设置图标题```三、实验结果通过以上步骤,我们可以得到离散信号的频谱图。
如何使用Matlab技术进行频谱分析一、引言频谱分析是一种广泛应用于信号处理领域的重要技术,可以帮助我们了解信号的频率成分和能量分布情况。
Matlab作为一种强大的科学计算软件,提供了丰富的函数和工具包,能够方便快捷地进行频谱分析。
本文将介绍如何使用Matlab技术进行频谱分析,从数据处理到结果展示,将为读者提供全面的指导。
二、数据准备与导入首先,我们需要准备一组待分析的信号数据。
这可以是一个来自传感器的实时采集数据,也可以是从文件中读取的离线数据。
Matlab提供了多种数据导入函数,例如`csvread`函数可以导入CSV格式的数据文件,`load`函数可以导入Matlab的二进制数据文件。
三、时域分析在进行频谱分析之前,我们通常需要先对信号进行必要的时域分析。
这包括对信号进行采样、滤波、降噪等处理,以便获得更准确的频谱分析结果。
1. 采样:如果信号是以连续时间形式存在,我们需要首先对其进行采样。
Matlab提供了`resample`函数可以进行信号的采样,可以根据需要进行上采样或下采样操作。
2. 滤波:滤波是常用的信号处理方法之一,可以去除信号中的噪声以及不感兴趣的频率成分。
Matlab提供了多种滤波函数,例如`lowpass`函数可以进行低通滤波,`bandpass`函数可以进行带通滤波。
3. 降噪:在一些实际应用场景中,信号可能受到各种干扰和噪声的影响。
在进行频谱分析之前,我们需要对信号进行降噪处理,以获得准确的频谱结果。
Matlab提供了`denoise`函数可以进行信号的降噪处理,例如小波降噪、基于稀疏表示的降噪等。
四、频谱分析方法频谱分析是指对信号的频率成分进行分析和研究的过程。
常见的频谱分析方法有傅里叶变换、功率谱估计、自相关函数等。
1. 傅里叶变换:傅里叶变换是频谱分析的基础方法之一,可以将信号从时间域转换到频域。
Matlab提供了`fft`函数用于计算离散傅里叶变换(DFT),可以得到信号的频谱图。
基于matlab信号分析与处理信号分析与处理是一门重要的学科,它涉及到许多领域,如通信、音频处理、图象处理等。
在信号分析与处理中,Matlab是一种常用的工具,它提供了丰富的函数和工具箱,可以匡助我们进行信号的分析和处理。
首先,我们需要了解信号的基本概念。
信号可以分为连续信号和离散信号两种类型。
连续信号是在时间上是连续变化的,而离散信号则是在时间上是离散的。
在Matlab中,我们可以使用不同的函数来表示和处理这两种类型的信号。
对于连续信号,我们可以使用Matlab中的plot函数来绘制信号的图象。
例如,我们可以使用以下代码来绘制一个正弦信号:```matlabt = 0:0.01:2*pi; % 时间范围为0到2πx = sin(t); % 正弦信号plot(t, x); % 绘制信号图象xlabel('时间'); % 设置x轴标签ylabel('幅度'); % 设置y轴标签title('正弦信号'); % 设置图象标题```对于离散信号,我们可以使用Matlab中的stem函数来绘制信号的图象。
例如,我们可以使用以下代码来绘制一个离散的方波信号:```matlabn = 0:10; % 时间范围为0到10x = square(n); % 方波信号stem(n, x); % 绘制信号图象xlabel('时间'); % 设置x轴标签ylabel('幅度'); % 设置y轴标签title('方波信号'); % 设置图象标题```除了绘制信号的图象,我们还可以对信号进行一系列的分析和处理。
例如,我们可以使用Matlab中的fft函数来进行信号的频谱分析。
以下是一个示例代码:```matlabFs = 1000; % 采样频率为1000Hzt = 0:1/Fs:1; % 时间范围为0到1秒x = sin(2*pi*50*t) + sin(2*pi*120*t); % 两个正弦信号的叠加y = fft(x); % 对信号进行傅里叶变换f = (0:length(y)-1)*Fs/length(y); % 计算频率范围plot(f, abs(y)); % 绘制频谱图象xlabel('频率'); % 设置x轴标签ylabel('幅度'); % 设置y轴标签title('频谱分析'); % 设置图象标题```除了频谱分析,我们还可以对信号进行滤波、降噪、特征提取等处理。
利用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 分析离散信号的频谱与信号的采样
一、 实验目的
1、了解离散时间信号频谱的分析方法;
2、了解相关函数的调用格式及作用;
3、掌握用MATLAB 分析信号的采样过程与原理。
二、涉及的MATLAB 函数
1、fft 函数:可用来计算离散周期信号频谱 X[m] = fft(x)
x :是离散周期信号0~N -1 一个周期的序列值 X[m] 是离散周期信号的频谱
函数fft 还可用来计算离散非周期信号频谱、连续周期信号和连续非周期信号的频谱。
2、rectpuls 函数:表示矩形脉冲信号 y=rectpuls(t,width)
产生宽度为0.4,幅度为1,以零点对称的矩形波1P (t)
三、实验内容
1、用MATLAB 实现下图所示周期矩形序列的频谱
x[k]的频谱函数为:X[m]=
)
(
sin )]
12([
sin N
m
M N
m
ππ+
k
%Program 6_1计算离散周期矩形序列的频谱
N=32; M=4; %定义周期矩形序列的参数x=[ones(1,M+1),zeros(1,N-2*M-1),ones(1,M)]; %产生周期矩形序列
X=fft(x); %计算DFS系数
m=0:N-1;
stem(m,real(X)); %画出频谱X的实部
title('X[m]的实部');xlabel('m')
figure;
stem(m,imag(X)); %画出频谱X的虚部title('X[m]的虚部');xlabel('m');
xr=ifft(X);
figure;
stem(m,real(xr));
xlabel('k');
title('重建的x[k]');
仿真的结果如下:
2、用MATLAB 实现脉冲采样抽样函数的过程。
)()()(t p t S t f a ⋅=,要求:求出抽样函数
Sa(t)、矩形脉冲
波P(t)与抽样结果f(t)的波形。
其中)(t p 的波形如下:
-0.20.20.40.81 1.4
-0.4-0.8-1-1.4t
程序如下:
t=-3*pi:0.01:3*pi; % 定义时间范围向量 s=sinc(t/pi); % 计算Sa(t)函数 subplot(3,1,1),plot(t,s); % 绘制Sa(t)的波形 title('抽样函数Sa(t)');
p=zeros(1,length(t)); % 预定义p(t)的初始值为0 for i=16:-1:-16
p=p+rectpuls(t+0.6*i,0.4); % 利用矩形脉冲函数rectpuls 的平移来产生宽
度为0.4,幅度为1的矩形波p(t)
end
subplot(3,1,2),stairs(t,p); % 用阶梯图形表示矩形脉冲 title('矩形脉冲'); axis([-10 10 0 1.2]); f=s.*p;
subplot(3,1,3),plot(t,f); % 绘制f(t)=Sa(t)*p(t)的波形 xlabel('t'); ylabel('Sa(t)*p(t)'); 仿真结果如下:
3、用MATLAB 分析如图所示三角波信号的采样过程。
低通
π
ω4=c )
(t f )
(1t y )
(t T δ)
(t y
f(t)0-0.50.5
1
……
……
-Ts
Ts
0Ts=0.2s
)
(t T δ|
|21)(t t f -=
要求:
(1)、 求)(t f 的频谱图)(ωF (2)、求)(1t y 的频谱图)(1ωY (3)、求)(t y 的频谱图)(ωY
)4(21))
21
cos(1(4)(22
ωω
ωωa S F =-= Matlab 程序如下:
syms t w f; % 定义符号变量 f=(1-2*abs(t))*exp(-j*w*t); % 计算被积函数 F=int(f,t,-1/2,1/2); % 计算傅立叶系数F(w) F=simple(F);F % 化简
subplot(3,1,1), % 绘制三角波的幅频特性曲线F(w)
low=-26*pi;high=-low; % 设置w 的上界和下界 ezplot(abs(F),[low:0.01:high]); axis([low high -0.1 0.5]); xlabel(''); title('三角波的频谱');
subplot(3,1,2), % 绘制经过截止频率为4*pi 低通滤波器后的频谱Y1(w) ezplot(abs(F),[-4*pi:0.01:4*pi]); axis([low high -0.1 0.5]); xlabel('');
title('低通滤波后的频谱');% 采样信号的频谱是原信号频谱的周期延拓,延拓周
期为(2*pi)/Ts
% 利用频移特性F[f(t)*exp(-j*w0*t)]=F(w+w0)来实现
subplot(3,1,3); % 绘制采样后的频谱Y(w) Ts=0.2; % 采样信号的周期 w0=(2*pi)/Ts; % 延拓周期10*pi for k=-2:2
ft=f*exp(-j*w0*k*t);
FT=int(ft,t,-1/2,1/2);
ezplot((1/Ts)*abs(FT),[(-4*pi-k*w0):0.01:(4*pi-k*w0)]);
hold on
end
axis([low high -0.1 2.5]); xlabel('');
title('采样后的频谱');。