搜档网
当前位置:搜档网 › 用MATLAB分析离散信号的频谱与信号的采样

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

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

实验六 用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 的波形如下:

p(t)

-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分析如图所示三角波信号的采样过程。

)(t

T

δ

)(t

y

f(t)

-0.50.5-Ts Ts

0t

Ts=0.2s

||2

1

)(t

t

f-

=

要求:

(1)、 求)(t f 的频谱图)(ωF (2)、求)(1t y 的频谱图)(1ωY (3)、求)(t y 的频谱图)(ωY

)4

(

2

1))

2

1cos(

1(4)(2

2

ω

ω

ωω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)/T s

% 利用频移特性F[f(t)*exp(-j*w0*t)]=F(w+w0)来实现

subplot(3,1,3); % 绘制采样后的频谱Y(w) T s=0.2; % 采样信号的周期 w0=(2*pi)/T s; % 延拓周期10*pi for k=-2:2

ft=f*exp(-j*w0*k*t);

FT=int(ft,t,-1/2,1/2);

ezplot((1/T s)*abs(FT),[(-4*pi-k*w0):0.01:(4*pi-k*w0)]);

hold on

end

axis([low high -0.1 2.5]); xlabel('');

title('采样后的频谱');

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

实验六 用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]'); 仿真的结果如下:

对正弦信号的采样频谱分析.doc

H a r b i n I n s t i t u t e o f T e c h n o l o g y 课程设计 课程名称:课程设计2 设计题目:对正弦信号的抽样频谱分析院系:电子与信息工程学院 班级:0805203 设计者:褚天琦 学号:1080520314 指导教师:郑薇 设计时间:2011-10-15 哈尔滨工业大学

一、题目要求: 给定采样频率fs,两个正弦信号相加,两信号幅度不同、频率不同。要求给定正弦信号频率的选择与采样频率成整数关系和非整数关系两种情况,信号持续时间选择多种情况分别进行频谱分析。 二、题目原理与分析: 本题目要对正弦信号进行抽样,并使用fft对采样信号进行频谱分析。因此首先对连续正弦信号进行离散处理。实际操作中通过对连续信号间隔相同的抽样周期取值来达到离散化的目的。根据抽样定理,如果信号带宽小于奈奎斯特频率(即采样频率的二分之一),那么此时这些离散的采样点能够完全表示原信号。高于或处于奈奎斯特频率的频率分量会导致混叠现象。设抽样周期为TS(抽样角频率为ωS),则 可见抽样后的频谱是原信号频谱的周期性重复,当信号带宽小于奈奎斯特频率的二分之一时不会产生频谱混叠现象。 因此,我们对采样频率的选择采取fs>2fo,fs=2fo,fs<2fo三种情况进行分析。对信号采样后,使用fft函数对其进行频谱分析。为了使频谱图像更加清楚,更能准确反映实际情况并接近理想情况,我们采用512点fft。取512点fft不仅可以加快计算速度,而且可以使频谱图更加精确。若取的点数较少,则会造成频谱较大的失真。 三、实验程序: 本实验采用matlab编写程序,实验中取原信号为 ft=sin(2πfXt)+2sin(10πfXt),取频率f=1kHz,实验程序如下: f=1000;fs=20000;Um=1; N=512;T=1/fs; t=0:1/fs:0.01; ft=Um*sin(2*pi*f*t)+2*Um*sin(10*pi*f*t); subplot(3,1,1); plot(t,ft);grid on; axis([0 0.01 1.1*min(ft) 1.1*max(ft)]); xlabel('t'),ylabel('ft'); title('抽样信号的连续形式'); subplot(3,1,2); stem(t,ft);grid on; axis([0 0.01 1.1*min(ft) 1.1*max(ft)]); xlabel('t'),ylabel('ft');

离散信号的产生和频谱分析(matlab)-西工大

离散信号的产生和频谱分析 实验目的: 仿真掌握采样定理 学会用FFT 进行数字谱分析 掌握FFT 进行数字谱分析的计算机编程实现方法 培养学生综合分析、解决问题的能力、加深对课堂内容的理解 实验要求: 掌握采样定理和数字谱分析方法、编制FFT 程序;完成正弦信号、线性条调频信号等模拟水声信号的数字谱分析; 实验内容: 单频脉冲(CWP )为) 2ex p()( )(0t f j T t rect t s π=。式中,) ( T t rect 是矩形包络,T 是脉冲持续时间,0f 是中心频率。 矩形包络线性调频脉冲信号(LFM )为 )] 2 1 (2ex p[)( )(2 0Mt t f j T t rect 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.编程产生单频脉冲、矩形包络线性调频脉冲。 2.应用快速傅立叶变换(FFT )求这两种信号的频谱,分析离散谱位置、归一化频率、实际频率的关系。 调用函数Y=fft(x) or Y=fft(x,N) or Y=fft(x,N,dim)。 3.对于步骤2的结果,应用快速傅立叶变换的逆变换(IFFT )求两种信号的时域波形,并与已给的单频脉冲、矩形包络线性调频脉冲和伪随机脉冲信号波形进行对照。 调用函数x=ifft(Y) or x=ifft(Y,N) or x=ifft(Y ,N,dim)。 4.对于步骤2的结果,进行频谱移位调整。将FFT 变换的结果Y (频谱数据)进行移位调整,使其符合频谱常观表示方法,调整后,频谱的直流成分(即频率为0处的值)移到频谱的中间位置。分析离散谱位置、归一化频率、实际频率的关系。 移位调整调用函数Z=fftshift(Y)。频率间隔为Fs/N ,频率范围为Fs/N*[-N/2:N/2-1]。 实验结果:

用FFT对信号作频谱分析 实验报告

实验报告 实验三:用FFT 对信号作频谱分析 一、 实验目的与要求 学习用FFT 对连续信号和时域离散信号进行谱分析的方法,了解可能出现的分析误差及其原因,以便正确应用FFT 。 二、 实验原理 用FFT 对信号作频分析是学习数字信号处理的重要内容,经常需要进行分析的信号是模拟信号的时域离散信号。对信号进行谱分析的重要问题是频谱分辨率D 和分析误差。频谱分辨率直接和FFT 的变换区间N 有关,因为FFT 能够实现的频率分辨率是2π/N ,因此要求2π/N 小于等于D 。可以根据此式选择FFT 的变换区间N 。误差主要来自于用FFT 作频谱分析时,得到的是离散谱,而信号(周期信号除外)是连续谱,只有当N 较大时,离散谱的包络才能逼近连续谱,因此N 要适当选择大一些。 三、 实验步骤及内容(含结果分析) (1)对以下序列进行FFT 分析: x 1(n)=R 4(n) x 2(n)= x 3(n)= 选择FFT 的变换区间N 为8和16两种情况进行频谱分析,分别打印出幅频特性曲线,并进行讨论、分析与比较。 【实验结果如下】: n+1 0≤n ≤3 8-n 4≤n ≤7 0 其它n 4-n 0≤n ≤3 n-3 4≤n ≤7 0 其它 n

实验结果图形与理论分析相符。(2)对以下周期序列进行谱分析: x4(n)=cos[(π/4)*n]

x5(n)= cos[(π/4)*n]+ cos[(π/8)*n] 选择FFT的变换区间N为8和16两种情况进行频谱分析,分别打印出幅频特性曲线,并进行讨论、分析与比较。 【实验结果如下】: (3)对模拟周期信号进行频谱分析: x6(n)= cos(8πt)+ cos(16πt)+ cos(20πt) 选择采样频率Fs=64Hz,FFT的变换区间N为16、32、64三种情况进行频谱分析,分别打印出幅频特性曲线,并进行讨论、分析与比较。 【实验结果如下】:

离散信号MATLAB频谱分析程序

离散信号MATLAB频谱分析程序 % FFT变换,获得采样数据基本信息,时域图,频域图 % 这里的向量都用行向量,假设被测变量是速度,单位为m/s clear; close all; load data.txt %通过仪器测量的原始数据,存储为data.txt中,附件中有一个模版(该信号极不规则) A=data; %将测量数据赋给A,此时A为N×2的数组 x=A(:,1); %将A中的第一列赋值给x,形成时间序列 x=x'; %将列向量变成行向量 y=A(:,2); %将A中的第二列赋值给y,形成被测量序列 y=y'; %将列向量变成行向量 %显示数据基本信息 fprintf('\n数据基本信息:\n') fprintf(' 采样点数= %7.0f \n',length(x)) %输出采样数据个数 fprintf(' 采样时间= %7.3f s\n',max(x)-min(x)) %输出采样耗时 fprintf(' 采样频率= %7.1f Hz\n',length(x)/(max(x)-min(x))) %输出采样频率 fprintf(' 最小速度= %7.3f m/s\n',min(y)) %输出本次采样被测量最小值fprintf(' 平均速度= %7.3f m/s\n',mean(y)) %输出本次采样被测量平均值fprintf(' 速度中值= %7.3f m/s\n',median(y)) %输出本次采样被测量中值fprintf(' 最大速度= %7.3f m/s\n',max(y)) %输出本次采样被测量最大值fprintf(' 标准方差= %7.3f \n',std(y)) %输出本次采样数据标准差fprintf(' 协方差= %7.3f \n',cov(y)) %输出本次采样数据协方差fprintf(' 自相关系数= %7.3f \n\n',corrcoef(y)) %输出本次采样数据自相关系数%显示原始数据曲线图(时域) subplot(2,1,1); plot(x,y) %显示原始数据曲线图 axis([min(x) max(x) 1.1*floor(min(y)) 1.1*ceil(max(y))]) %优化坐标,可有可无xlabel('时间(s)'); ylabel('被测变量y'); title('原始信号(时域)'); grid on; %傅立叶变换 y=y-mean(y); %消去直流分量,使频谱更能体现有效信息Fs=2000; %得到原始数据data.txt时,仪器的采样频率。其实就是 length(x)/(max(x)-min(x)); N=10000; %data.txt中的被测量个数,即采样个数。其实就是length(y); z=fft(y);

信号的频谱分析及MATLAB实现

第23卷第3期湖南理工学院学报(自然科学版)Vol.23 No.3 2010年9月 Journal of Hunan Institute of Science and Technology (Natural Sciences) Sep. 2010信号的频谱分析及MATLAB实现 张登奇, 杨慧银 (湖南理工学院信息与通信工程学院, 湖南岳阳 414006) 摘 要: DFT是在时域和频域上都已离散的傅里叶变换, 适于数值计算且有快速算法, 是利用计算机实现信号频谱分析的常用数学工具. 文章介绍了利用DFT分析信号频谱的基本流程, 重点阐述了频谱分析过程中误差形成的原因及减小分析误差的主要措施, 实例列举了MATLAB环境下频谱分析的实现程序. 通过与理论分析的对比, 解释了利用DFT分析信号频谱时存在的频谱混叠、频谱泄漏及栅栏效应, 并提出了相应的改进方法. 关键词: MA TLAB; 频谱分析; 离散傅里叶变换; 频谱混叠; 频谱泄漏; 栅栏效应 中图分类号: TN911.6 文献标识码: A 文章编号: 1672-5298(2010)03-0029-05 Analysis of Signal Spectrum and Realization Based on MATLAB ZHANG Deng-qi, YANG Hui-yin (College of Information and Communication Engineering, Hunan Institute of Science and Technology, Yueyang 414006, China) Abstract:DFT is a Fourier Transform which is discrete both in time-domain and frequency-domain, it fits numerical calculation and has fast algorithm, so it is a common mathematical tool which can realize signal spectrum analysis with computer. This paper introduces the basic process of signal spectrum analysis with DFT, emphasizes the causes of error producing in spectrum analysis process and the main ways to decrease the analysis error, and lists the programs of spectrum analysis based on MATLAB. Through the comparison with the theory analysis, the problems of spectrum aliasing, spectrum leakage and picket fence effect are explained when using DFT to analyze signal spectrum, and the corresponding solution is presented. Key words:MATLAB; spectrum analysis; DFT; spectrum aliasing; spectrum leakage; picket fence effect 引言 信号的频谱分析就是利用傅里叶分析的方法, 求出与时域描述相对应的频域描述, 从中找出信号频谱的变化规律, 以达到特征提取的目的[1]. 不同信号的傅里叶分析理论与方法, 在有关专业书中都有介绍, 但实际的待分析信号一般没有解析式, 直接利用公式进行傅里叶分析非常困难. DFT是一种时域和频域均离散化的傅里叶变换, 适合数值计算且有快速算法, 是分析信号的有力工具. 本文以连续时间信号为例, 介绍利用DFT分析信号频谱的基本流程, 重点阐述频谱分析过程中可能存在的误差, 实例列出MATLAB 环境下频谱分析的实现程序. 1 分析流程 实际信号一般没有解析表达式, 不能直接利用傅里叶分析公式计算频谱, 虽然可以采用数值积分方法进行频谱分析, 但因数据量大、速度慢而无应用价值. DFT在时域和频域均实现了离散化, 适合数值计算且有快速算法, 是利用计算机分析信号频谱的首选工具. 由于DFT要求信号时域离散且数量有限, 如果是时域连续信号则必须先进行时域采样, 即使是离散信号, 如果序列很长或采样点数太多, 计算机存储和DFT计算都很困难, 通常采用加窗方法截取部分数据进行DFT运算. 对于有限长序列, 因其频谱是连续的, DFT只能描述其有限个频点数据, 故存在所谓栅栏效应. 总之, 用DFT分析实际信号的频谱, 其结果必然是近似的. 即使是对所有离散信号进行DFT变换, 也只能用有限个频谱数据近似表示连续频 收稿日期: 2010-06-09 作者简介: 张登奇(1968? ), 男, 湖南临湘人, 硕士, 湖南理工学院信息与通信工程学院副教授. 主要研究方向: 信号与信息处理

信号的频谱分析

实验三信号的频谱分析 方波信号的分解与合成实验 一、任务与目的 1. 了解方波的傅立叶级数展开和频谱特性。 2. 掌握方波信号在时域上进行分解与合成的方法。 3. 掌握方波谐波分量的幅值和相位对信号合成的影响。 二、原理(条件) PC机一台,TD-SAS系列教学实验系统一套。 1. 信号的傅立叶级数展开与频谱分析 信号的时域特性和频域特性是对信号的两种不同的描述方式。对于一个时域的周期信号f(t),只要满足狄利克莱条件,就可以将其展开成傅立叶级数: 如果将式中同频率项合并,可以写成如下形式: 从式中可以看出,信号f(t)是由直流分量和许多余弦(或正弦)分量组成。其中第一项A0/2是常数项,它是周期信号中所包含的直流分量;式中第二项A1cos(Ωt+φ1)称为基波,它的角频率与原周期信号相同,A1是基波振幅,φ1是基波初相角;式中第三项A2cos(Ωt+φ2)称为二次谐波,它的频率是基波的二倍,A2是基波振幅,φ2是基波初相角。依此类推,还有三次、四次等高次谐波分量。 2. 方波信号的频谱 将方波信号展开成傅立叶级数为: n=1,3,5… 此公式说明,方波信号中只含有一、三、五等奇次谐波分量,并且其各奇次谐波分量的幅值逐渐减小,初相角为零。图3-1-1为一个周期方波信号的组成情况,由图可见,当它包含的分量越多时,波形越接近于原来的方波信号,还可以看出频率较低的谐波分量振幅较大,它们组成方波的主体,而频率较高的谐波分量振幅较小,它们主要影响波形的细节。

(a)基波(b)基波+三次谐波 (c)基波+三次谐波+五次谐波 (d)基波+三次谐波+五次谐波+七次谐波 (e)基波+三次谐波+五次谐波+七次谐波+九次谐波 图3-1-1方波的合成 3. 方波信号的分解 方波信号的分解的基本工作原理是采用多个带通滤波器,把它们的中心频率分别调到被测信号的各个频率分量上,当被测信号同时加到多路滤波器上,中心频率与信号所包含的某次谐波分量频率一致的滤波器便有输出。在被测信号发生的实际时间内可以同时测得信号所包含的各频率分量。本实验便是采用此方法,实验中共有5路滤波器,分别对应方波的一、三、五、七、九次分量。 4. 信号的合成 本实验将分解出的1路基波分量和4路谐波分量通过一个加法器,合成为原输入的方波信号,信号合成电路图如图3-1-2所示。 图3-1-2 三、内容与步骤 本实验在方波信号的分解与合成单元完成。 1. 使信号发生器输出频率为100Hz、幅值为4V的方波信号,接入IN端。 2. 用示波器同时测量IN和OUT1端,调节该通路所对应的幅值调节电位器,使该通路输出方波的基波分量,基波分量的幅值为方波信号幅值的4/π倍,频率于方波相同并且没有相位差.(注意:出厂时波形调节电位器已调到最佳位置,其波形基本不失真,基本没有相位差。若实验中发现存在波形失真或有相位差的现象,请适当调节波形调节电位器,使波形恢复正常。) 3. 用同样的方法分别在OUT3、OUT5、OUT7、OUT9端得到方波的三、五、七、九此谐波分量(注意其他谐波分量各参数应当满足式3-1-1所示)。 4. 完成信号的分解后,先后将OUT1与IN1、OUT3与IN2、OUT5与IN3、OUT7与IN4、OUT9与IN5连接起来,即进行谐波叠加(信号合成),分别测量(1)基波与三次谐波;(2)基波、三次谐波与五次谐波;(3)基波、三次谐波、五次谐波与七次谐波;(4)基波、三次谐波、五次谐波、七次谐波与九次谐波合成后的波形。并分别保

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

实验一离散信号的频谱分析报告 班级 姓名 学号

实验一离散信号的频谱分析报告 1 掌握采样频率的概念 2 掌握信号频谱分析方法; 3 掌握在计算机中绘制信号频谱图的方法。 ①采样频率为1000Hz,信号频率为30Hz的正弦信号y1(n) 对其进行FFT变换 ②采样频率为1000Hz,信号频率为120Hz的正弦信号y2(n)

对其进行FFT变换 ③采样频率为1000Hz, 30Hz的正弦信号和120Hz的混合信号y3(n)。 对其进行FFT变换

语音信号波形

附录程序: fs=1000;%设定采样频率 N=1024; n=0:N-1; t=n/fs; f0=30;%设定正弦信号频率 %生成正弦信号 x=sin(2*pi*f0*t); figure(1); subplot(3,2,1); plot(t,x);%作正弦信号的时域波形xlabel('t'); ylabel('y'); title('正弦信号30HZ时域波形'); grid; %进行FFT变换并做频谱图

y=fft(x,N);%进行fft变换 mag=abs(y);%求幅值 f=(0:length(y)-1)'*fs/length(y);%进行对应的频率转换figure(1); subplot(3,2,2); plot(f,mag);%做频谱图 axis([0,100,0,500]); xlabel('频率(Hz)'); ylabel('幅值'); title('正弦信号30HZ幅频谱图N=1024'); grid; %120HZ f1=120; x=sin(2*pi*f1*t); figure(1); subplot(3,2,3); plot(t,x);%作正弦信号的时域波形 xlabel('t'); ylabel('y'); title('正弦信号120HZ时域波形'); grid; %进行FFT变换并做频谱图 y=fft(x,N);%进行fft变换 mag=abs(y);%求幅值 f=(0:length(y)-1)'*fs/length(y);%进行对应的频率转换

信号的频谱分析及MATLAB实现

信号的频谱分析及MATLAB 实现(实例) 摘自:张登奇,杨慧银.信号的频谱分析及MATLAB 实现[J].湖南理工学院学报(自然科学版),2010,(03) 摘 要:DFT 是在时域和频域上都已离散的傅里叶变换,适于数值计算且有快速算法,是利用计算机实现信号频谱分析的常用数学工具。文章介绍了利用DFT 分析信号频谱的基本流程,重点阐述了频谱分析过程中误差形成的原因及减小分析误差的主要措施,实例列举了MATLAB 环境下频谱分析的实现程序。通过与理论分析的对比,解释了利用DFT 分析信号频谱时存在的频谱混叠、频谱泄漏及栅栏效应,并提出了相应的改进方法。 关键词:MATLAB ;频谱分析;离散傅里叶变换;频谱混叠;频谱泄漏;栅栏效应 3 分析实例 对信号进行频谱分析时,由于信号不同,傅里叶分析的频率单位也可能不同,频率轴有不同的定标方式。为了便于对不同信号的傅里叶分析进行对比,这里统一采用无纲量的归一化频率单位,即模拟频率对采样频率归一化;模拟角频率对采样角频率归一化;数字频率对2π归一化;DFT 的k 值对总点数归一化。同时,为了便于与理论值进行对比,理解误差的形成和大小,这里以确定信号的幅度谱分析为例进行分析说明。假设信号为:)()(t u e t x t -=,分析过程:首先利用CTFT 公式计算其模拟频谱的理论值;然后对其进行等间隔理想采样,得到)(n x 序列,利用DTFT 公式计算采样序列的数字连续频谱理论值,通过与模拟频谱的理论值对比,理解混叠误差形成的原因及减小误差的措施;接下来是对)(n x 序列进行加窗处理,得到有限长加窗序列)(n xw ,再次利用DTFT 公式计算加窗后序列)(n xw 的数字连续频谱,并与加窗前)(n x 的数字连续频谱进行对比,理解截断误差形成的原因及减小误差的措施;最后是对加窗序列进行DFT 运算,得到加窗后序列)(n xw 的DFT 值,它是对)(n xw 数字连续频谱进行等间隔采样的采样值,通过对比,理解栅栏效应及DFT 点数对栅栏效应的影响。利用MATLAB 实现上述分析过程的程序如下: clc;close all;clear; %CTFT 程序,以x(t)=exp(-t) t>=0 为例 %利用数值运算计算并绘制连续信号波形 L=4, %定义信号波形显示时间长度 fs=4,T=1/fs; %定义采样频率和采样周期 t_num=linspace(0,L,100);%取若干时点,点数决定作图精度 xt_num=exp(-1*t_num);%计算信号在各时点的数值 subplot(3,2,1);plot(t_num,xt_num),%绘信号波形 xlabel('时间(秒)'),ylabel('x(t)'),%加标签 grid,title('(a) 信号时域波形'),%加网格和标题 %利用符号运算和数值运算计算连续信号幅度谱的理论值 syms t W %定义时间和角频率符号对象 xt=exp(-1*t)*heaviside(t),%连续信号解析式 XW=fourier(xt,t,W),%用完整调用格式计算其傅氏变换 %在0两边取若干归一化频点,点数决定作图精度 w1=[linspace(-0.5,0,50),linspace(0,1.5,150)];

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

数字信号处理课程设计报告书 2011年7 月 1日 课题名称 应用MATLAB 对信号进行频谱分析 姓 名 张炜玮 学 号 20086377 院、系、部 电气系 专 业 电子信息工程 指导教师 刘鑫淼 ※※※※※※※※※ ※※ ※※ ※※ ※※ ※※※※※ ※※ 2008级数字信号处理课程设计

应用MATLAB对信号进行频谱分析 20086377 张炜玮 一、设计目的 用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)]= kn N W N n n x ∑ - = 1 ) ( ,k=0,1,...,N-1 N j e N Wπ2- = 逆变换:x(n) =IDFT[X(k)]= kn N W k X N n N - ∑ - = 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);

信号实验二 离散信号的频谱分析

实验二离散信号的频谱分析 一、[实验目的] (1)加深对采样定理的理解和掌握,以及对信号恢复的必要性; (2)掌握对连续信号在时域的采样与重构的方法 (3)理解和加深傅里叶变换的概念及其性质。 (4)离散时间傅里叶变换(DTFT)的计算和基本性质。 (5)离散傅里叶变换(DFT)的计算和基本性质。 二、[实验内容] 1.实验原理验证 (一).采样定理及采样后信号的频谱 对Sa(t)的采样后信号的频谱 (二).信号重建 对cos(t)的采样与重建信号cos(t) cos(t)重建信号与原信号的比较及误差(三).离散时间信号的傅立叶变换及频谱分析 (1))离散时间傅里叶变换的概念及其性质。 有限长序列x(n)={1,2,3,4,5}

(2)离散傅里叶变换的概念及其性质 x(n)=sin(n*pi/8)+sin(n*pi/4),N=16的序列傅里 叶变换。 2. 选取信号f(t)= cos(t)作为被采样信号(最高频率为f=8Hz),取理想低通的截止 频率wc=1/2*ws。实现对信号f(t)= cos(t)的采样及由该采样信号的恢复重建,按 要求完成以下内容: (1) 分别令采样角频率ws=1.5*wm 及ws=3*wm,给出在欠采样及过采样条件下冲 激取样后信号的频谱,从而观察频谱的混叠现象。 答:实验程序如下 clc,clear dt=0.01; t=0:dt:1;

-10-8-6-4-20246 810 -0.10 0.10.2 0.30.4 0.5 0.6cos(t)的3倍采样信号频谱 ω F (j w ) f=8; %信号频率 wm=2*pi*f; %信号角频率 ft=cos(wm*t); %时域信号 %bs=1.5; %采样角频率,欠采样 bs=3; %采样角频率,大于两倍采样 ws=bs*wm; Ts=2*pi/ws; %采样时间间隔 wc=1/2*ws; %理想低通截止频率 nTs=0:Ts:1; Tf=0.01; nTf=-10:Tf:10; f_nTs=cos(wm*nTs); %时域采样信号 Fs=funexer4_1(f_nTs,nTs,Ts,nTf); figure(1); plot(nTf,Fs); title('cos(t)的3倍采样信号频谱'); xlabel('ω'); ylabel('F(jw)'); grid on %//////////////////1.5倍采样 figure(2) bs=1.5; %采样角频率,大于两倍采样 ws=bs*wm; Ts=2*pi/ws; %采样时间间隔 wc=1/2*ws; %理想低通截止频率 nTs=0:Ts:1; Tf=0.01; nTf=-10:Tf:10; Fs=funexer4_1(f_nTs,nTs,Ts,nTf); plot(nTf,Fs); title('cos(t)的1.5倍采样信号频谱'); xlabel('ω'); ylabel('F(jw)'); grid on (2) 若采样角频率取为ws=3*wm ,欲使输出信号与输入信号一致为cos(t),试根据采样信号恢复信号的误差,确定理想低通滤波器H ( jw)的截止角频率Wc 的取值范围应为多大? -10-8-6-4-20246 810 -0.100.1 0.20.30.4 0.50.6cos(t)的1.5倍采样信号频谱 ωF (j w )

实验四-离散时间系统的频域分析(附思考题程序)

实验四 离散时间系统的频域分析 1.实验目的 (1)理解和加深傅里叶变换的概念及其性质。 (2)离散时间傅里叶变换(DTFT)的计算和基本性质。 (3)离散傅里叶变换(DFT)的计算和基本性质。 2.实验原理 对离散时间信号进行频域分析,首先要对其进行傅里叶变换,通过得到的频谱函数进行分析。 离散时间傅里叶变换(DTFT ,Discrete-time Fourier Transform)是傅立叶变换的一种。它将以离散时间nT (其中,T 为采样间隔)作为变量的函数(离散时间信号)f (nT )变换到连续的频域,即产生这个离散时间信号的连续频谱()iw F e ,其频谱是连续周期的。 设连续时间信号f (t )的采样信号为:()()()sp n f t t nT f nT d ¥ =-? = -?,并且其傅里叶变 换为:()()(){}sp n iwt f t f nT t nT dt e d ¥ ¥ -? =-? --= ? òF 。 这就是采样序列f(nT)的DTFT::()()iwT inwT DTFT n F e f nT e ¥ -=-? = ?,为了方便,通常将采 样间隔T 归一化,则有:()()iw inw DTFT n F e f n e ¥ -=-? = ?,该式即为信号f(n)的离散时间傅 里叶变换。其逆变换为:()1()2iw DTFT inw F e dw f n e p p p -=ò。 离散傅里叶变换(DFT ,Discrete-time Fourier Transform )是对离散周期信号的一种傅里叶变换,对于长度为有限长信号,则相当于对其周期延拓进行变换。在频域上,DFT 的离散谱是对DTFT 连续谱的等间隔采样。 21 1 20 ()()| ()()DFT k DTFT k w N knT N N i iwT iwnT N n n F w F e f nT e f nT e p p =----==== = 邋 长度为N 的有限长信号x(n),其N 点离散傅里叶变换为: 1 ()[()]()kn N N n X k DFT x n x n W -=== ?。 X(k)的离散傅里叶逆变换为:10 1()[()]()kn N N k x n IDFT X k X k W N --===?。 DTFT 是对任意序列的傅里叶分析,它的频谱是一个连续函数;而DFT 是把有限长序列作为周期序列的一个周期,对有限长序列的傅里叶分析,DFT 的特点是无论在时域还是频域

实验四离散信号频谱分析

实验四 离散信号的频域分析 一、 实验目的 1. 掌握序列的傅里叶变换、离散傅里叶级数、离散傅里叶变换、快速傅里叶变换的Matlab 实现; 2. 学习用FFT 对连续信号和离散信号进行谱分析的方法,了解可能出现的分析误差及其原因,以便在实际中正确应用FFT 。 二、 实验原理及方法 1. 离散信号的谱分析 (1) 序列的傅里叶变换 对于满足绝对可和的序列,即 ∞<∑∞ ∞-|)(|n x ,其傅里叶变换和反变换的定义为 ∑∞ -∞ =-= n n j j e n x e X ωω )()( (4.1) ωπ ωπ π ωd e e X n x n j j ?- = )(21 )( (4.2) 序列)(n x 是离散的,但)(ω j e X 是以π2为周期的ω的连续函数,为了能够在计算机上处理,需要对)(n x 进行截断,对频域进行离散化,近似处理后 2 1()()k k n j j n n n X e x n e ωω-==∑ (4.3) 其中2k k M π ω= ,M 是对ω在一个周期内的采样,k 的取值由读者确定,若想观察一个周期内的频谱,0~1k M =-,若观察两个周期,0~21k M =-,以此类推。 序列傅里叶变换的Matlab 实现: clc;clear; n=0:3; x=[1,1,1,1]; M=200; k=0:M-1; W=2*pi/M*k; X=x*(exp(-j*2*pi/M)).^(n'*k); %序列的傅里叶变换 magX=abs(X); phaX=angle(X); subplot(131); stem(x); subplot(132); plot(W,magX); subplot(133); plot(W,phaX);

用FFT对信号作频谱分析

实验三:用FFT 对信号作频谱分析 一、实验原理与方法 1、用FFT 对信号作频分析是学习数字信号处理的重要内容,经常需要进行分析的信号是模拟信号的时域离散信号。对信号进行谱分析的重要问题是频谱分辨率D 和分析误差。频谱分辨率直接和FFT 的变换区间N 有关,因为FFT 能够实现的频率分辨率是N π2,因此要求D N ≤π2。可以根据此式选择FFT 的变换区间N 。误差主要来自于用FFT 作频谱分析时,得到的是离散谱,而信号(周期信号除外)是连续谱,只有当N 较大时,离散谱的包络才能逼近连续谱,因此N 要适当选择大一些。 2、周期信号的频谱是离散谱,只有用整数倍周期的长度作FFT ,得到的离散谱才能代表周期信号的频谱。如果不知道信号周期,可以尽量选择信号的观察时间长一些。 3、对模拟信号进行谱分析时,首先要按照采样定理将其变成时域离散信号。如果是模拟周期信号,也应该选取整数倍周期长度,经过采样后形成周期序列,按照周期序列的谱分析进行。 二、实验内容 1、对以下序列进行FFT 谱分析: )()(41n R n x = ?????≤≤-≤≤+=n n n n n n x 其他0 7483 01 )(2 ?????≤≤-≤≤-=n n n n n n x 其他0 7433 04)(3 选择FFT 的变换区间N 为8和16两种情况进行频谱分析,分别打印出幅频特性曲线,并进行讨论、分析。程序见附录3.1、实验结果见图3.1。 2、对以下周期序列进行谱分析: n n x 4cos )(4π = n n n x 8cos 4cos )(5π π+= 选择FFT 的变换区间N 为8和16两种情况进行频谱分析,分别打印出幅频特性曲线,并进行讨论、分析与比较。程序见附录3.2、实验结果见图3.2。 3、对模拟周期信号进行频谱分析: t t t t x πππ20cos 16cos 8cos )(6++= 选择采样频率Fs=64Hz ,FFT 的变换区间N 为16、32、64三种情况进行频谱分析,分别打印出幅频特性曲线,并进行讨论、分析与比较。程序见附录3.3、实验结果见图3.3。

第四章 周期信号的频谱分析

第四章 周期信号的频域分析 1. 内容提要 本章介绍连续周期信号的傅立叶级数及其基本性质;连续周期信号频谱的概念,相位谱的作用。对离散周期信号傅立叶级数和其基本性质做简单了解。 2. 学习目标 通过本章的学习,应达到以下要求: (1)掌握周期信号频谱的概念及信号频带宽度的概念。 (2)熟悉傅里叶变换的主要性质。 (3)熟悉频域分析法。 (4)了解离散傅立叶级数的概念 3. 重点难点 (1) 信号的对称性和傅立叶系数的关系 (2) 连续信号的频谱分析,包括周期信号频谱的概念,相位谱和功率谱。 4. 应用 周期信号频域分析的MATLAB 实现 5. 教案内容 4.1 连续时间信号的傅立叶变换 周期信号的定义 周期信号是定义在001/f T =(,)-∞∞区间,每隔一定的时间间隔0T ,按相同规律重复变化的信号。即对t R ?∈,存在一个大于零的0T ,使得 0()(),f t T f t t R +=?∈ 其中0T 为基波周期,002/T ωπ=为基波角频率,001/f T =为基波频率

傅立叶级数的实质 就是将复杂信号分解成为更容易处理的信号形式。 4.1.1 指数形式的傅里叶级数 连续时间信号的傅立叶级数表示为 0()jnw t n n f t C e ∞ =-∞ = ∑ 称n C 为周期信号()f t 的傅立叶系数。傅立叶系数的计算公式为 00 00 1 ()t T jn t t Cn f t e dt T ω+-= ? 4.1.2 三角形式的傅立叶级数 若函数()f t 满足狄里赫利条件,周期信号f(t) 展开成傅里叶级数。 01111212111()cos sin cos 2sin 2cos sin n n f t a a t b t a t b t a n t b n t ωωωωωω=++++++++ 0111 (cos sin )n n n a a n t b n t ωω∞ ==++∑ 式中,n 为正整数;系数0,,n n a a b 称为傅里叶系数,考虑到三角函数集是一组完备的正交函数集,因此,可得一个周期1(0,)T 的傅里叶系数: 1 11200112 11()()T T T a f t dt f t dt T T -==?? 1 10 12()cos T n a f t n tdt T ω=? 1 10 12()sin T n b f t n tdt T ω=?

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

实验六 用 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]'); 仿真的结果如下:

实验:典型信号频谱分析

实验3.2 典型信号频谱分析 一、 实验目的 1. 在理论学习的基础上,通过本实验熟悉典型信号的波形和频谱特征,并能够从信号频谱中读取所需的信息。 2. 了解信号频谱分析的基本方法及仪器设备。 二、 实验原理 1. 典型信号及其频谱分析的作用 正弦波、方波、三角波和白噪声信号是实际工程测试中常见的典型信号,这些信号时域、频域之间的关系很明确,并且都具有一定的特性,通过对这些典型信号的频谱进行分析,对掌握信号的特性,熟悉信号的分析方法大有益处,并且这些典型信号也可以作为实际工程信号分析时的参照资料。本次实验利用DRVI 快速可重组虚拟仪器平台可以很方便的对上述典型信号作频谱分析。 2. 频谱分析的方法及设备 信号的频谱可分为幅值谱、相位谱、功率谱、对数谱等等。对信号作频谱分析的设备主要是频谱分析仪,它把信号按数学关系作为频率的函数显示出来,其工作方式有模拟式和数字式二种。模拟式频谱分析仪以模拟滤波器为基础,从信号中选出各个频率成分的量值;数字式频谱分析仪以数字滤波器或快速傅立叶变换为基础,实现信号的时—频关系转换分析。 傅立叶变换是信号频谱分析中常用的一个工具,它把一些复杂的信号分解为无穷多个相互之间具有一定关系的正弦信号之和,并通过对各个正弦信号的研究来了解复杂信号的频率成分和幅值。 信号频谱分析是采用傅立叶变换将时域信号x(t)变换为频域信号X(f),从而帮助人们从另一个角度来了解信号的特征。时域信号x(t)的傅氏变换为: 式中X(f)为信号的频域表示,x(t)为信号的时域表示,f 为频率。 3. 周期信号的频谱分析 周期信号是经过一定时间可以重复出现的信号,满足条件: dt e t x f X ft j ?+∞ ∞--=π2)()(

相关主题