用MATLAB分析离散信号的频谱与信号的采样

合集下载

实验2利用MATLAB分析信号频谱及系统的频率特性

实验2利用MATLAB分析信号频谱及系统的频率特性

实验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是一种强大的工具,可以提供许多功能用于频谱分析。

本文将介绍利用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);```通过上述代码,我们可以获取语音信号的频谱特征,并将其可视化为频谱图。

实验三用FFT对信号进行频谱分析和MATLAB程序

实验三用FFT对信号进行频谱分析和MATLAB程序

实验三用FFT对信号进行频谱分析和MATLAB程序实验三中使用FFT对信号进行频谱分析的目的是通过将时域信号转换为频域信号,来获取信号的频谱信息。

MATLAB提供了方便易用的函数来实现FFT。

首先,我们需要了解FFT的原理。

FFT(快速傅里叶变换)是一种快速计算离散傅里叶变换(DFT)的算法,用于将离散的时间域信号转换为连续的频域信号。

FFT算法的主要思想是将问题划分为多个规模较小的子问题,并利用DFT的对称性质进行递归计算。

FFT算法能够帮助我们高效地进行频谱分析。

下面是一个使用MATLAB进行频谱分析的示例程序:```matlab%生成一个10秒钟的正弦波信号,频率为1Hz,采样率为100Hzfs = 100; % 采样率t = 0:1/fs:10-1/fs; % 时间范围f=1;%正弦波频率x = sin(2*pi*f*t);%进行FFT计算N = length(x); % 信号长度X = fft(x); % FFT计算magX = abs(X)/N; % 幅值谱frequencies = (0:N-1)*(fs/N); % 频率范围%绘制频谱图figure;plot(frequencies, magX);xlabel('频率(Hz)');ylabel('振幅');title('信号频谱');```上述代码生成了一个10秒钟的正弦波信号,频率为1 Hz,采样率为100 Hz。

通过调用MATLAB的fft函数计算信号的FFT,然后计算每个频率分量的幅值谱,并绘制出信号频谱图。

在频谱图中,横轴表示频率,纵轴表示振幅。

该实验需要注意以下几点:1.信号的采样率要与信号中最高频率成一定比例,以避免采样率不足导致的伪频谱。

2.FFT计算结果是一个复数数组,我们一般只关注其幅值谱。

3.频率范围是0到采样率之间的频率。

实验三的报告可以包含以下内容:1.实验目的和背景介绍。

matlab求连续信号的频谱函数和离散信号频谱函数的方法

matlab求连续信号的频谱函数和离散信号频谱函数的方法

matlab求连续信号的频谱函数和离散信号频谱函数的方法Matlab提供了多种方法来求解连续信号和离散信号的频谱函数。

在本文中,我们将分步骤介绍这些方法。

一、连续信号频谱函数的方法连续信号的频谱函数是通过对连续信号进行傅里叶变换得到的。

而在Matlab中,傅里叶变换可以通过fft函数实现。

下面是求解连续信号频谱函数的步骤:1. 定义连续信号首先,我们需要定义一个连续信号,用一个函数来表示。

例如,我们定义一个简单的三角波信号:matlabt = linspace(0, 1, 1000); 定义时间范围x = sawtooth(2*pi*5*t); 定义三角波信号2. 进行傅里叶变换接下来,我们使用fft函数对连续信号进行傅里叶变换。

傅里叶变换将信号从时域转换到频域。

matlabX = fft(x);3. 计算频谱函数通过进行傅里叶变换,我们得到了频谱函数X。

然而,频谱函数X是一个复数数组,其中包含了信号的幅度和相位信息。

为了获得真正的频谱,我们需要计算幅度谱。

matlabP2 = abs(X/length(x));P1 = P2(1:length(x)/2+1);P1(2:end-1) = 2*P1(2:end-1);在上述代码中,我们将频谱函数除以信号长度,然后计算幅度,并使用对称性将频谱函数变换为正频率部分。

最后,我们将频谱函数的第一个和最后一个值乘以2。

4. 绘制频谱图最后,我们可以使用plot函数将频谱函数可视化。

matlabfs = 1000; 采样频率f = fs*(0:(length(x)/2))/length(x);plot(f,P1)xlabel('Frequency (Hz)')ylabel('Amplitude')以上步骤可以用于求解任何连续信号的频谱函数。

二、离散信号频谱函数的方法离散信号的频谱函数可以通过对信号进行离散傅里叶变换(Discrete Fourier Transform,DFT)来获得。

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对采样数据进行频谱分析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离散信号的频谱分析实验报告引言:信号频谱分析是信号处理领域中的重要内容,它可以帮助我们了解信号的频率特性和频谱分布。

在实际应用中,离散信号的频谱分析尤为重要,因为大部分现实世界中的信号都是以离散形式存在的。

本实验旨在使用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对信号做频谱分析1.⾸先学习下傅⾥叶变换的东西。

学⾼数的时候⽼师只是将傅⾥叶变换简单的说了下,并没有深⼊的讲解。

⽽现在看来,傅⾥叶变换似乎是信号处理的⽅⾯的重点只是呢,现在就先学习学习傅⾥叶变换吧。

上⾯这幅图在知乎⼀个很著名的关于傅⾥叶变换的⽂章中的核⼼插图,我觉得这幅图很直观的就说明了傅⾥叶变换的实质。

时域上的东西直观的反应到了频域上了,很完美的结合到了⼀起,233333. ⽆数正弦波叠加,震荡的叠加的最后结果竟然是⽅波,同理,任何周期性函数竟然都能拆分为傅⾥叶级数的形式,这样的简介与优雅,真令⼈折服。

2.MATLAB对信号做频谱分析代码:(1)对 f1 = Sa(2t)的频谱分析1 clear;clc;2 hold on;3 R=0.05;4 t=-1.2:R:1.2;5 t1 = 2*t;6 f1=sinc(t1); %Sa函数7 subplot(1,2,1),plot(t,f1)8 xlabel('t'),ylabel('f1')9 axis([-2,2,-0.3,1.2]); %写出Sa函数上下限1011 N=1000;12 k=-N:N;13 W1=40;14 W=k*W1/N;15 F=f1*exp(-j*t'*W)*R; %f1的傅⾥叶变换16 F=real(F); %取F的实部17 subplot(1,2,2),plot(W,F)18 xlabel('W'),ylabel('F(jw)')View Code结果如下图:(2)对 f2 = u(t+2) - u(t-2)的频谱分析1 R=0.05;2 t=-3:R:3;3 f2=(t>=-2)-(t>=2);4 subplot(1,2,1),plot(t,f2)5 grid on;6 xlabel('t'),ylabel('f2')7 axis([-3,3,-0.5,1.5]);89 N=1000;k=-N:N;10 W1=40;11 W=k*W1/N;12 F=f2*exp(-j*t'*W)*R;13 F=real(F);14 subplot(1,2,2),plot(W,F)15 grid on;16 xlabel('W'),ylabel('F(jw)')View Code结果如下图:(3)对f3 = t[u(t+1) - u(t-1) ]的频谱分析1 R=0.05;2 h=0.001;3 t=-1.2:R:1.2;4 y=t.*(t>=-1)-t.*(t>=1);5 f4=diff(y)/h;6 subplot(1,2,1),plot(t,y)7 xlabel('t'),ylabel('y')8 axis([-1.2,1.2,-1.2,1.2]);910 N=1000;11 k=-N:N;12 W1=40;13 W=k*W1/N;14 F=y*exp(-j*t'*W)*R;15 F=real(F);16 subplot(1,2,2),plot(W,F)17 xlabel('W'),ylabel('F(jw)')18 axis([-40,40,-0.06,0.06]);View Code结果如下图:(4)对正弦波做FFT频谱分析1 %*************************************************************************%2 % FFT实践及频谱分析 %3 %*************************************************************************%4 %***************正弦波****************%5 fs=100;%设定采样频率6 N=128;7 n=0:N-1;8 t=n/fs;9 f0=10;%设定正弦信号频率10 %⽣成正弦信号11 x=sin(2*pi*f0*t);12 figure(1);13 subplot(231);14 plot(t,x);%作正弦信号的时域波形15 xlabel('t');16 ylabel('y');17 title('正弦信号y=2*pi*10t时域波形');18 grid;1920 %进⾏FFT变换并做频谱图21 y=fft(x,N);%进⾏fft变换22 mag=abs(y);%求幅值23 f=(0:length(y)-1)'*fs/length(y);%进⾏对应的频率转换24 figure(1);25 subplot(232);26 plot(f,mag);%做频谱图27 axis([0,100,0,80]);28 xlabel('频率(Hz)');29 ylabel('幅值');30 title('正弦信号y=2*pi*10t幅频谱图N=128');31 grid;3233 %求均⽅根谱34 sq=abs(y);35 figure(1);36 subplot(233);37 plot(f,sq);38 xlabel('频率(Hz)');39 ylabel('均⽅根谱');40 title('正弦信号y=2*pi*10t均⽅根谱');41 grid;4243 %求功率谱44 power=sq.^2;45 figure(1);46 subplot(234);47 plot(f,power);48 xlabel('频率(Hz)');49 ylabel('功率谱');50 title('正弦信号y=2*pi*10t功率谱');51 grid;5253 %求对数谱54 ln=log(sq);55 figure(1);56 subplot(235);57 plot(f,ln);58 xlabel('频率(Hz)');59 ylabel('对数谱');60 title('正弦信号y=2*pi*10t对数谱');61 grid;6263 %⽤IFFT恢复原始信号64 xifft=ifft(y);65 magx=real(xifft);66 ti=[0:length(xifft)-1]/fs;67 figure(1);68 subplot(236);69 plot(ti,magx);70 xlabel('t');71 ylabel('y');72 title('通过IFFT转换的正弦信号波形');73 grid;View Code执⾏结果如下图:(5)对矩形波做FFT频谱分析1 %****************2.矩形波****************%2 fs=10;%设定采样频率3 t=-5:0.1:5;4 x=rectpuls(t,2);5 x=x(1:99);6 figure(1);7 subplot(231); plot(t(1:99),x);%作矩形波的时域波形8 xlabel('t');9 ylabel('y');10 title('矩形波时域波形');11 grid;1213 %进⾏FFT变换并做频谱图14 y=fft(x);%进⾏fft变换15 mag=abs(y);%求幅值16 f=(0:length(y)-1)'*fs/length(y);%进⾏对应的频率转换17 figure(1);18 subplot(232);19 plot(f,mag);%做频谱图20 xlabel('频率(Hz)');21 ylabel('幅值');22 title('矩形波幅频谱图');23 grid;2425 %求均⽅根谱26 sq=abs(y);27 figure(1);28 subplot(233);29 plot(f,sq);30 xlabel('频率(Hz)');31 ylabel('均⽅根谱');32 title('矩形波均⽅根谱');33 grid;3435 %求功率谱36 power=sq.^2;37 figure(1);38 subplot(234);39 plot(f,power);40 xlabel('频率(Hz)');41 ylabel('功率谱');42 title('矩形波功率谱');43 grid;4445 %求对数谱46 ln=log(sq);47 figure(1);48 subplot(235);49 plot(f,ln);50 xlabel('频率(Hz)');51 ylabel('对数谱');52 title('矩形波对数谱');53 grid;5455 %⽤IFFT恢复原始信号56 xifft=ifft(y);57 magx=real(xifft);58 ti=[0:length(xifft)-1]/fs;59 figure(1);60 subplot(236);61 plot(ti,magx);62 xlabel('t');63 ylabel('y');64 title('通过IFFT转换的矩形波波形');65 grid;View Code执⾏结果如下图:(6)对⽩噪声做频谱分析1 %****************3.⽩噪声****************%2 fs=10;%设定采样频率3 t=-5:0.1:5;4 x=zeros(1,100);5 x(50)=100000;6 figure(1);7 subplot(231);8 plot(t(1:100),x);%作⽩噪声的时域波形9 xlabel('t');10 ylabel('y');11 title('⽩噪声时域波形');12 grid;1314 %进⾏FFT变换并做频谱图15 y=fft(x); %进⾏fft变换16 mag=abs(y);%求幅值17 f=(0:length(y)-1)'*fs/length(y);%进⾏对应的频率转换18 figure(1);19 subplot(232);20 plot(f,mag);%做频谱图21 xlabel('频率(Hz)');22 ylabel('幅值');23 title('⽩噪声幅频谱图');24 grid;2526 %求均⽅根谱27 sq=abs(y);28 figure(1);29 subplot(233);30 plot(f,sq);31 xlabel('频率(Hz)');32 ylabel('均⽅根谱');33 title('⽩噪声均⽅根谱');34 grid;3536 %求功率谱37 power=sq.^2;38 figure(1);39 subplot(234);40 plot(f,power);41 xlabel('频率(Hz)');42 ylabel('功率谱');43 title('⽩噪声功率谱');44 grid;4546 %求对数谱47 ln=log(sq);48 figure(1);49 subplot(235);50 plot(f,ln);51 xlabel('频率(Hz)');52 ylabel('对数谱');53 title('⽩噪声对数谱');54 grid;5556 %⽤IFFT恢复原始信号57 xifft=ifft(y);58 magx=real(xifft);59 ti=[0:length(xifft)-1]/fs;60 figure(1);61 subplot(236);62 plot(ti,magx);63 xlabel('t');64 ylabel('y');65 title('通过IFFT转换的⽩噪声波形');66 grid;View Code执⾏结果如下:。

MATLAB离散信号的产生和频谱分析实验报告

MATLAB离散信号的产生和频谱分析实验报告

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 运算。

信号采样实验报告

信号采样实验报告

一、实验目的1. 理解信号采样的基本原理,掌握信号采样过程。

2. 熟悉采样定理,验证信号采样过程中的频谱混叠现象。

3. 掌握信号重构方法,通过采样信号恢复原信号。

二、实验原理信号采样是将连续时间信号转换为离散时间信号的过程。

根据香农采样定理,为了无失真地恢复原始信号,采样频率必须大于信号中最高频率成分的两倍。

三、实验内容1. 生成模拟信号在MATLAB中,生成一个正弦信号作为实验对象:```MATLABt = 0:0.01:1; % 生成时间序列,从0到1,步长为0.01f = 5; % 信号频率为5Hzx = sin(2pift); % 生成正弦信号```2. 采样信号对模拟信号进行采样,设置采样频率为50Hz:```MATLABfs = 50; % 采样频率n = 0:1/fs:1; % 采样点数x_sample = x(n); % 采样信号```3. 频谱分析分别对原始信号和采样信号进行频谱分析,比较两者的频谱特征:```MATLABfigure;subplot(2,1,1);plot(frequency, abs(X)); % 绘制原始信号的频谱title('Original Signal Spectrum');subplot(2,1,2);plot(frequency, abs(X_sample)); % 绘制采样信号的频谱title('Sampled Signal Spectrum');```4. 频谱混叠观察采样信号的频谱,分析是否存在频谱混叠现象。

如果存在混叠,可以通过提高采样频率或滤波来消除混叠。

5. 信号重构利用MATLAB中的插值函数对采样信号进行重构,恢复原信号:```MATLABx_reconstructed = interp1(n, x_sample, t, 'linear'); % 线性插值```6. 重构信号分析观察重构信号与原始信号的波形,分析重构效果。

信号分析实验报告总结

信号分析实验报告总结

一、实验目的本次信号分析实验旨在通过MATLAB软件,对连续信号进行采样、重建、频谱分析等操作,加深对信号处理基本理论和方法的理解,掌握信号的时域、频域分析技巧,并学会使用MATLAB进行信号处理实验。

二、实验内容1. 连续信号采样与重建(1)实验内容:以正弦信号为例,验证采样定理,分析采样频率与信号恢复质量的关系。

(2)实验步骤:a. 定义连续信号y(t) = sin(2π×24t) + sin(2π×20t),包含12Hz和20Hz 两个等幅度分量。

b. 分别以1/4、1/2、1/3Nyquist频率对信号进行采样,其中Nyquist频率为最高信号频率的两倍。

c. 利用MATLAB的插值函数对采样信号进行重建,比较不同采样频率下的信号恢复质量。

(3)实验结果与分析:a. 当采样频率低于Nyquist频率时,重建信号出现失真,频率混叠现象明显。

b. 当采样频率等于Nyquist频率时,重建信号基本恢复原信号,失真较小。

c. 当采样频率高于Nyquist频率时,重建信号质量进一步提高,失真更小。

2. 离散信号频谱分析(1)实验内容:分析不同加窗长度对信号频谱的影响,理解频率分辨率的概念。

(2)实验步骤:a. 定义离散信号x[n],计算其频谱。

b. 分别采用16、60、120点窗口进行信号截取,计算其频谱。

c. 比较不同窗口长度对频谱的影响。

(3)实验结果与分析:a. 随着窗口长度的增加,频谱分辨率降低,频率混叠现象减弱。

b. 频率分辨率与窗口长度成反比,窗口长度越长,频率分辨率越高。

3. 调频信号分析(1)实验内容:搭建调频通信系统,分析调频信号,验证调频解调原理。

(2)实验步骤:a. 搭建调频通信系统,包括信号源、调制器、解调器等模块。

b. 产生调频信号,并对其进行解调。

c. 分析调频信号的频谱,验证调频解调原理。

(3)实验结果与分析:a. 调频信号具有线性调频特性,其频谱为连续谱。

MATLAB信号频谱分析

MATLAB信号频谱分析

MATLAB信号频谱分析MATLAB是一种功能强大的数学软件,它不仅提供了丰富的数学工具箱和函数,还具备信号频谱分析的功能。

信号频谱分析是对信号进行频域分析,用以了解信号的频率特性和谱线分布,对信号处理和系统建模具有重要意义。

信号频谱分析主要有两个方面的内容,频谱估计和谱线展示。

频谱估计是通过数学方法估计信号的频谱特性,常用的方法包括傅里叶变换、快速傅里叶变换、功率谱密度估计等。

谱线展示是将信号的频谱特性可视化展示出来,常用的方法包括画出频谱图、频谱瀑布图等。

下面我们来详细介绍MATLAB中信号频谱分析的相关函数和方法。

1. 傅里叶变换(Fourier Transform):MATLAB中的fft函数可以对信号进行离散傅里叶变换(Discrete Fourier Transform),fft函数的使用方法为Y = fft(X)或者Y = fft(X,n),其中X为输入信号,n为傅里叶变换的点数,默认为X的长度。

傅里叶变换将信号从时域转换到频域,得到信号的复数频谱。

2. 快速傅里叶变换(Fast Fourier Transform, FFT):FFT是一种快速计算傅里叶变换的算法,MATLAB中的fft函数就是基于FFT算法实现的,具有高效和精确的特点。

对于长度为N的信号,FFT的计算复杂度为O(NlogN),而传统的DFT计算复杂度为O(N^2)。

3. 频谱瀑布图(Spectrogram):MATLAB中的spectrogram函数可以绘制信号的频谱瀑布图,用以展示信号的频谱变化随时间的变化情况。

spectrogram函数的使用方法为spectrogram(x,window,noverlap,nfft,fs),其中x为输入信号,window为窗函数,noverlap为重叠窗口数,nfft为傅里叶变换的点数,fs为信号的采样率。

4. 功率谱密度估计(Power Spectral Density Estimation):MATLAB中的pwelch函数可以对信号进行功率谱密度估计,得到信号在不同频率上的功率分布情况。

应用MATLAB对信号进行频谱分析

应用MATLAB对信号进行频谱分析

应用MATLAB对信号进行频谱分析信号的频谱分析是一种重要的信号处理方法,可以帮助我们深入了解信号的频域特性。

MATLAB作为一种强大的科学计算软件,提供了丰富的工具和函数来进行频谱分析。

在MATLAB中,频谱分析可以使用多种方法来实现,包括离散傅立叶变换(DFT)、快速傅立叶变换(FFT)等。

下面将介绍几种常用的频谱分析方法及其在MATLAB中的应用。

1.离散傅立叶变换(DFT)离散傅立叶变换是将信号从时域转换到频域的一种方法。

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

例如,假设我们有一个长度为N的信号x,可以通过以下代码进行频谱分析:```matlabN = length(x);X = fft(x);fs = 1000; % 采样频率f = fs*(0:(N/2))/N;P = abs(X/N).^2;plot(f,P(1:N/2+1))```以上代码将信号x进行离散傅立叶变换,并计算频谱的幅度谱(P),然后根据采样频率和信号长度计算频率轴。

最后使用plot函数绘制频谱图。

2.快速傅立叶变换(FFT)快速傅立叶变换是一种高效的离散傅立叶变换算法,可以在较短的时间内计算出频谱。

在MATLAB中,fft函数实际上就是使用了快速傅立叶变换算法。

以下是使用FFT进行频谱分析的示例代码:```matlabN = length(x);X = fft(x);fs = 1000; % 采样频率f = fs*(0:(N/2))/N;P = abs(X/N).^2;plot(f,P(1:N/2+1))```3.窗函数窗函数可以改善频谱分析的效果,常见的窗函数有矩形窗、汉宁窗、汉明窗等。

在MATLAB中,可以使用window函数生成窗函数,然后将窗函数和信号进行乘积运算,再进行频谱分析。

以下是使用汉宁窗进行频谱分析的示例代码:```matlabN = length(x);window = hann(N);xw = x.*window';X = fft(xw);fs = 1000; % 采样频率f = fs*(0:(N/2))/N;P = abs(X/N).^2;plot(f,P(1:N/2+1))```以上代码通过生成一个汉宁窗,并将窗函数与信号进行乘积运算得到xw,然后将xw进行频谱分析。

北邮数字信号处理MATLAB实验报告

北邮数字信号处理MATLAB实验报告

数字信号处理软件实验——MatLab仿真实验报告学院:电子工程学院班级:2013211202姓名:学号:实验一:数字信号的 FFT 分析1、实验内容及要求(1) 离散信号的频谱分析:设信号 此信号的0.3pi 和 0.302pi 两根谱线相距很近,谱线 0.45pi 的幅度很小,请选择合适的序列长度 N 和窗函数,用 DFT 分析其频谱,要求得到清楚的三根谱线。

(2) DTMF 信号频谱分析用计算机声卡采用一段通信系统中电话双音多频(DTMF )拨号数字 0~9的数据,采用快速傅立叶变换(FFT )分析这10个号码DTMF 拨号时的频谱。

2、实验目的通过本次实验,应该掌握:(a) 用傅立叶变换进行信号分析时基本参数的选择。

(b) 经过离散时间傅立叶变换(DTFT )和有限长度离散傅立叶变换(DFT ) 后信号频谱上的区别,前者 DTFT 时间域是离散信号,频率域还是连续的,而 DFT 在两个域中都是离散的。

(c) 离散傅立叶变换的基本原理、特性,以及经典的快速算法(基2时间抽选法),体会快速算法的效率。

(d) 获得一个高密度频谱和高分辨率频谱的概念和方法,建立频率分辨率和时间分辨率的概念,为将来进一步进行时频分析(例如小波)的学习和研究打下基础。

(e) 建立 DFT 从整体上可看成是由窄带相邻滤波器组成的滤波器组的概念,此概念的一个典型应用是数字音频压缩中的分析滤波器,例如 DVD AC3 和MPEG Audio 。

3.设计思路及实验步骤1)离散信号的频谱分析:该信号中要求能够清楚的观察到三根谱线。

由于频率0.3pi 和0.302pi 间隔非常小,要清楚的显示,必须采取足够大小的N ,使得分辨率足够好,至少到0.001单位级,而频率0.45pi 的幅度很小,要清楚的观察到它的谱线,必须采取幅度够大的窗函数,使得它的频谱幅度变大一些。

同时还要注意频谱泄漏的问题,三个正弦函数的周期(2pi/w )分别为20,40,1000,所以为了避免产生频谱泄漏(k=w/w0为整数),采样点数N 必须为1000的整数倍。

matlab信号分析实验报告

matlab信号分析实验报告

matlab信号分析实验报告Matlab信号分析实验报告引言:信号分析是一门重要的学科,它研究的是信号的产生、传输和处理过程。

在实际应用中,信号分析可以用于音频、图像、视频等领域。

本实验报告将介绍使用Matlab进行信号分析的方法和步骤,并通过实例说明其应用。

一、信号的产生和采样在信号分析中,首先需要了解信号的产生和采样过程。

信号可以通过数学函数或实际物理过程生成。

在Matlab中,可以使用函数生成各种类型的信号,如正弦信号、方波信号等。

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

在Matlab中,可以使用采样函数对信号进行采样。

通过信号的产生和采样,我们可以得到一组离散的信号数据,为后续的信号分析做准备。

二、信号的频域分析频域分析是信号分析中的重要内容,它可以将信号从时域转化为频域,得到信号的频谱信息。

在Matlab中,可以使用傅里叶变换对信号进行频域分析。

傅里叶变换可以将信号表示为一系列正弦和余弦函数的叠加,得到信号的频谱。

通过观察信号的频谱,我们可以了解信号的频率成分和能量分布情况。

频域分析在音频处理、图像处理等领域有广泛应用。

三、信号的滤波处理滤波是信号处理中常用的技术,它可以去除信号中的噪声或不需要的频率成分。

在Matlab中,可以使用滤波器对信号进行滤波处理。

滤波器可以分为低通滤波器、高通滤波器、带通滤波器等不同类型。

通过选择不同的滤波器类型和参数,可以实现对信号的不同滤波效果。

滤波处理在音频降噪、图像增强等领域有广泛应用。

四、信号的时频分析时频分析是信号分析中的一种综合方法,它可以同时观察信号在时域和频域的变化。

在Matlab中,可以使用小波变换对信号进行时频分析。

小波变换可以将信号分解成不同尺度和频率的小波系数,得到信号的时频图像。

通过观察时频图像,我们可以了解信号在不同时间和频率上的变化情况。

时频分析在音频信号的乐音识别、图像的纹理分析等领域有广泛应用。

五、实例分析:音频信号处理以音频信号处理为例,介绍Matlab在信号分析中的应用。

matlab 离散信号频谱分析实验报告

matlab 离散信号频谱分析实验报告

matlab 离散信号频谱分析实验报告实验目的:本实验旨在通过使用MATLAB软件对离散信号进行频谱分析,探究信号的频谱特性,并通过实验结果验证频谱分析的有效性和准确性。

实验原理:频谱分析是一种将信号从时域转换到频域的方法,通过分析信号的频谱特性可以了解信号的频率分布情况。

离散信号频谱分析主要基于离散傅里叶变换(DFT)和快速傅里叶变换(FFT)算法。

实验步骤:1. 生成离散信号:使用MATLAB中的函数生成一个离散信号,可以选择正弦信号、方波信号或其他类型的信号。

2. 绘制时域波形:将生成的离散信号在时域上进行绘制,观察信号的波形特征。

3. 进行频谱分析:使用MATLAB中的DFT或FFT函数对离散信号进行频谱分析,得到信号的频谱图像。

4. 绘制频谱图像:将频谱分析得到的结果进行绘制,观察信号在频域上的频率分布情况。

5. 分析频谱特性:根据频谱图像,分析信号的主要频率成分、频谱密度等特性。

实验结果与分析:通过实验我们选择了一个正弦信号作为实验对象,其频率为100Hz,幅值为1。

首先,我们绘制了该正弦信号的时域波形,观察到信号呈现出周期性的振荡特征。

接下来,我们使用MATLAB中的FFT函数对该离散信号进行频谱分析。

得到的频谱图像显示,信号的主要频率成分为100Hz,且幅值为1。

此外,频谱图像还显示了信号在其他频率上的幅值衰减情况,表明信号在频域上存在多个频率成分。

根据频谱图像,我们可以进一步分析信号的频谱特性。

首先,信号的主要频率成分为100Hz,这意味着信号的主要周期为0.01秒。

其次,频谱图像显示了信号在其他频率上的幅值衰减情况,说明信号在频域上存在多个频率成分,这可能与信号的采样率和信号源本身的特性有关。

实验结论:通过本次实验,我们成功地使用MATLAB对离散信号进行了频谱分析,并得到了信号的频谱图像。

实验结果表明,频谱分析是一种有效的信号分析方法,可以揭示信号的频率分布情况和频谱特性。

MATLAB处理信号得到频谱、相谱、功率谱

MATLAB处理信号得到频谱、相谱、功率谱

第一:频谱一.调用方法X=FFT(x);X=FFT(x,N);x=IFFT(X);x=IFFT(X,N)用MATLAB进行谱分析时注意:(1)函数FFT返回值的数据结构具有对称性。

例:N=8;n=0:N-1;xn=[4 3 2 6 7 8 9 0];Xk=fft(xn)→Xk =39.0000 -10.7782 + 6.2929i 0 - 5.0000i 4.7782 -7.7071i 5.0000 4.7782 + 7.7071i 0 + 5.0000i -10.7782 - 6.2929iXk与xn的维数相同,共有8个元素。

Xk的第一个数对应于直流分量,即频率值为0。

(2)做FFT分析时,幅值大小与FFT选择的点数有关,但不影响分析结果。

在IFFT时已经做了处理。

要得到真实的振幅值的大小,只要将得到的变换后结果乘以2除以N即可。

二.FFT应用举例例1:x=0.5*sin(2*pi*15*t)+2*sin(2*pi*40*t)。

采样频率fs=100Hz,分别绘制N=128、1024点幅频图。

clf;fs=100;N=128; %采样频率和数据点数n=0:N-1;t=n/fs; %时间序列x=0.5*sin(2*pi*15*t)+2*sin(2*pi*40*t); %信号y=fft(x,N); %对信号进行快速Fourier变换mag=abs(y); %求得Fourier变换后的振幅f=n*fs/N; %频率序列subplot(2,2,1),plot(f,mag); %绘出随频率变化的振幅xlabel('频率/Hz');ylabel('振幅');title('N=128');grid on;subplot(2,2,2),plot(f(1:N/2),mag(1:N/2)); %绘出Nyquist频率之前随频率变化的振幅xlabel('频率/Hz');ylabel('振幅');title('N=128');grid on;%对信号采样数据为1024点的处理fs=100;N=1024;n=0:N-1;t=n/fs;x=0.5*sin(2*pi*15*t)+2*sin(2*pi*40*t); %信号y=fft(x,N); %对信号进行快速Fourier变换mag=abs(y); %求取Fourier变换的振幅f=n*fs/N;subplot(2,2,3),plot(f,mag); %绘出随频率变化的振幅xlabel('频率/Hz');ylabel('振幅');title('N=1024');grid on;subplot(2,2,4)plot(f(1:N/2),mag(1:N/2)); %绘出Nyquist频率之前随频率变化的振幅xlabel('频率/Hz');ylabel('振幅');title('N=1024');grid on;运行结果:fs=100Hz,Nyquist频率为fs/2=50Hz。

MATLAB中的信号采集与处理技巧分享

MATLAB中的信号采集与处理技巧分享

MATLAB中的信号采集与处理技巧分享在信号处理领域,MATLAB是一款强大而常用的工具。

它提供了许多方便的函数和工具箱,可以帮助工程师们更加高效地采集和处理信号。

本文将分享一些在MATLAB中信号采集和处理的技巧,希望对读者有所帮助。

一、信号采集信号采集是信号处理的第一步,而在MATLAB中,有几种常见的方法可以采集信号。

1. 读取文件:MATLAB支持多种文件格式的读取,如.wav、.mp3等。

通过使用`audioread`函数可以方便地读取音频文件,并将其转换为MATLAB的矩阵形式,以便后续处理。

2. 录制音频:使用MATLAB提供的录音功能,可以通过调用`audiorecorder`对象来录制音频。

首先需要创建一个录音对象,并设置采样率、位深等参数。

然后,使用`record`函数开始录制音频,并使用`getaudiodata`函数获取录制的音频数据。

3. 采集外部设备信号:如果需要采集来自外部设备的信号,可以使用MATLAB提供的数据采集工具箱。

该工具箱支持与不同类型的硬件设备通信,如AD/DA转换器、传感器等。

通过设置相应的参数,可以实现对外部信号的采集。

二、信号处理信号处理是通过一系列的算法和方法对信号进行分析和处理的过程。

MATLAB 提供了许多函数和工具箱,可以帮助工程师们完成各种信号处理任务。

1. 时域分析:时域分析是对信号的时间特性进行分析。

MATLAB中的`plot`函数可以绘制信号的时域波形图。

使用`fft`函数可以进行傅里叶变换,将信号从时域转换为频域,并使用`abs`函数求取幅度谱。

另外,可以通过调整窗函数的类型和长度,对信号进行窗函数处理,以避免频谱泄漏等问题。

2. 频域分析:频域分析基于信号的频谱特性进行分析。

MATLAB提供了`spectrogram`函数和`pwelch`函数等用于计算信号的短时傅里叶变换和功率谱密度的函数。

通过观察频谱,可以了解信号的频率分布和谐波情况,从而做出相应的处理。

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

实验六 用
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('采样后的频谱');
如有侵权请联系告知删除,感谢你们的配合!。

相关文档
最新文档