matlab自修课程设计报告(matlab实现傅立叶变换)
实验用MATLAB计算傅里叶变换

实验二 用MATLAB 计算傅立叶变换(2课时)一、实验目的1、掌握用MA TLAB 计算DTFT 及系统频率响应的方法。
2、掌握用MA TLAB 计算DFT 和IDFT 的方法。
3、掌握用DFT 计算圆周卷积和线性卷积的方法。
二、实验设备计算机一台,装有MATLAB 软件。
三、实验原理和基本操作1.用MA TLAB 计算DTFT对于序列x (n ),其离散时间傅立叶变换(DTFT )定义为:∑∞-∞=-=n n j e n x j X ωω)()( (1)序列的傅立叶变换(DTFT )在频域是连续的,并且以ω=2π为周期。
因此只需要知道jw X(e )的一个周期,即ω=[0,2π],或[-π,π]。
就可以分析序列的频谱。
用MA TLAB 计算DTFT ,必须在-π≤ω≤π范围内,把ω用很密的、长度很长的向量来近似,该向量中各个值可用下式表示: w=k*dw=k*K π2 (2) 其中:d ω=Kπ2 称为频率分辨率。
它表示把数字频率的范围2π均分成K 份后,每一份的大小,k 是表示频率序数的整数向量,简称为频序向量,它的取值可以有几种方法:通常在DTFT 中,频率取-π≤ω<л的范围,当K 为偶数时,取 k 12,,1,0,1,,12,2--+--=K K K 如果K 为奇数,则取 k 5.02,,1,0,1,,5.02--+-=K K 可以为奇偶两种情况综合出一个共同的确定频序向量k 的公式; k=12K -⎢⎥-⎢⎥⎣⎦ :12K -⎢⎥⎢⎥⎣⎦(3) 上式中⎢⎥⎣⎦表示向下取整。
在MA TLAB 中的向下取整函数为floor ,floor (x )的作用是把x 向下(向-∞方向)取整,所以与(3)式等价的MATLAB 语句为 k ))5.02(:)5.02((-+-=K K floor (4) 给定了输入序列(包括序列x 及其位置向量n ),又设定了频率分辨率d ω及频序向量k ,则DTFT 的计算式(1)可以用一个向量与矩阵相乘的运算来实现。
matlab自行编写fft傅里叶变换

傅里叶变换(Fourier Transform)是信号处理中的重要数学工具,它可以将一个信号从时域转换到频域。
在数字信号处理领域中,傅里叶变换被广泛应用于频谱分析、滤波、频谱估计等方面。
MATLAB作为一个功能强大的数学软件,自带了丰富的信号处理工具箱,可以用于实现傅里叶变换。
在MATLAB中,自行编写FFT(Fast Fourier Transform)的过程需要以下几个步骤:1. 确定输入信号我们首先需要确定输入信号,可以是任意时间序列数据,例如声音信号、振动信号、光学信号等。
假设我们有一个长度为N的信号x,即x = [x[0], x[1], ..., x[N-1]]。
2. 生成频率向量在进行傅里叶变换之前,我们需要生成一个频率向量f,用于表示频域中的频率范围。
频率向量的长度为N,且频率范围为[0, Fs),其中Fs 为输入信号的采样频率。
3. 实现FFT算法FFT算法是一种高效的离散傅里叶变换算法,它可以快速计算出输入信号的频域表示。
在MATLAB中,我们可以使用fft函数来实现FFT 算法,其调用方式为X = fft(x)。
其中X为输入信号x的频域表示。
4. 计算频谱通过FFT算法得到的频域表示X是一个复数数组,我们可以计算其幅度谱和相位谱。
幅度谱表示频率成分的强弱,可以通过abs(X)得到;相位谱表示不同频率成分之间的相位差,可以通过angle(X)得到。
5. 绘制结果我们可以将输入信号的时域波形和频域表示进行可视化。
在MATLAB 中,我们可以使用plot函数来绘制时域波形或频谱图。
通过以上几个步骤,我们就可以在MATLAB中自行编写FFT傅里叶变换的算法。
通过对信号的时域和频域表示进行分析,我们可以更好地理解信号的特性,从而在实际应用中进行更精确的信号处理和分析。
6. 频谱分析借助自行编写的FFT傅里叶变换算法,我们可以对信号进行频谱分析。
频谱分析是一种非常重要的信号处理技术,可以帮助我们了解信号中所包含的各种频率成分以及它们在信号中的能量分布情况。
matlab自己写傅里叶变换程序

matlab自己写傅里叶变换程序傅里叶变换是一种重要的数学工具,广泛应用于信号处理、图像处理、通信等领域。
它可以将一个信号在频域和时域之间进行转换,帮助我们理解信号的频谱特性。
在本文中,我将介绍如何使用Matlab编写傅里叶变换程序,以及一些相关的应用。
我们需要明确傅里叶变换的定义和公式。
傅里叶变换可以将一个连续时间的信号分解为多个不同频率的正弦和余弦函数的叠加。
在Matlab中,可以使用fft函数进行傅里叶变换。
具体步骤如下:1. 准备信号数据:首先,我们需要准备一个信号数据。
这可以是一个连续时间的信号,也可以是一个离散时间的信号。
可以通过输入一组数据来表示信号。
2. 进行傅里叶变换:使用fft函数对信号进行傅里叶变换。
该函数会返回一个复数数组,表示信号在频域中的幅度和相位信息。
3. 绘制频谱图:使用plot函数将频域信息绘制成频谱图。
这可以帮助我们直观地理解信号的频率分布情况。
4. 反变换:如果需要将傅里叶变换后的频域信号重新转换回时域信号,可以使用ifft函数进行反变换。
除了基本的傅里叶变换,Matlab还提供了一些相关的函数和工具箱,例如快速傅里叶变换(FFT)、离散傅里叶变换(DFT)、傅里叶级数等。
这些工具可以帮助我们更方便地处理和分析信号。
傅里叶变换在信号处理中有着广泛的应用。
例如,我们可以使用傅里叶变换对音频信号进行频谱分析,以便了解音频中各个频率分量的贡献。
另外,傅里叶变换还可以用于图像处理,例如图像压缩和滤波等方面。
总结起来,Matlab提供了丰富的函数和工具箱,可以帮助我们进行傅里叶变换及相关的信号处理任务。
通过编写傅里叶变换程序,我们可以更好地理解信号在频域和时域之间的转换关系,以及信号的频谱特性。
这对于许多科学研究和工程应用都具有重要意义。
连续时间信号傅里叶变换及matlab实现课程设计

连续时间信号傅里叶变换及matlab实现课程设计课程设计:连续时间信号傅里叶变换及MATLAB实现1. 引言- 介绍连续时间信号傅里叶变换的概念和应用领域。
- 简要介绍MATLAB在信号处理中的应用。
2. 连续时间信号傅里叶变换(CTFT)- 讲解连续时间信号傅里叶变换的基本原理。
- 推导连续时间信号傅里叶变换的数学表达式。
- 解释连续时间信号傅里叶变换的几何意义。
3. 连续时间信号傅里叶变换的性质- 介绍连续时间信号傅里叶变换的线性性质、频率平移性质、尺度变换性质等。
- 解释这些性质在实际应用中的意义。
4. 连续时间信号傅里叶变换的计算方法- 讲解连续时间信号傅里叶变换的计算方法,包括积分法和微分法。
- 比较这两种方法的优缺点。
5. MATLAB实现连续时间信号傅里叶变换- 使用MATLAB编写代码实现连续时间信号傅里叶变换。
- 演示如何输入信号、计算傅里叶变换,并绘制频谱图。
- 演示如何利用傅里叶变换进行信号滤波。
6. 实验设计- 设计几个实际的信号处理实验,如语音信号分析、图像处理等。
- 使用MATLAB进行实验,展示连续时间信号傅里叶变换在实际应用中的效果。
7. 结论- 总结连续时间信号傅里叶变换的基本原理和性质。
- 归纳MATLAB实现连续时间信号傅里叶变换的方法。
- 分析实验结果,总结连续时间信号傅里叶变换在信号处理中的应用价值。
8. 参考文献- 提供相关的参考文献,供学生进一步学习和研究。
以上是一种可能的课程设计框架,你可以根据自己的需求和实际情况进行适当的调整和修改。
希望对你有所帮助!。
快速傅里叶变换fft的Matlab实现 实验报告

一、实验目的1在理论学习的基础上,通过本实验加深对快速傅立叶变换的理解;2熟悉并掌握按时间抽取FFT算法的程序;3了解应用FFT进行信号频谱分析过程中可能出现的问题,例如混淆、泄漏、栅栏效应等,以便在实际中正确应用FFT。
二、实验内容1仔细分析教材第六章‘时间抽取法FFT’的算法结构,编制出相应的用FFT 进行信号分析的C语言(或MATLAB语言)程序;用MATLAB语言编写的FFT源程序如下:%%输入数据f、N、T及是否补零clc;clear;f=input('输入信号频率f:');N=input('输入采样点数N:');T=input('输入采样间隔T:');C=input('信号是否补零(补零输入1,不补零输入0):');%补零则输入1,不补则输入0if(C==0)t=0:T:(N-1)*T;x=sin(2*pi*f*t);b=0;e lseb=input('输入补零的个数:');while(log2(N+b)~=fix(log2(N+b)))b=input('输入错误,请重新输入补零的个数:');endt=0:T:(N+b-1)*T;x=sin(2*pi*f*t).*(t<=(N-1)*T);end%%fft算法的实现A=bitrevorder(x);%将序列按二进制倒序N=N+b;M=log2(N);%M为蝶形算法的层数W=exp(-j*2*pi/N);for L=1:1:M%第L层蝶形算法B=2^L/2;%B为每层蝶形算法进行加减运算的两个数的间隔K=N/(2^L);%K为每层蝶形算法中独立模块的个数for k=0:1:K-1for J=0:1:B-1p=J*2^(M-L);%p是W的指数q=A(k*2^L+J+1);%用q来代替运算前面那个数A(k*2^L+J+1)=q+W^p*A(k*2^L+J+B+1);A(k*2^L+J+B+1)=q-W^p*A(k*2^L+J+B+1);endendend%%画模特性的频谱图z=abs(A);%取模z=z./max(z);%归一化hold onsubplot(2,1,1);stem(0:1:N-1,x,'DisplayName','z');title('时域信号');subplot(2,1,2);stem(0:1:N-1,z,'DisplayName','z');title('频谱图');figure(gcf)%画图2用FFT 程序计算有限长度正弦信号()sin(2),0*y t f t t N Tπ=≤<分别在以下情况下所得的DFT 结果并进行分析和讨论:a )信号频率f =50Hz ,采样点数N=32,采样间隔T=0.000625sb )信号频率f =50Hz ,采样点数N=32,采样间隔T=0.005sT=0.0046875sc)信号频率f=50Hz,采样点数N=32,采样间隔051015202530350510152025303505101520253035 e)信号频率f=50Hz,采样点数N=64,采样间隔T=0.000625sg)将c)信号后补32个0,做64点FFT三、实验分析DFT是对有限序列做傅里叶变换后在频域上进行采样,而相对应的时域以频谱上的采样频率的倒数进行周期拓展。
MAtlab-傅里叶变换-实验报告

MAtlab-傅里叶变换-实验报告陕西科技大学实验报告班级信工082 学号16 姓名刘刚实验组别实验日期室温报告日期成绩报告内容:(目的和要求,原理,步骤,数据,计算,小结等)1.求信号的离散时间傅立叶变换并分析其周期性和对称性;给定正弦信号x(t)=2*cos(2*pi*10*t),fs=100HZ,求其DTFT。
(a)代码:f=10;T=1/f;w=-10:0.2:10;t1=0:0.0001:1;t2=0:0.01:1;n1=-2;n2=8;n0=0;n=n1:0.01:n2;x5=[n>=0.01];x1=2*cos(2*f*pi*t1);x2=2*cos(2*f*pi*t2);x3=(exp(-j).^(t2'*w));x4=x2*x3;subplot(2,2,1);plot(t1,x1);axis([0 1 1.1*min(x2) 1.1*max(x2)]);xlabel('x(n)');ylabel('x(n)');title('原信号x1');xlabel('t');ylabel('x1');subplot(2,2,3);stem(t2,x2);axis([0 1 1.1*min(x2) 1.1*max(x2)]);title('原信号采样结果x2');xlabel('t');ylabel('x2');第页subplot(2,2,2);stem(n,x5);axis([0 1 1.1*min(x5) 1.1*max(x5)]);xlabel('n');ylabel('x2');title('采样函数x2');subplot(2,2,4);stem(t2,x4);axis([0 1 -0.2+1.1*min(x4) 1.1*max(x4)]);xlabel('t');ylabel('x4');title('DTFT结果x4');(b)结果:2.用以下两个有限长序列来验证DTFT的线性、卷积和共轭特性;x1(n)=[1 2 3 4 5 6 7 8 9 10 11 12];x2(n)=R10(n)(1)线性:(a)代码:w=linspace(-8,8,10000);nx1=[0:11]; nx2=[0:9];x1=[1 2 3 4 5 6 7 8 9 10 11 12];第页x2=[1 1 1 1 1 1 1 1 1 1];x3=[x2,zeros(1,(length(x1)-length(x2)))];x4=2*x1+3*x3;X1=x1*exp(-j*nx1'*w);%频率特性X3=x3*exp(-j*nx1'*w);%频率特性X4=x4*exp(-j*nx1'*w);%频率特性subplot(5,3,1),stem(nx1,x1),axis([-1,13,0,15]);title('x1'), ylabel('x(n)');subplot(5,3,2),stem(nx2,x2),axis([-1,13,0,5]);title('x2'); subplot(5,3,3),stem(nx1,x4),axis([-1,13,0,26]);title('x4=2*x1+3* x3');subplot(5,3,4),plot(w,abs(X1)); ylabel('幅度')subplot(5,3,7),plot(w,angle(X1));ylabel('相位')subplot(5,3,10),plot(w,real(X1));ylabel('实部')subplot(5,3,13),plot(w,imag(X1)); ylabel('虚部')subplot(5,3,5),plot(w,abs(X3));subplot(5,3,8),plot(w,angle(X3));subplot(5,3,11),plot(w,real(X3));subplot(5,3,14),plot(w,imag(X3));subplot(5,3,6),plot(w,abs(X4));subplot(5,3,9),plot(w,angle(X4));subplot(5,3,12),plot(w,real(X4));subplot(5,3,15),plot(w,imag(X4));(b)结果:第页(2)卷积:(a)代码:nx1=0:11; nx2=0:9; nx3=0:20;w=linspace(-8,8,40); %w=[-8,8]分10000份x1=[1 2 3 4 5 6 7 8 9 10 11 12];x2=[1 1 1 1 1 1 1 1 1 1];x3=conv(x1,x2);% x1卷积x2x4=x1*exp(-j*nx1'*w);% x1频率特性x5=x2*exp(-j*nx2'*w);% x2频率特性x6=x3*exp(-j*nx3'*w);% x1卷积x2频率特性x7=x4.*x5;subplot(2,2,1),stem(nx1,x1),axis([-1,15,0,15]),title('x1'); subplot(2,2,2),stem(nx2,x2),axis([-1,15,0,5]),title('x2'); subplot(2,1,2),stem(nx3,x3),axis([-1,25,0,80]);title('x1卷积x2第页结果x3');figure,subplot(2,2,1),stem(x4,'filled'),title('x1的DTFT结果x4');subplot(2,2,2),stem(x5,'filled'),title('x2的DTFT结果x5');subplot(2,2,3),stem(x6,'filled'),title('x3的DTFT结果x6');subplot(2,2,4),stem(x7,'filled'),title('x4的DTFT结果x7');figure,subplot(3,2,1),stem(w,abs(x6)), ylabel('幅度'),title('x1卷积x2的DTFT');subplot(4,2,3),stem(w,angle(x6)),ylabel('相位')subplot(4,2,5),stem(w,real(x6)),ylabel('实部')subplot(4,2,7),stem(w,imag(x6)),ylabel('虚部')subplot(4,2,2),stem(w,abs(x7)), title('x1与x2的DTFT的乘积');subplot(4,2,4),stem(w,angle(x7));subplot(4,2,6),stem(w,real(x7));subplot(4,2,8),stem(w,imag(x7));(b)结果:第页第页(3)共轭:(a)代码:x1n=[1 2 3 4 5 6 7 8 9 10 11 12];w=-10:10;N1=length(x1n);n1=0:N1-1;x1=real(x1n);x2=imag(x1n);x2n=x1-j*x2;X1=x2n*(exp(-j).^(n1'*w));X2=x1n*(exp(j).^(n1'*w));x3=real(X2);x4=imag(X2);X2=x3-j*x4;figure,subplot(211);stem(w,X1,'.');title('x1n共轭的DTFT');第页subplot(212);stem(w,X2,'.');title('x1n的DTFT取共轭且反折'); (b)结果:3. 求LTI系统的频率响应给定系统H(Z)=B(Z)/A(Z),A=[0.98777 -0.31183 0.0256]B=[0.98997 0.989 0.98997],求系统的幅频响应和相频响应。
傅里叶变换及带通滤波器仿真Matlab试验报告

傅里叶变换及带通滤波器仿真Matlab试验报告一.实验目的1.学习软件matlab的编辑语言、绘图、函数等功能的运用2.了解傅里叶级数的复数形式表示方波,并运用matlab绘出。
3.熟悉带通滤波器的工作原理,并用matlab仿真带通滤波器,绘出相应的图形,最后用pspice验证。
二.实验平台1. Matlab7.02. Pspice三.实验内容实验一用matlab模拟计算傅里叶分量叠加近似方波的过程,并将叠加过程用图形表示,最后画出谐波的振幅频谱。
实验原理1.根据傅里叶定理,任何一个角频率为ω的周期函数都可以表示成无穷多个频率为ω整数倍的正弦函数和余弦函数之和。
2.将傅里叶级数交流分量各项相叠加后,可得到原始的方波信号。
参加叠加的傅里叶分量越多,其和就越接近原来的方波。
3.谐波的振幅随频率的增加而快速减少。
实验步骤1.设计叠加傅里叶交流分量的算法。
2.打开Matlab,编辑程序实现算法。
3.运用Matlab的绘图函数将叠加过程用图形表示。
4.用Matlab绘出振幅频谱图。
实验程序代码%时间t从0到2,每隔0.001秒取一点t=0:0.001:pi;y=0;%通过循环绘出a小于等于5和a=16时的图像for a=1:6n=2*a-1y=y+4./(n*pi)*sin(n*pi*t);figure(1)subplot(2,3,a);plot(t,y,'-g')xlabel('Time');ylabel('F');ends=0;for b=1:16s=s+4./((b*2-1)*pi)*sin((b*2-1)*pi*t);endplot(t,s,'-g')%绘出振幅频谱图像figure(2)k=1:2:12;A=4./(k*pi);bar(k,A,0.1);实验结果傅里叶波形图振幅频谱图实验结果分析与结论1.根据傅里叶波形图可以看出,通过逐项叠加傅里叶级数交流分量可以形成原始方波。
matlab编程实现傅里叶变换

傅里叶变换是信号处理和图像处理中的重要数学工具,可以将一个信号或图像从时域转换到频域。
MATLAB作为一款强大的数学软件,可以方便地实现傅里叶变换并进行相应的分析和处理。
本文将介绍如何使用MATLAB编程实现傅里叶变换,并探讨其在信号处理和图像处理中的应用。
一、MATLAB中的傅里叶变换函数在MATLAB中,可以使用fft函数来进行一维离散傅里叶变换(DFT)的计算,使用fft2函数进行二维离散傅里叶变换(DFT)的计算。
这两个函数的基本语法如下:1. 一维离散傅里叶变换Y = fft(X)其中,X是输入的一维信号(向量),Y是输出的一维频谱(向量)。
2. 二维离散傅里叶变换Y = fft2(X)其中,X是输入的二维图像(矩阵),Y是输出的二维频谱(矩阵)。
除了fft和fft2函数外,MATLAB还提供了ifft和ifft2函数用于进行离散傅里叶逆变换。
通过这些函数,我们可以方便地实现傅里叶变换和逆变换的计算。
二、MATLAB中的傅里叶变换实例为了更好地理解MATLAB中的傅里叶变换实现,我们可以通过一个具体的实例来进行演示。
假设我们有一个包含两个正弦波的信号,我们首先可以使用MATLAB生成这个信号,并对其进行傅里叶变换。
生成信号fs = 1000; 采样频率为1000Hzt = 0:1/fs:1-1/fs; 时间范围为1秒f1 = 50; 第一个正弦波的频率为50Hzf2 = 120; 第二个正弦波的频率为120Hzx = 0.7*sin(2*pi*f1*t) + sin(2*pi*f2*t); 生成包含两个正弦波的信号进行傅里叶变换N = length(x); 信号的长度X = fft(x)/N; 进行离散傅里叶变换,并进行归一化处理f = (0:N-1)*(fs/N); 计算频率轴figure;subplot(2,1,1);plot(f,abs(X)); 绘制频谱幅度title('单边频谱');xlabel('频率/Hz');ylabel('幅度');subplot(2,1,2);plot(f,angle(X)); 绘制频谱相位title('频谱相位');xlabel('频率/Hz');ylabel('相位');通过上面的实例,我们可以看到,MATLAB可以很方便地实现最常见的傅里叶变换,并且提供了丰富的绘图功能来呈现变换结果。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
matlab实现信号的傅立叶变换一、设计目的ﻩ1.熟悉和掌握matlab的基本使用方法,能够熟练运用matlab。
2.巩固信号与系统中的傅立叶变换内容,加深对这部分内容的理解。
二、设计任务1.掌握matlab的基本操作。
2.利用matlab实现典型非周期信号的傅立叶变换,画出信号的时域图和频域图。
ﻩ3.利用matlab实现傅立叶变换的基本性质。
三、设计原理1.matlab简介MATLAB是MathWorks公司推出的一套高性能的数值计算和可视化软件,经过多年大量的、坚持不懈的改进,现在MATLAB已经更新至7.x版。
MATLAB集数值分析、矩阵运算、信号处理和图形显示于一体,构成了一个方便的、界面友好的用户环境。
在这个环境下,对所要求解的问题,用户只需简单地列出数学表达式,其结果便以人们十分熟悉的数值或图形方式显示出来。
MATLAB可用来解决实际的工程和数学问题,其典型应用有:通用的数值计算,算法设计,各种学科(如自动控制、数字信号处理、统计信号处理)等领域的专门问题求解。
MATLAB语言易学易用,不要求用户有高深的数学和程序语言知识,不需要用户深刻了解算法及编程技巧。
MATLAB既是一种编程环境,又是一种程序设计语言。
这种语言与C、FORTRAN等语言一样,有其内定的规则,但MATLAB的规则更接近数学表示。
使用更为简便,可使用户大大节约设计时间,提高设计质量。
2.matlab2013b基本界面介绍matlab2013b主界面窗口基本分为五个部分:1)主菜单界面在此界面我们只需要用到新建命令文件和对程序进行间断调试的功能2)文件查看窗口,双击可快速打开文件3)写命令窗口及提示窗口在这个窗口可写入参数、写入公式、显示错误、显示帮助等功能,例如对a赋值、写入公式f=a*a、显示帮助:公式fft的使用方法4)历史命令查看窗口在该窗口可查看历史输入命令,双击历史命令可再次输入到命令窗口5)数值查看窗口在该窗口可查看所有参数详细数值3.理论原理:傅里叶变换的基本思想首先由法国学者傅里叶系统提出,所以以其名字来命名以示纪念。
傅里叶变换(FT):连续时间, 连续频率的傅里叶变换。
非周期连续时间信号通过连续付里叶变换(FT )得到非周期连续频谱密度函数。
在不同的研究领域,傅里叶变换具有多种不同的变体形式,如连续傅里叶变换和离散傅里叶变换。
对于连续时间信号,任何周期信号只要满足狄里赫利条件就可以分解成许多指数分量之和或直流分量与正弦、余弦分量之和,而非周期信号不能直接用傅立叶级数表示,但可以利用傅立叶分析方法导出非周期信号的傅立叶变换。
以周期矩形信号为例,当周期T无限增大时,则周期信号就转化为非周期性的单脉冲信号。
所以可以把非周期信号的周期T 看成是周期T 趋于无限大的周期信号。
当周期信号的T 增大时,谱线的间隔Ω=2πT ⁄变小,若周期T 趋于无穷小,这时离散频谱就变成了连续频谱,而各分量的振幅将趋于无穷小,故引入“频谱密度函数”来表示非周期信号即通过傅里叶变换来分析非周期信号的频谱]。
信号f(t)的傅里叶变换定义为F (jω)=∫f(t)e −jωt dt ∞−∞ 如果连续时间信号可用符号f(t)表达式表示,则可利用MATLB 的four ier 函数直接求出其博里叶变换。
该函数常用的调用格式有三种。
①F =fourier(f) ②F =fourier(f,v) ③F =fourier(f,,u,v)非周期信号f(t)的傅里叶变换F(jω)的定义公式如下式所示,F(jω)通常是一个复数,可以表示为F (jω)=|F(jω)|e jφ(ω)(2-1)相应的博里叶逆变换可表示为F(jω)=12π∫|F(jω)|e j[ωt+φ(ω)]∞−∞dω(2-2)上式表明:①非周期信号可以看作是由无穷多个不同频率的虚指数信号组成,且频率是连续的,即包括了从负无穷到正无穷的一切频率分量。
②傅里叶变换F(jω)的模 |F(jω)|反映了信号各颇率分量的幅度随频率ω的变化情况.称为信号幅度频谱。
③傅里叶变换F(jω)的辐角φ(ω)反映了信号各频率分量的相位随频率ω的变化情况,称为信号相位领谱。
因此,通过博里叶变换,就可以得到非周期信号的幅度频语和相位频谱,从而分析出信号的频率特性。
四、设计过程1.典型非周期信号的傅立叶变换1).单边指数信号程序:symstv w x ;x=0.5*exp(-t)*sym('heaviside(t)');F=fourier(x);subplot(211);ezplot(x);subplot(212);ezplot(abs(F));axis([-6 60 0.7]);结果:图1-1:单边指数信号的时域与频域波形2).双边指数函数:程序:symstvwx ;x=exp(-t)*sym('heaviside(t)')+exp(t)*sym('heaviside(-t)');F=fourier(x);subplot(211);ezplot(x);subplot(212);ezplot(abs(F)); axis([-66 0 2]);结果:图1-2:双边指数函数的时域与频域波形3).符号函数程序:t=-1:0.01:1;%时域波形x=heaviside(t)-heaviside(-t);subplot(211);plot(t,x);xlabel('t');axis([-1 1 -1.5 1.5]);ﻩsyms t;%频域波形x=sym('heaviside(t)')-sym('heaviside(-t)');F=fourier(x);subplot(212);ezplot(abs(F));axis([-4 4 0 30]);结果:图1-3:符号函数的时域与频域波形4).矩形脉冲函数程序:t=-2:0.01:2;x=heav iside(t+1)-h eavisid e(t -1);subplot(211); plot(t ,x); xlabel('t');a xi s([-2 2 -0.5 1.5]);sy ms t ;x=sym ('heaviside(t+1)')-s ym('heavis id e(t-1)'); F=fourier(x); su bplot(212); ezp lo t(F); axis([-8 8 -1 3]);结果:图1-4:矩形脉冲的时域和频域波形5).钟形脉冲信号(高斯脉冲)程序:syms tv wx ;x=exp(-t^2);F=fourier(x); subplot(211);ezplot(x);subplot(212);ezplot(abs(F)); axis([-66 02]);结果:图1-5:钟形函数(高斯脉冲)的时域和频域波形6).抽样函数:程序:syms t;r=0.01;j=sqrt(-1);t=-15:r:15;f=sin(t)./t;f=sin(2*t)./(2*t);N=500;W=5*pi*1;k=-N:N;w=k*W/N;F=r*sinc(t/pi)*exp(-j*t'*w);F1=r*sinc(2*t/pi)*exp(-j*t'*w);subplot(211);plot(t,f,'b-');xlabel('t'); ylabel('f(t)'); subplot(212); plot(w,F,'b-'); axis([-4 4 -1 4]);xlabel('w');ylabel('F(w)');结果:图1-6:抽样函数的时域和频域波形2.傅立叶变换的基本性质1).对称性博里叶变换的对称性可以表示为:若f(t)⟷F(jω),则F(t)⟷2πf(−ω)(3-1) 上式表明,如果函数f(t)的频谱函数为F(jω),那么时间函数F(t)的频谱函数是2πf(−ω),这称为傅里叶变换的对称性。
例:设f(t)=Sa(t),已信号f(t)的傅立叶变换为F(jω)=πg2(ω)=π[ε(ω+1)−ε(ω−1)]用MATLAB求f1(t)=πg2(t)的傅立叶变换F1(jω),并验证对称性。
程序:symstr=0.02;j=sqrt(-1);t=-20:r:20;f=sin(t)./t;f1=pi*(heaviside(t+1)-heaviside(t-1));N=500;W=5*pi*1;k=-N:N;w=k*W/N;F=r*sinc(t/pi)*exp(-j*t'*w);F1=r*f1*exp(-j*t'*w);subplot(221);plot(t,f);xlabel('t');ylabel('f(t)'); subplot(222);plot(w,F);axis([-2 2-1 4]);xlabel('w');ylabel('F(w)');subplot(223);plot(t,f1);axis([-2 2 -1 4]);xlabel('t');ylabel('f1(t)'); subplot(224);plot(w,F1);axis([-25 25 -3 7]);xlabel('w');ylabel('F1(w)');结果:图2-1:傅立叶变换的对称性2).尺度变换性质傅里叶变换的尺度变换性质可以表示为:若f(t)⟷F(ω),则对于实常数a≠0有f(at)⟷1|a|F(ωa)(3-2)上式表明,信号时域宽度与频率带宽成反比。
信号在时域中压缩(a>1)等效于带宽在频域中的扩展,而时域的展宽等效于在频域中带宽的压缩。
例2-5:设f(t)=ε(t+1)−ε(t−1),用MATLAB求y(t)=ε(2t+1)−ε(2t−1)的频谱Y(ω),并与f(t)的频谱F(ω)进行比较。
由信号分析可知,f(t)信号的频谱为F(jω)=2Sa(ω),其第一个过零点频率为π,一般将此频率认为信号f(t)的带宽。
考虑到F(jω)的形状,将精度提高到该值的50倍,即ω0=50π,据此确定取样间隔: τ<12f0=12×ω02π=0.02程序:R=0.02;t=-2:R:2;f=heaviside(t+1)-heaviside (t-1);W1=2*pi*5;N=500;k=0:N;W=k*W1/N;F=f*exp(-j*t'*W)*R;F=real(F);W=[-fliplr(W),W(2:501)];F=[fliplr(F),F(2:501)];subplot(2,2,1);plot(t,f); axis([-2 2 -0.5 1.5]);xlabel('t');ylabel('f(t)');title('f(t)=u(t+1)-u(t-1)');subplot(2,2,2);plot(W,F);axis([-40 40 -0.5 2]);xlabel('w');ylabel('F(w)');title('f(t)的傅立叶变换F(w)');R=0.02;t=-2:R:2;f=heaviside(2*t+1)-heaviside(2*t-1);W1=2*pi*5;N=500;k=0:N;W=k*W1/N;F=f*exp(-j*t'*W)*R;F=real(F);W=[-fliplr(W),W(2:501)];F=[fliplr(F),F(2:501)];subplot(2,2,3);plot(t,f);axis([-2 2 -0.5 1.5]);xlabel('t');ylabel('y(t)'); title('y(t)=u(2t+1)-u(2t-1)');subplot(2,2,4);plot(W,F);axis([-4040-0.5 2]);xlabel('w');ylabel('Y(w)');title('y(t)的傅立叶变换Y(w)');结果:图2-2:傅立叶变换的尺度变换性质3).时移性质傅里叶变换的时移特性可以表示为:设f(t)⟷F(ω),则f(t±t0)⟷e±jωt0∙F(jω)(3-3)上式表明,信号f(t)在时域中沿时间轴右移或左移t0等效于在频域中其频谱乘因子e±jωt0,即信号时移后,幅度频谱不变,只是相位频谱发生了线性变换,产生了附加变化(±ωt0)。