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 提供了丰富的频谱分析函数和命令,通过这些工具我们可以快速、准确地进行频谱分析,并获取有价值的信息。
二、常用的频谱分析命令1. fftfft 是 matlab 中最常用的频谱分析命令之一。
它可以将时域信号转换为频域信号,通过计算信号的傅立叶变换来获取信号的频谱信息。
其基本语法为:Y = fft(X),其中 X 表示输入的时域信号,Y 表示输出的频域信号。
对于一个长度为 N 的输入信号,fft 命令将返回一个长度为 N 的复数数组,其中包含了信号在频域上的幅度和相位信息。
我们可以进一步对这些复数进行振幅谱和相位谱的分析,以获取更详细的频谱特征。
2. periodogramperiodogram 是用于计算信号功率谱密度(PSD)的命令。
它可以帮助我们分析信号在频域上的能量分布情况,从而了解信号的频率成分和能量分布情况。
其基本语法为:Pxx = periodogram(X),其中 X 表示输入的信号。
通过 periodogram 命令,我们可以得到信号在不同频率上的功率谱密度估计值,以及相应的频率坐标。
这些信息对于分析信号的频谱特性非常有帮助,可以用于识别信号的主要频率成分和频率分布规律。
3. spectrogramspectrogram 命令用于计算信号的短时傅立叶变换,并绘制信号的时频谱图像。
它可以帮助我们观察信号在时间和频率上的变化规律,从而发现信号的时变特性和频率变化趋势。
其基本语法为:S = spectrogram(X),其中 X 表示输入的信号。
通过 spectrogram 命令,我们可以得到信号的时频谱图像,其中横轴表示时间,纵轴表示频率,颜色表示信号强度。
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实验报告
仿真程序:
I. 傅里叶正变换的m函数
II. 傅里叶反变换的m函数
图像:
正变换图像:
反变换图像:
二、能量信号的能量谱密度仿真
【例二】(矩形脉冲的能量谱密度) 宽度为 的矩形脉冲的表达式为
g(t)=
其能量谱密度为
Eg(f)= =
参考仿真程序:
图像:
图像:
三、信号通过线性系统
若线性系统的输入是x(t),输出是y(t),则输出与输入的关系可以用卷积来描述y(t)= (式4),其中h(t)是系统的单位冲激相应。
在离散时间和截短的情况下,式4对应到离散卷积
仿真中更为简便的做法是借助频域关系来实现滤波
Y(y)=H(f)X(f)
【例三】(矩形脉冲通过巴特沃斯低通滤波器) 将一个宽为 =1ms的矩形脉冲通过一个3dB带宽为500Hz的6阶巴特沃思滤波器。矩形脉冲的主瓣带宽为1khz。仿真中设置的时间分辨率为1/32ms,频谱分辨率为1/64khz,抽样率为fs=32khz,总观察时间为T=64ms。参考仿真程序:图像:心得体会:
通过此次仿真实验实验中,我学会了如何使用MATLAB建立脚本文件实现函数之间的调用
也学到了通信原理中周期函数的频谱使用MATLAB仿真实现,收获了傅里叶正变换与傅里叶反变换图像十分清晰可见,有助于我对傅里叶变换更加深入地学习。有信号能量密度的仿真图像可知傅里叶反变换与傅里叶正变换是不同的。信号通过线性系统是傅里叶正变换为不规则的频谱,傅里叶反变换时为规则的矩形谱。不管怎么样自己动手做出来的收获就是不一样。
一、周期信号的频谱仿真
虽然Matlab中有许多现成的频域分析工具,如fft、ifft等,但对通信原理的学习者来说,直接进行傅里叶变换更为直观。为此,我们用Matlab提供的函数为基础,编制了两个m函数t2f.m及f2t.m。t2f是傅里叶正变换,对应
用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执⾏结果如下:。
实验2 用MATLAB进行信号频谱分析 2
实验报告通信工程 1101学号:********* 姓名:李*实验2 用MATLAB 进行信号频谱分析一、实验目的㈠ 初步掌握MATLAB 产生常用离散时间信号的编程方法。
㈡ 学习编写简单的FFT 算法程序,对离散信号进行幅频谱分析。
㈢ 观察离散时间信号频谱的特点。
二、实验原理㈠ 常用的离散时间信号在 MATLAB 语言主要是研究离散信号的。
常用的离散信号有: 1.单位取样序列⎩⎨⎧≠==0001)(n n n δ2.单位阶跃序列⎩⎨⎧<≥=001)(n n n u3.实指数序列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.单位取样序列⎩⎨⎧≠==δ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如要产生 ⎪⎩⎪⎨⎧≤<<=≤≤=-δ20210100)(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.单位阶跃序列⎩⎨⎧<≥=001)(n n n u这一函数可利用MATLAB 的ones 函数实现: x=ones(1,N);还可借助于关系操作符“>=”来实现。
MATLAB自相关编写及周期函数分析
MATLAB自相关编写及周期函数分析自相关是一种描述信号之间相似性的统计方法,主要用于分析时间序列数据。
在MATLAB中,可以使用`xcorr`函数来计算自相关。
周期函数是一种以固定时间间隔重复的函数,可以通过分析函数的振幅、相位和频率来研究其周期性。
下面我将介绍如何在MATLAB中编写自相关程序,并进行周期函数的分析。
首先,我们来编写一个自相关的程序。
考虑一个包含2个正弦波的信号,我们可以使用`sin`函数生成这个信号。
程序的步骤如下:1.定义一个时间向量t,表示信号的采样时间点。
例如,可以设置t 从0到10,采样间隔为0.01```t=0:0.01:10;```2. 定义两个正弦波信号,分别表示频率为2Hz和5Hz的信号。
可以使用`sin`函数生成这些信号。
```x1 = sin(2*pi*2*t);x2 = sin(2*pi*5*t);```3.将这两个信号相加,得到包含两个正弦波的信号。
```x=x1+x2;```4. 使用`xcorr`函数计算信号的自相关。
```[R, lags] = xcorr(x);```其中,`R`表示自相关系数,`lags`表示时间延迟。
接下来,我们将进行周期函数的分析。
考虑一个三角波函数,其周期为T,可以使用以下方式来表示:```t=0:0.01:10;T=2;f = sawtooth(2*pi/T*t);plot(t, f);```这段代码中,`sawtooth`函数用于生成三角波形,`plot`函数用于绘制信号。
为了了解周期函数的频域特性,我们可以使用傅里叶变换来获得其频谱。
在MATLAB中,可以使用`fft`函数进行快速傅里叶变换,并使用`abs`函数取绝对值得到频谱幅值。
代码如下:```Fs=100;%采样率N = length(f); % 信号长度frequencies = 0:Fs/N:Fs/2; % 频率向量transformed = fft(f); % 快速傅里叶变换amplitude = abs(transformed(1:N/2+1)); % 幅值谱plot(frequencies, amplitude);```这段代码中,`Fs`表示采样率,`N`表示信号长度,`frequencies`表示频率向量,`transformed`表示傅里叶变换结果,`amplitude`表示频谱幅值。
matlab fft谱分析实验报告
matlab fft谱分析实验报告Matlab FFT谱分析实验报告引言谱分析是一种常用的信号处理技术,用于研究信号的频率成分和能量分布。
傅里叶变换是一种常见的谱分析方法,而Matlab中的FFT函数则是实现傅里叶变换的强大工具。
本实验旨在通过使用Matlab中的FFT函数对不同类型的信号进行谱分析,探索其在实际应用中的作用和价值。
实验方法1. 生成信号首先,我们使用Matlab中的函数生成几种不同类型的信号,包括正弦信号、方波信号和噪声信号。
通过调整信号的频率、幅度和噪声水平,我们可以模拟不同的实际场景。
2. 调用FFT函数接下来,我们使用Matlab中的FFT函数对生成的信号进行频谱分析。
FFT函数将信号从时域转换到频域,提供了信号在不同频率上的能量分布情况。
3. 绘制频谱图通过调用Matlab中的绘图函数,我们可以将FFT函数输出的频谱数据可视化为频谱图。
频谱图通常以频率为横轴,能量或幅度为纵轴,展示了信号在不同频率上的能量分布情况。
实验结果1. 正弦信号的频谱分析我们首先对一个频率为50Hz、幅度为1的正弦信号进行频谱分析。
结果显示,该信号在50Hz附近有一个明显的峰值,表示信号主要由50Hz频率成分组成。
2. 方波信号的频谱分析接下来,我们对一个频率为10Hz、幅度为1的方波信号进行频谱分析。
由于方波信号包含丰富的谐波成分,频谱图中出现了多个峰值,每个峰值对应一个谐波成分。
3. 噪声信号的频谱分析最后,我们对一个包含高斯噪声的信号进行频谱分析。
噪声信号的频谱图呈现出平坦的能量分布,没有明显的峰值。
这说明噪声信号在各个频率上都有一定的能量分布,没有明显的频率成分。
讨论与分析通过对不同类型信号的频谱分析,我们可以得出以下结论:1. 正弦信号的频谱图呈现出一个明显的峰值,表示信号主要由该频率成分组成。
这对于识别和分析周期性信号非常有用。
2. 方波信号的频谱图呈现出多个峰值,每个峰值对应一个谐波成分。
matlab周期方波信号解析
matlab 周期方波信号(一) 周期离散方波信号频域分析与周期模拟信号一样,周期离散信号同样可以展开成傅里叶级数形式,并得到离散傅里叶级数(DFS )X (kΩ)=1N∑x (n )e −jkΩn k =0,1,2,…,N −1 N 2n=−N 2上式可以看成周期离散信号x(n)的离散傅里叶级数展开。
x (n )=∑X (kΩ)e jkΩn N−1k=0上式是DFS 的反变换,记作IDFS 并且称X(kΩ)与x(n)构成一对离散傅里叶级数变换对。
(以上两式中Ω=2π/N )在MTALAB 中,DFS 通过建立周期延拓函数语句实现:function Xk=DFS(n,x,N) if N>length(x) n=0:N -1;x=[x zeros(1,N -length(x))]; end k=0:N -1;WN=exp(-j*2*pi/N); nk=n'*k;WNnk=WN.^nk; Xk=x*WNnk; end建立一个离散非周期方波信号x (n )=R N (n )={1,0≤n ≤N −10,其他R 4(n )通过周期延拓后所得的周期序列利用DFS 计算实现代码如下:clear all;close all;clc; n=0:3;x=ones(1,4); X=fft(x,1024); Xk1=DFS(n,x,4); Xk2=DFS(n,x,8);figure(1);plot((-1023:2048)/2048*8,[abs(X) abs(X) abs(X)],'--');hold on; stem(-4:7,[abs(Xk1) abs(Xk1) abs(Xk1)],'LineWidth',2);grid; figure(2);plot((-1023:2048)/2048*16,[abs(X) abs(X) abs(X)],'--');hold on; stem(-8:15,[abs(Xk2) abs(Xk2) abs(Xk2)],'LineWidth',2);grid; set(gcf,'color','w');运行后得到的是分别以4和8为周期延拓后的R 4(n )频谱:即第一幅图表示的是周期序列 x (n )=1 −∞<n <+∞ 的频谱,第二幅图表示的是周期序列x (n )={1,4k ≤n ≤4+4k0,4k −4<n <4k的频谱。
如何在Matlab中进行信号频谱分析
如何在Matlab中进行信号频谱分析一、引言信号频谱分析是一种重要的信号处理技术,它可以帮助我们理解信号的频率特性和频谱分布。
在Matlab中,有多种方法可以用来进行信号频谱分析,本文将介绍其中几种常用的方法。
二、时域分析1. 快速傅里叶变换(FFT)快速傅里叶变换(FFT)是最常用的频谱分析工具之一。
在Matlab中,可以使用fft函数对信号进行FFT分析。
首先,将信号数据传入fft函数,然后对结果进行处理,得到信号的频谱图。
通过分析频谱图,我们可以了解信号的频率成分和频谱分布。
2. 窗函数窗函数可以帮助我们减小信号分析过程中的泄漏效应。
在Matlab中,可以使用hamming、hanning等函数生成窗函数。
通过将窗函数乘以信号数据,可以减小频谱中的泄漏效应,得到更准确的频谱图。
三、频域分析1. 功率谱密度(PSD)估计功率谱密度(PSD)估计是一种常见的频域分析方法,用来估计信号在不同频率上的功率分布。
在Matlab中,可以使用pwelch函数进行PSD估计。
pwelch函数需要输入信号数据和采样频率,然后输出信号的功率谱密度图。
2. 自相关函数自相关函数可以帮助我们了解信号的周期性。
在Matlab中,可以使用xcorr函数计算信号的自相关函数。
xcorr函数需要输入信号数据,然后输出信号的自相关函数图。
四、频谱图绘制与分析在进行信号频谱分析后,我们需要将分析结果进行可视化。
在Matlab中,可以使用plot函数绘制频谱图。
通过观察频谱图,我们可以进一步分析信号的频率成分和频谱特性。
可以注意以下几点:1. 频谱图的横轴表示频率,纵轴表示幅度。
通过观察频谱图的峰值位置和幅度大小,可以了解信号中频率成分的分布情况。
2. 根据信号的特点,选择合适的分析方法和参数。
不同的信号可能需要采用不同的分析方法和参数,才能得到准确的频谱分布。
五、实例分析为了更好地理解如何在Matlab中进行信号频谱分析,以下是一个简单的实例分析。
应用MATLAB实现周期信号和非周期信号频谱仿真课程设计
设计题目:应用MATLAB实现周期信号和非周期信号频谱仿真1 课程设计目的通过课程设计,提高学生综合运用所学知识来解决实际问题、查阅文献资料、及进行科学实验或技术设计的能力。
学会用MATLAB 语言编写信号与系统及数字信号处理的仿真程序;认真分析每个题目的具体要求;上机前初步编好程序,上机时认真调试程序;增加学生对仿真软件MATLAB的感性认识,熟悉MATLAB软件平台的使用和MATLAB编程方法及常用语句;了解MATLAB的编程方法和特点;加深理解采样与重构的概念,掌握连续系统频率响应概念,掌握利用MATLAB分析系统频率响应的方法和掌握利用MATLAB实现连续信号采用与重构的方法初步掌握线性系统的设计方法,培养独立工作能力。
培养学生正确的设计思想,理论联系实际的科学态度,严肃认真、实事求是的科学态度和勇于探索的创新精神。
培养学生综合运用所学信号与系统及数字信号处理的知识,分析和解决工程技术问题的能力。
为毕业设计打下基础。
2 设计原理2.1 MATLAB软件说明MATLAB(Matrix Laboratory)是美国Math Works公司产品,Matrix Laboratory意为“矩阵实验室”,最初的MATLAB只是一个数学计算工具。
但现在的MATLAB已经远不仅仅是一个“矩阵实验室”,它已经成为一个集概念设计、算法开发、建模仿真,实时实现于一体的集成环境,它拥有许多衍生子集工具。
MATLAB现已被广泛于数学、通信、信号处理、自动控制、神经网络、图形处理等许多不同学科的研究中。
MATLAB特点:(1)此高级语言可用于技术计算(2)此开发环境可对代码、文件和数据进行管理(3)交互式工具可以按迭代的方式探查、设计及求解问题(4)数学函数可用于线性代数、统计、傅立叶分析、筛选、优化以及数积分等(5)二维和三维图形函数可用于可视化数据(6)各种工具可用于构建自定义的图形用户界面(7)各种函数可将基于MATLAB 的算法与外部应用程序和语言(如 C 、C++、Fortran 、Java 、COM 以及 Microsoft Excel )集成 (8)不支持大写输入,内核仅仅支持小写2.2 周期信号的频谱分析——傅里叶级数FS(1) 任何满足狄义赫利条件周期函数都可展成傅里叶级数。
实验三 周期信号的傅里叶级数分析及MATLAB实现
实验三周期信号的傅里叶级数分析及MATLAB实现一、实验目的:1.利用MATLAB实现周期信号的分解与合成,并图示仿真结果;2.用MATLAB实现周期信号的频谱,画图观察和分析周期信号的频谱;3.通过MATLAB对周期信号频谱的仿真,进一步加深对周期信号频谱理论知识的理解。
二、实验内容9.1(a):程序:display('Please input the value of m(傅里叶级数展开项数)');m=input('m=');t=-3*pi:0.01:3*pi;n=round(length(t)/4);f=cos(t).*(heaviside(t+2.5*pi)-heaviside(t+1.5*pi)+heaviside(t+0.5*pi)-heaviside(t-0.5 *pi)+heaviside(t-1.5*pi)-heaviside(t-2.5*pi));y=zeros(m+1,max(size(t)));y(m+1,:)=f';figure(1);plot(t/pi,y(m+1,:));grid;axis([-3 3 -1 1.5]);title('半波余弦');xlabel('单位:pi','Fontsize',8);x=zeros(size(t));kk='1';syms tx nT=2*pi;fx=sym('cos(tx)');Nn=30;An=zeros(m+1,1);Bn=zeros(m+1,1);a0=2*int(fx,tx,-T/4,T/4)/Tan=2*int(fx*cos(2*pi*(n+eps/2)*tx/T),tx,-T/4,T/4)/Tbn=2*int(fx*sin(2*pi*(n+eps/2)*tx/T),tx,-T/4,T/4)/TAn(1)=double(vpa(a0,Nn));An(2)=0.5;for k=2:mAn(k+1)=double(vpa(subs(an,n,k),Nn));Bn(k+1)=double(vpa(subs(bn,n,k),Nn));endy(1,:)=1/pi;y(2,:)=1/pi+1/2*cos(t);x=1/pi+1/2*cos(t);for k=2:6pause;x=x+(-2*cos(pi*k/2)/pi/(k^2-1))*cos(k*t);y((k+1),:)=x;plot(t/pi,y(m+1,:));hold on;plot(t/pi,y((k+1),:));hold off;grid;axis([-3 3 -1 1.5]);title(strcat('第',kk,'次谐波叠加'));xlabel('单位:pi','Fontsize',8);kk=strcat(kk,'`',num2str(k));endpause;plot(t/pi,y(m+1,:));grid;axis([-3 3 -1 1.5]);title('谐波叠加');xlabel('单位:pi','Fontsize',8);a0 =2/pian =162259276829213363391578010288128*(-sin(9007199254740991/1801439850948 1984*pi)*cos(1/2*pi*n)+cos(9007199254740991/18014398509481984*pi)*sin(1/2* pi*n))/(-81129638414606681695789005144063+18014398509481984*n+81129638 414606681695789005144064*n^2)/pibn =9.3:display('Please input the value of T,tao and Nf'); T=input('T=');tao=input('tao=');Nf=input('Nf=');syms x n kNn=32;An=zeros(Nf+1,1);Bn=zeros(Nf+1,1);f=x/tao;a0=2*int(f,x,0,tao)/T;an=2*int(f*cos(n*x),x,0,tao)/T;bn=2*int(f*sin(n*x),x,0,tao)/T;An(1)=double(vpa(a0,Nn));for k=1:NfAn(k+1)=double(vpa(subs(an,n,k),Nn));Bn(k+1)=double(vpa(subs(bn,n,k),Nn));endcn=sqrt(An.*An+Bn.*Bn);m=0:Nf;stem(m,cn);hold on;plot(m,cn);xlabel('幅度谱\omega','Fontsize',8)Please input the value of T,tao and NfT=10tao=2Nf=30Please input the value of T,tao and NfT=50tao=2Nf=30Please input the value of T,tao and NfT=100tao=2Nf=30Please input the value of T,tao and Nf T=10tao=1Nf=30Please input the value of T,tao and Nf T=10tao=3Nf=30Please input the value of T,tao and Nf T=10tao=5Nf=30实验小结:频带宽度于时域宽度成反比,时域宽度越大频带越窄,周期越大频谱越密。
第7章周期信号频域分析及MATLAB实现-文档资料
7.2.3 双边频谱
周期信号可以分解成一系列虚指数信号之和,并可以求得 相应的傅里叶系数
f( t) ቤተ መጻሕፍቲ ባይዱFe n
n
jn t
a a a t t 0 n jb n jn n jb n jn e e 2 n 2 2 1 1 j 1 F e a j b n A n n n
a 0 A 0 .2 5 0 F 0 2
A5 ≈ 0.09, A10 ≈ 0.063
A4 ≈ 0, A9 ≈ 0.05,
F 0 . 2 2 5 , F 0 . 1 5 9 , F 0 . 0 7 5 , F 0 1 2 3 4 F 0 . 0 4 5 , F 0 . 0 5 3 5 6
6
7.1 周期信号的傅里叶级数与信号的频谱
西华师范大学 物理与电子信息学院
2. 连续时间周期信号的傅里叶级数近似
用有限项的傅里叶级数求和来逼近原函数
f(t)的截断傅里叶级数表示
3. 符号积分函数int()求截断傅里叶级数及傅里叶表示 intf=int(f,v,a,b) 给出符号表达式 f 对指定变量v的定积分。
2 T
7-1a
2
7.1 周期信号的傅里叶级数与信号的频谱
西华师范大学 物理与电子信息学院
傅里叶系数:
2 2 a f() td t f() td t 0 0 T T 1
T 1
T 1 2 T 1 1 2
2 T 1 a f ()c t o sn td t n 0 T 1
N 1
3. Matlab命令
DTFS:
a
1 fft ( x ) N
(7.16) (7.17)
MATLAB信号频谱分析FFT详解
MATLAB信号频谱分析FFT详解做OFDM通信少不了频谱分析,基带信号DA后的频谱,以及基带数字上变频后的DA信号都要频谱分析。
我觉得其实做任何工程都是这样,先规定实施方案,然后仿真成功,再实际开发,不过也可以一边开发,一边仿真,开发结果要与仿真预期结果一致。
所以分析与仿真工具MATLAB就很重要了,既可以仿真,又可以通过示波器或其他方法把实际信号采下来分析。
matlab使用FFT函数分析信号频谱一般我使用的FFT分析频谱流程如下:其中有3个注意的点:1.FFT的结果看的是频谱,所以怎么把横坐标的值从原来的FFT点数0:N-1转换为频率值呢?首先要引出频谱分辨率的概念,即分辨两个不同频率信号的最小间隔,FFT结果相邻点间的间隔。
因为N点FFT对应采样率为fs的序列,其频率分辨率为,其中Ts为采样周期,T为整个序列的时间长度。
有关频率分辨率的就不多说了。
所以我们横坐标转换为:f = (0:length(y)-1)*Fs/length(y);2.直接FFT的结果里怎么又多余的信号频率(镜像频率)图2?DFT具有对称性,因为其是周期序列DFS在一个周期内的点,时域序列是有限长实序列,DFT的结果的实部周期偶对称,虚部周期奇对称,也就是模值周期偶对称,相位周期奇对称。
其实从奈奎斯特定律也可以看出,fs>=2f,fs的采样率最多也就显示fs/2的真实频率(感性理解哈哈)。
所以程序处理方式就是周期延拓后取-N/2:N/2-1.用到函数fftshift(),结果如图3.如注释所述:%该变换还会生成尖峰的镜像副本,该副本对应于信号的负频率。
%为了更好地以可视化方式呈现周期性,可以使用 fftshift 函数对变换执行以零为中心的循环平移。
其实这和设计数字滤波器IIR与FIR也一样,采样率为fs的信号,设计的滤波器的通带阻代也限制在0-fs/2内。
3.程序中的信号幅度值都是1,500点的FFT画出来的幅度值怎么变成了250,应该是1吧?是的,应该是1。
matlabFFT频谱分析
matlabFFT频谱分析FFT做频谱分析,学过信号的⼤概都知道,也都提过采样定理,采样时间等做频谱分析的条件,但是时间⼀长,难免忘了,⽽且没实际做过,认知总是不直观。
前⼏天做点实验,犯⼀些错误,才明⽩这些条件的作⽤。
具体分析:clc;fs=100;t=[0:1/fs:100];N=length(t)-1;%减1使N为偶数%频率分辨率F=1/t=fs/N% p=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*sin(2.2*2*pi*t);%上⾯模拟对信号进⾏采样,得到采样数据p,下⾯对p进⾏频谱分析p=5*sin(0.48*2*pi*t)+3*sin(2.4*2*pi*t);figure(1);plot(t,p);grid on;title('信号 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 on;title('频谱图(理想值:[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=100;t=[0:1/fs:2];信号:频谱:数据长度再⼩,采样时间连⼀个周期都不够,频谱分析就会有问题了:会有直流分量:fs=100;t=[0:1/fs:1];信号:频谱如果不满⾜采样定理,采样频率⾄少是信号的2倍:频谱分析就完全不对了fs=2; 采样率才2Hz, ⽽信号p 中有 2.4Hz的分量,所以⾃然不对了。
基于MATLAB的频谱分析与信号去噪
基于MATLAB的频谱分析与信号去噪频谱分析和信号去噪是数字信号处理中的两个重要方面。
频谱分析可以帮助我们了解信号的频率成分,而信号去噪则可以提高信号的质量和可靠性。
MATLAB是一款功能强大的工具,可以用于频谱分析和信号去噪的研究和实现。
频谱分析是将信号在频域上进行分析的过程。
频谱分析可以帮助我们了解信号的频率成分和能量分布情况。
在MATLAB中,频谱分析常用的方法包括傅里叶变换、小波变换和自相关分析等。
傅里叶变换是频谱分析中最常用的方法之一、MATLAB中的fft函数可以实现快速傅里叶变换,该函数可以计算离散信号的频谱。
通过对信号的频谱进行可视化,我们可以直观地了解信号的频率成分。
在MATLAB中,我们可以使用plot函数和stem函数将信号的频谱进行绘制。
小波变换是一种时频分析方法,它可以将信号在时域和频域上进行局部分析。
MATLAB中的cwt和wavedec函数可以实现小波变换。
小波变换可以帮助我们定位信号中的非平稳特征,并了解不同尺度上的频率成分。
自相关分析可以用于估计信号中的周期性成分。
在MATLAB中,可以使用xcorr函数进行自相关分析。
通过自相关分析,我们可以判断信号中是否存在周期性成分,并估计出信号的周期。
信号去噪是数字信号处理中一个重要的应用领域。
信号去噪旨在减少信号中的噪声成分,提高信号的质量和可靠性。
在MATLAB中,信号去噪常用的方法包括滤波法、小波阈值法和奇异值分解法等。
滤波法是信号去噪中最常用的方法之一、MATLAB中的filter函数可以用于设计和实现不同类型的滤波器。
通过选择合适的滤波器类型和参数,可以将信号中的噪声成分去除。
小波阈值法是一种基于小波变换的信号去噪方法。
MATLAB中的wdenoise函数可以实现小波阈值法。
小波阈值法通过对信号小波系数进行阈值处理,将小于一些阈值的小波系数置为零,从而去除信号中的噪声成分。
奇异值分解法是一种基于矩阵分解的信号去噪方法。
MATLAB周期信号的频谱分析解读
MATLAB周期信号的频谱分析解读频谱分析是一种用于研究信号在频域上的特性的方法,对于周期信号的频谱分析尤为重要。
周期信号是在时间上有规律地重复出现的信号,例如正弦信号和方波信号。
在MATLAB中,我们可以使用傅里叶变换来进行周期信号的频谱分析。
首先,我们需要了解一些基本的概念。
频谱表示一个信号在不同频率上的能量分布,其单位通常是幅度或功率。
频谱分析可以通过计算信号的傅里叶变换来获得,傅里叶变换可以将一个信号从时间域转换到频域。
首先,我们需要生成一个周期信号。
例如,我们可以使用sin函数生成一个具有特定频率和幅度的正弦信号。
下面的代码生成了一个频率为f 的正弦信号:```matlabf=1;%信号的频率t=0:0.01:10;%时间范围x = sin(2*pi*f*t); % 生成正弦信号```接下来,我们可以使用fft函数进行信号的傅里叶变换。
傅里叶变换将信号从时域转换到频域,得到的结果是一个复数向量,其中包含了信号在不同频率上的能量信息。
我们可以使用abs函数计算傅里叶变换结果的幅度,得到频谱图。
```matlabfs = 100; % 信号的采样频率N = length(x); % 信号的长度X = fft(x); % 进行傅里叶变换X = abs(X/N); % 计算频域幅度f = (0:N-1)*(fs/N); % 计算频率轴plot(f,X) % 绘制频谱图```在上述代码中,变量fs表示信号的采样频率,N表示信号的长度。
我们需要将傅里叶变换结果除以N,以归一化频域幅度。
在频谱图中,横轴表示频率,纵轴表示信号在相应频率上的幅度。
频谱图的形状和峰值反映了信号在不同频率上的能量分布情况。
对于上述代码生成的正弦信号,频谱图应该呈现出一个峰值在f处的单个峰。
然而,由于傅里叶变换的性质,频谱图通常具有对称性。
这是由于信号的周期性导致的,正弦信号的频谱图在负频率处也有一个对称的峰。
为了更好地展示频谱图,我们可以使用fftshift函数将频谱图进行平移,将负频率部分移到频谱图的中心。
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进行周期信号频谱分析
源程序pinpu.m演示说明
三、典型周期信号频谱图
1 周期方波脉冲频谱 如ex0804.m所示 2 周期锯齿波脉冲频谱 如ex0805.m所示
相关算法提示
1)采用符号积分int()求一个周期内相 关定积分,从而求得三角形式的傅立叶 级数的各系数的符号表达式。 2)用循环语句for…end求解各次谐波的幅 值的数值解。 3)将各次谐波相加即为周期信号f(t)截断 形式的傅立叶级数表示。
源程序CTFS.m演示说明
二、matlab绘制连续 周期信号的频谱图
源程序源程序pinpumpinpum演示说明演示说明三典型周期信号频谱图三典型周期信号频谱图周期方波脉冲频谱如ex0804m所示周期锯齿波脉冲频谱如ex0805m所示
十六章 周期信号频谱 分析—CTFS的Matlab 实现
一、连续周期信号的 傅立叶级数的matlab 实现
1 背景知识介绍:
连续时间信号的傅立叶级数--CTFS
2 用matlab实现周期信号傅立叶 级数的分解和综合
我们以周期矩形脉冲信号为例来进行说明编 程过程。
f (t ) E
T1
O 2 2T1t程序构成1)编写子函数表示出原点处一个周期内 的矩形脉冲函数的符号表达式。 2)编写子函数绘制出原点处一个周期内 的矩形脉冲函数波形,以便于和分解后 的傅立叶级数对照。 3)编写求解傅立叶级数各个系数值及绘制 谐波叠加图形的主函数。
我们仍以周期矩形脉冲信号为例,说 明用matlab绘制频谱图的过程。
实现思路:
先求出三角形式的傅立叶级数的系数 an ,b 再通过公式
n
1 Fn ( an jbn ) 2
求出指数形式的谱系数,从而得到幅度频 谱图。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SAWTOOTH(T,WIDTH) generates a modified triangle wave where WIDTH, a scalar parameter between 0 and 1…
MATLAB在信号与系统课程中的应用
EE of BUPT
1
t=-10:0.01:10;
0.8 0.6
2
n1
c0 cncosn1t cosn sinn1t sinn
n1
a0 : 直流,平均值
n 1 基波 (fundament al signal)
有的文献上也称为1 次谐波
n
n次谐波 (harmonic signal)
MATLAB在信号与系统课程中的应用
n1t
cos
m1t
dt
T
,
2
0,
mn mn
T 2 T 2
sin
n1t
sin
m1t
dt
T , 2 0,
mn mn
MATLAB在信号与系统课程中的应用
EE of BUPT
级数形式
周期信号 f t ,周期为T1 , 基波角频率为1
f (t)cos
n1t
dt
2
bn T1
t0 T1 t0
f (t)sin
n1t
dt
MATLAB在信号与系统课程中的应用
EE of BUPT
余弦形式
f (t ) a0 an cos n1t bn sin n1t 1 n1
f (t ) c0 cn cos n1t n
MATLAB在信号与系统课程中的应用
EE of BUPT
7.3 指数函数形式的傅里叶级数
指数函数乘除法方便
1.复指数正交函数集 ejn1t n 0,1,2
2.级数形式
f (t ) F (n1 ) ejn1t
4
3.系数
n
利用复变函数的正交特性
F (n1 )
在满足狄氏条件时,可展成
2
T1
f (t ) a0 an cosn1t bn sinn1t
1
n1
称为三角形式的傅里叶级数,其系数
直流分量 余弦分量的幅度 正弦分量的幅度
1
a0 T1
t0 T1 f (t ) d t
t0
an
2 T1
t0 T1 t0
MATLAB在信号与系统课程中的应用
EE of BUPT
结果显示
1.5
1
1
0.5
0
-0.5
-1
-1.5
0
1
2
3
4
5
6
7
MATLAB在信号与系统课程中的应用
EE of BUPT
line 和text函数
LINE(X,Y) adds the line in vectors X and Y to the current axes.
waterfall
waterfall(t(1:halft),[1:(K+1)/2],y(:,1:halft));
1.5
1
0.5
0 15
10
4
3
5
2
1
00
MATLAB在信号与系统课程中的应用
EE of BUPT
例7-2
求周期锯齿波的三角函数形式的傅里叶级数展开式。
f (t)
A t
T1 t T1
If X and Y are matrices the same size, one line per column is added.
TEXT(X,Y,'string') adds the text in the quotes to location (X,Y) on the current axes, where (X,Y) is in units from the current plot. If X and Y are vectors, TEXT writes the text at all locations given.
f
t
0
A π
sin1t
A 2π
sin
21t
直流
基波
谐波
编程综合锯齿波信号
上例中取T1 2, A 1,时间t取0,5
t=0:0.01:5;
T=2;A=1;
w1=2*pi/T;
f=zeros(1,length(t));
w1为基波角频率,增加谐波信号
bn
A nπ
(1)n1
line([1,2,3],[4,5,7]) text(2.1,4.8,'here')
7
6
5 here
4
1
1.5
2
2.5
3
MATLAB在信号与系统课程中的应用
EE of BUPT
gibbs = 0.0892
mesh
1.5
1
0.5
0 15
10
4
3
5
2
1
00
MATLAB在信号与系统课程中的应用
EE of BUPT
n 1, 2, 3
for n=1:N
f=f+A*power(-1,n+1)/n/pi*sin(n*w1*t);
end
MATLAB在信号与系统课程中的应用
EE of BUPT
生成锯齿波信号
t1=0:0.01:0.99; y1=0.5*t1; y2=y1-0.5; y=[y1 y2 y1 y2 y1]; ty=(0:length(y)-1)*0.01;
MATLAB在信号与系统课程中的应用
EE of BUPT
help pause
PAUSE Wait for user response. PAUSE(n) pauses for n seconds before continuing, where n can also be a fraction. The resolution of the clock is platform specific. Fractional pauses of 0.01 seconds should be supported on most platforms.
EE of BUPT
例7-1 周期矩形脉冲信号的频谱
直流为0 奇函数 余弦项的系数为0,
xt
1
1
2
T
an 1
0
0 2 3 4
t
1
4
bn T
0 1 sin n1tdt
0
2
n
1
cos n1
4
n
n 2,4,6L n 1,3,5L
奇谐函数
xt
4
sin
t
1 sin 3t 3
L
1 sin2k 1 t L
2k 1
,k
1,
2
MATLAB在信号与系统课程中的应用
EE of BUPT
MATLAB实现
% Fourier analysis % square_wave1.m t=0:0.01:2*pi; y=sin(t);y=y*4/pi;plot(t,y);pause y=sin(t)+sin(3*t)/3;y=y*4/pi;plot(t,y);pause y=sin(t)+sin(3*t)/3+sin(5*t)/5+sin(7*t)/7+sin(9*t)/9; y=y*4/pi; plot(t,y);pause
MATLAB在信号与系统课程中的应用
EE of BUPT
绘制三维曲线图
MESH 3-D mesh surface. MESH(X,Y,Z,C) plots the colored parametric mesh defined by four matrix arguments. The view point is specified by VIEW. The axis labels are determined by the range of X, Y and Z, or by the current setting of AXIS. The color scaling is determined by the range of C, or by the current setting of CAXIS. The scaled color values are used as indices into the current COLORMAP.
f t
T1 2
1 A T1
a0 T1
2 T1
2
T1
t
dt
0
2
T1 2
A/2 T1 2
t
an 0
2 bn T1
奇函数
T1
2 T1
2
A T1
t sin
n 1t
dt
2π
1 A
T1
(1)
n1
nπ
周期锯齿波的傅里叶级数展开式为
n 1,2,3
x=x+sin(k*t)/k; y((k+1)/2,:)=x; end MATLAB在信号与y系=统y课*4程/中p的i;应用