matlab自修课程设计报告(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傅里叶变换

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编写傅里叶变换程序,以及一些相关的应用。

我们需要明确傅里叶变换的定义和公式。

傅里叶变换可以将一个连续时间的信号分解为多个不同频率的正弦和余弦函数的叠加。

在Matlab中,可以使用fft函数进行傅里叶变换。

具体步骤如下:1. 准备信号数据:首先,我们需要准备一个信号数据。

这可以是一个连续时间的信号,也可以是一个离散时间的信号。

可以通过输入一组数据来表示信号。

2. 进行傅里叶变换:使用fft函数对信号进行傅里叶变换。

该函数会返回一个复数数组,表示信号在频域中的幅度和相位信息。

3. 绘制频谱图:使用plot函数将频域信息绘制成频谱图。

这可以帮助我们直观地理解信号的频率分布情况。

4. 反变换:如果需要将傅里叶变换后的频域信号重新转换回时域信号,可以使用ifft函数进行反变换。

除了基本的傅里叶变换,Matlab还提供了一些相关的函数和工具箱,例如快速傅里叶变换(FFT)、离散傅里叶变换(DFT)、傅里叶级数等。

这些工具可以帮助我们更方便地处理和分析信号。

傅里叶变换在信号处理中有着广泛的应用。

例如,我们可以使用傅里叶变换对音频信号进行频谱分析,以便了解音频中各个频率分量的贡献。

另外,傅里叶变换还可以用于图像处理,例如图像压缩和滤波等方面。

总结起来,Matlab提供了丰富的函数和工具箱,可以帮助我们进行傅里叶变换及相关的信号处理任务。

通过编写傅里叶变换程序,我们可以更好地理解信号在频域和时域之间的转换关系,以及信号的频谱特性。

这对于许多科学研究和工程应用都具有重要意义。

连续时间信号傅里叶变换及matlab实现课程设计

连续时间信号傅里叶变换及matlab实现课程设计

连续时间信号傅里叶变换及matlab实现课程设计课程设计:连续时间信号傅里叶变换及MATLAB实现1. 引言- 介绍连续时间信号傅里叶变换的概念和应用领域。

- 简要介绍MATLAB在信号处理中的应用。

2. 连续时间信号傅里叶变换(CTFT)- 讲解连续时间信号傅里叶变换的基本原理。

- 推导连续时间信号傅里叶变换的数学表达式。

- 解释连续时间信号傅里叶变换的几何意义。

3. 连续时间信号傅里叶变换的性质- 介绍连续时间信号傅里叶变换的线性性质、频率平移性质、尺度变换性质等。

- 解释这些性质在实际应用中的意义。

4. 连续时间信号傅里叶变换的计算方法- 讲解连续时间信号傅里叶变换的计算方法,包括积分法和微分法。

- 比较这两种方法的优缺点。

5. MATLAB实现连续时间信号傅里叶变换- 使用MATLAB编写代码实现连续时间信号傅里叶变换。

- 演示如何输入信号、计算傅里叶变换,并绘制频谱图。

- 演示如何利用傅里叶变换进行信号滤波。

6. 实验设计- 设计几个实际的信号处理实验,如语音信号分析、图像处理等。

- 使用MATLAB进行实验,展示连续时间信号傅里叶变换在实际应用中的效果。

7. 结论- 总结连续时间信号傅里叶变换的基本原理和性质。

- 归纳MATLAB实现连续时间信号傅里叶变换的方法。

- 分析实验结果,总结连续时间信号傅里叶变换在信号处理中的应用价值。

8. 参考文献- 提供相关的参考文献,供学生进一步学习和研究。

以上是一种可能的课程设计框架,你可以根据自己的需求和实际情况进行适当的调整和修改。

希望对你有所帮助!。

快速傅里叶变换fft的Matlab实现 实验报告

快速傅里叶变换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-傅里叶变换-实验报告

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试验报告

傅里叶变换及带通滤波器仿真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中的傅里叶变换函数在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可以很方便地实现最常见的傅里叶变换,并且提供了丰富的绘图功能来呈现变换结果。

MAtlab傅里叶变换实验报告

MAtlab傅里叶变换实验报告

班级信工142 学号22 姓名何岩实验组别实验日期室温报告日期成绩报告内容:(目得与要求,原理,步骤,数据,计算,小结等)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([011、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得线性、卷积与共轭特性;(n)x1(n)=[12 3 4 5 6 7 8 9 10 11 12];x2(n)=R10(1)线性:(a)代码:w=linspace(-8,8,10000);nx1=[0:11]; nx2=[0:9];x1=[1 2 3 4 567 8 9 10 1112];x2=[1 1 1 1 1 1 1 1 11];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 45 6 78 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]),tit le(’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('x 1卷积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得DTF T得乘积’);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 1011 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。

MATLAB实验二傅里叶分析报告及应用

MATLAB实验二傅里叶分析报告及应用

实验二傅里叶分析及应用一、实验目的(一)掌握使用Matlab进行周期信号傅里叶级数展开和频谱分析1、学会使用Matlab分析傅里叶级数展开,深入理解傅里叶级数的物理含义2、学会使用Matlab分析周期信号的频谱特性(二)掌握使用Matlab求解信号的傅里叶变换并分析傅里叶变换的性质1、学会运用Matlab求连续时间信号的傅里叶变换2、学会运用Matlab求连续时间信号的频谱图3、学会运用Matlab分析连续时间信号的傅里叶变换的性质(三)掌握使用Matlab完成信号抽样并验证抽样定理1 、学会运用MATLA完成信号抽样以及对抽样信号的频谱进行分析2 、学会运用MATLA改变抽样时间间隔,观察抽样后信号的频谱变化3 、学会运用MATLA对抽样后的信号进行重建二、实验条件Win7 系统,MATLAB R2015a三、实验内容1、分别利用Matlab符号运算求解法和数值计算法求下图所示信号的FT,并画出其频谱图(包括幅度谱和相位谱)[注:图中时间单位为:毫秒(ms)]。

Code:ft = sym( ' (t+2)*(heaviside(t+2)-heavisi de(t+1))+(heaviside(t+1)-heav iside(t-1))+(2-t)*(heaviside( t-1)-heaviside(t-2))');fw = simplify(fourier(ft));subplot(2, 1, 1); ezplot(abs(fw)); gridon ;title( 'amp spectrum' );phi = atan(imag(fw) / real(fw));subplot(2, 1,2);ezplot(phi); grid on ;title( 'phase spectrum' );Code:dt = 0.01;t = -2: dt: 2;ft(t+2).*(uCT(t+2)-uCT(t+1))+(uCT(t+1)-uCT(t-1))+(2-t).*(uCT(t-1)-uCT(t-2));N = 2000;k = -N: N;w = pi * k / (N*dt);fw = dt*ft*exp(-i*t'*w);fw = abs(fw); plot(w, fw), gridon; axis([-2*pi 2*pi -1 3.5]);符号运算法数值运算法wxphase speetrunn2、试用Matlab 命令求Fj •)1^ -—的傅里叶反变换,并绘出其时域信号图 3 + 他 5 + j co两个单边指数脉冲的叠加Codef = sym( 'heaviside(t+1) - heaviside(t-1)' );fw = simplify(fourier(f)); F = fw.*fw; subplot(211);ezplot(abs(F), [-9, 9]), grid ontitle('FW A2') tri =sym( '(t+2)*heaviside(t+2)-2*t*heaviside(t)+(t-2)*heaviside(t-2)' );Ftri = fourier(tri); F = simplify(Ftri); subplot(212);ezplot(abs(F), [-9, 9]), grid on ;title( 'tri FT' )Code :syms t ; fw =sym( '10/(3+i*w)-4/(5+i* w)');ft = ifourier(fw, t); ezplot(ft), grid on;3、已知门函数自身卷积为三角波信号,试用Matlab 命令验证FT 的时域卷积定理(20 - exp(-3 t) heaviside(t) -8 - exp(-5 t) heaviside(t))/( 2 -■)4、设有两个不同频率的余弦信号,频率分别为匸=100Hz , f^ 3800Hz ;现在使用抽样频率f s =4000Hz 对这三个信号进行抽样, 使用MATLAB^令画出各抽样信号的波形和频谱,并分析其频率混叠现象Code: >t2 = -0.007:ts:0.007; fst = cos(2*f1*pi*t2); fl = 100; % fl = 100 hz>subplot(223);plot(t1, ft, ':'),ts = 1/4000;% sample = 4000hzhold ondt = 0.0001;>stem(t2, fst), gridon ;t1 = -0.007:dt:0.007;axis([-0.006 0.006 -1.5 1.5])ft = cos(2*f1*pi*t1); >xlabel( 'Time/s' ),ylabel( 'fs(t)')subplot(221); plot(t1, ft),grid on ;title( 'Sample sig nal' ); holdoffaxis([-0.006 0.006 -1.5 1.5])>xlabel( 'Time/s' ),ylabel( 'f(t)' )fsw=ts*fst*exp(-1i*t2'*w);title( 'Cos ine curve' );>subplot(224); plot(w, abs(fsw)),grid onN = 5000; k = -N:N;> axis([-20000 20000 0 0.006]) w = 2*pi*k/((2*N+1)*dt);xlabel( '\omega' ),ylabel( 'fsw' )fw = ft*dt*exp(-1i*t1'*w); >title( ' Sample freq spectrum');subplot(222);plot(w, abs(fw)); gridon ;>axis([-20000 20000 0 0.005]);xlabel( '\omega' ), ylabel('f(w)' )>FW 1-8-6^-22468wtri FT-吕 ££€024 68实用文档Cos inecurve-3x 10 Cos freq spectrum-3x 10 Sample freq spectrum Sample signalws4 Time/sx 10-3x 10f1 = 100Hz将代码中f1设为3800即可JCos inecurve-3-1-5! «3254-3x 10 Cos freq spectrumTime/s5X 10-2-10 1©x210Sample signal.I42ws4x 10 Sample freq spectrum-5 0Time/s5-3X 10 x 100 -2f2 = 3800Hz实用文档5、结合抽样定理,利用MATLA编程实现Sa(t)信号经过冲激脉冲抽样后得到的抽样信号f s t及其频谱[建议:冲激脉冲的周期分别取4*pi/3 s、pi s、2*pi/3 s三种情况对比],并利用f s t构建Sa(t)信号(**改动第一行代码即可)t2 = -5: Ts: 5;fst = sin c(t2);subplot(2, 2, 3)plot(t1, ft, ':' ), hold onstem(t2, fst), grid onaxis([-6 6 -0.5 1.2])title( 'Sampli ng sig nal' )Fsw = Ts*fst*exp(-1i*t2'*W);subplot(2, 2, 4)plot(W, abs(Fsw)), grid onaxis([-50 50 -0.05 1.5])title( 'spectrum of Sampling signal' )冲激脉冲的周期=4*pi/3 sSa(t) Sa(t) freq spectrumSampli ng signalspectrum of Sampli ng signalTs = 4/3; % impulse period = 4*pi/3t1 = -5:0.01:5;ft = si nc(t1);subplot(2, 2, 1)plot(t1, ft), grid onaxis([-6 6 -0.5 1.2]) title( 'Sa(t)' )N = 500; k = -N: N;W = pi*k / (N*0.01);Fw = 0.01*ft*exp(-1i*t1'*W);subplot(2, 2, 2)plot(W, abs(Fw)), grid onaxis([-30 30 -0.05 1.5])title( 'Sa(t) freq spectrum' )实用文档冲激脉冲的周期=pi s冲激脉冲的周期=2*pi/3 sSa(t) Sa(t) freq spectrumSampli ng signalspectrum of Sampli ng signalSa(t) Sa(t) freq spectrumSampli ng signalspectrum of Sampli ng signal实用文档6、已知周期三角信号如下图所示[注:图中时间单位为:毫秒(ms)]:(1)试求出该信号程实现其各次谐波[如1、3、5、13、49]的叠加,并验证其收敛性;a。

实验二 用matlab实现傅立叶变换

实验二 用matlab实现傅立叶变换

实验报告实验课程:信号与系统——MATLAB综合实验学生姓名:赖硕秋学号:6100208060专业班级:电子0812010年 4月 15日实验二用matlab实现傅立叶变换实验目的: 1.掌握傅立叶数值实现方法(矩阵算法)2.生成连续周期信号,掌握程序优化技巧3.对于自定义函数参数有效性的检查4.复习并巩固“信号与系统”相关知识内容,学习用matlab实现问题实验环境:运行于Matlab7.6环境实验内容:本次实验参照《信号与系统》——“Matlab综合实验”55页课后练习习题:1.如图4.4所示锯齿波信号,分别去一个周期的抽样数据X1(t),0<=t<=1和五个周期的数据X(t),0<=t<5,计算其傅立叶变换X1(w)和X(w),比较有和不同并解释原因。

编程如下:方法1:%计算单位锯齿波和五个周期波形的傅立叶变换%解法1:基本用循环实现数值的计算;对于5个周期锯齿波用内外循环来生成实现T1=1; %一个周期锯齿波N1=10000;t1=linspace(0,T1-T1/N1,N1)';f1=0*t1;f1=1-2*t1;OMG=32*pi; %频率抽样区间K1=100; %频率抽样点数omg=linspace(-OMG/2,OMG/2-OMG/K1,K1)';X1=0*omg;for k=1:K1 %求解五个周期函数的傅里叶变换系数for n=1:N1X1(k)=X1(k)+T1/N1*f1(n)*exp(-j*omg(k)*t1(n));endendfs1=0*t1;for n=1:N1 %通过傅里叶逆变换还原原函数for k=1:K1fs1(n)=fs1(n)+OMG/2/pi/K1*X1(k)*exp(j*omg(k)*t1(n));endendT2=5; %五个周期锯齿波N2=10000;t2=linspace(0,T2-T2/N2,N2)';f2=0*t2;t3=linspace(0,T2/5-T2/N2,N2/5)'; %先定义一个周期内的锯齿波变量抽样值f3=0*t3; %初始化一个周期的函数抽样值f3=1-2*t3; %表示出一个周期内函数抽样值for s=0:4 %将一个周期锯齿波平移到五个周期,通过循环控制for a=1:N2/5f2(2000*s+a)=f3(a);endend %将函数拓展表示为五个周期X2=0*omg;for k=1:K1 %求解五个周期函数的傅里叶变换系数for n=1:N2X2(k)=X2(k)+T2/N2*f2(n)*exp(-j*omg(k)*t2(n));endendfs2=0*t2;for n=1:N1 %通过傅里叶逆变换还原原函数for k=1:K1fs2(n)=fs2(n)+OMG/2/pi/K1*X2(k)*exp(j*omg(k)*t2(n));endendfigure;subplot(2,2,1);plot(omg,abs(X1),'r'); %以幅度频谱画图xlabel('Frequency'),ylabel('Amplitude');title('单个锯齿波的幅频曲线');subplot(2,2,2);plot(t1,fs1,'r');xlabel('Second(s)'),ylabel('Amplitude');title('由频域还原时域函数');subplot(2,2,3);plot(omg,abs(X2),'r');xlabel('Frequency'),ylabel('Amplitude');title('五个周期锯齿波的幅频曲线');subplot(2,2,4);plot(t2,fs2,'r');xlabel('Second(s)'),ylabel('Amplitude');title('由频域还原时域函数');相关曲线:方法2:%计算单位锯齿波和五个周期波形的傅立叶变换%解法2:数值算法用矩阵实现,大大加快了运行速度;并且直接调用“sawtooth”生成5个周期的锯齿波T1=1; %单个周期时域范围N1=10000; %时域抽样点数t1=linspace(0,T1-T1/N1,N1)'; %生成抽样时间点f1=1-2*t1; %生成抽样函数值OMG=32*pi; %频域范围K1=100; %频域抽样点数omg=linspace(-OMG/2,OMG/2-OMG/K1,K1)'; %生成抽样频率点X1=T1/N1*exp(-j*kron(omg,t1.'))*f1; %傅里叶正变换求解傅里叶系数fs1=OMG/2/pi/K1*exp(j*kron(t1,omg.'))*X1; %傅里叶逆变换还原时域函数T2=5; %五个周期时域范围N2=10000; %时域抽样点数t2=linspace(0,T2-T2/N2,N2)'; %生成抽样时间点fs2=0*t2;f2=sawtooth(t2*2*pi,0); %生成五个周期的锯齿波X2=T2/N2*exp(-j*kron(omg,t2.'))*f2; %傅里叶正变换求解傅里叶系数fs2=fs2+OMG/2/pi/K1*exp(j*kron(t2,omg.'))*X2; %傅里叶逆变换还原时域函数figure; %生成一个2*2矩阵子图subplot(2,2,1);plot(omg,abs(X1),'r'); %一个周期时的频谱图xlabel('Frequency'),ylabel('Amplitude')title('单个锯齿周期幅频特性曲线');subplot(2,2,2);plot(t1,fs1,'r'); %还原的时域函数xlabel('Time'),ylabel('Amplitude')title('Function after recovered');subplot(2,2,3);plot(omg,abs(X2),'r'); %五个周期时的频谱图xlabel('Frequency'),ylabel('Amplitude')title('五个锯齿周期幅频特性曲线');subplot(2,2,4);plot(t2,fs2,'r'); %还原的时域函数xlabel('Time'),ylabel('Function after recovered')title('Function after recovered');相关曲线:2.请编写函数F=fsana(t,f,,N),计算周期信号f的前N个指数形式的傅立叶级数系数,t表示f对应的抽样时间(均为一个周期);再编写函数f=fssyn(F,t),由傅立叶级数系数F合成抽样时间t对应的函数。

MAtlab-傅里叶变换-实验报告(最新-编写)

MAtlab-傅里叶变换-实验报告(最新-编写)

MAtlab-傅里叶变换-实验报告(最新-编写)一、实验目的1. 了解傅里叶变换的基本概念及其在信号处理中的应用;2. 掌握使用Matlab软件进行傅里叶变换的方法;3. 通过实验掌握傅里叶变换的计算与图像分析方法。

二、实验原理1. 傅里叶级数傅里叶级数是一类振幅、频率和相位相同的正弦(余弦)函数构成某一周期函数的和。

若函数f(t)可以表示为周期2π的函数,则有:f(t) = a0 + ∑[an*cos(nwt) + bn*sin(nwt)] (1)其中,a0、an、bn为常数,w=2π/T为角频率,T为周期。

傅里叶级数引入相位角,使得函数形态可以更加丰富,而且描述更加直观。

假设n=0时,a0是函数f(t)的常数项,且an、bn分别表示f(t)的奇、偶对称部分的振幅,即:a0 = (1/2π)∫[f(t)]dt,an = (1/π)∫[f(t)*cos(nwt)]dt,bn =(1/π)∫[f(t)*s in(nwt)]dt式中,*为乘积,∫为积分。

在时域中,傅里叶分析用来分析周期性信号的性质。

但是,在实际应用中,很少有真正的周期性信号,因此需要将傅里叶分析推广到非周期性信号上,即傅里叶变换。

原信号可以表示为一个函数f(t),其傅里叶变换可以表示为:F(w) = ∫[f(t)*e^(-jwt)]dt其中,j为虚数单位,w为角频率。

傅里叶变换将信号从时域变换到频域,通常使用复数表示幅值与相位。

同时,傅里叶变换也具有很高的线性性质。

即,若有两个函数f1(t)和f2(t),其傅里叶变换分别是F1(w)和F2(w),则下列变换同样成立:a1*f1(t) + a2*f2(t)的傅里叶变换为a1*F1(w) + a2*F2(w)其中,a1、a2为常数。

最后,傅里叶变换的性质包括线性、平移、频移、反褶和自相关性等,这些性质都对信号处理和分析具有实际意义。

三、实验内容本实验主要分为两个部分:1. 计算周期波形的傅里叶级数并绘制其频谱图和振幅谱图。

实验2 傅里叶变换的MATLAB 实现

实验2  傅里叶变换的MATLAB 实现

实验2 傅里叶变换的MATLAB 实现一. 实验目的1. 傅里叶变换的matlab 实现。

2. 连续时间信号傅里叶变换的数值计算。

二. 实验原理1. Matlab 的Symbolic Math Toolbox 提供了能直接求解傅里叶变换和逆变换的函数fourier(_)和ifourier()。

使用上述函数有一个局限性。

尽管信号f(t)是连续的,但却不可能表示成符号表达式,而更多的实际测量现场获得的信号是多组离散的数值量f(n),此时也不可能应用fourier( )对f(n)进行处理,而只能应用傅里叶变换的数值计算方法。

2. 傅里叶变换的数值计算方法的理论依据如下:()()ττωτωτωn j n t i e n f dt e t f j F -∞-∞=→-∞∞-∑⎰==)(lim 0 (1)对于一大类信号,当取τ足够小时,上式的近似情况可以满足实际需要。

若信号f(t)是时限的,则(1)式的n 取值就是有限的,设为N ,有:()N k en f k F n j N n k ≤≤=--=∑0,)(10τωττ (2)上式是对(1)中的频率ω进行取样,通常:k N k τπω2= 采用matlab 实现(2)式时,其要点是要正确生成()t f 的N 个样本()τn f 的向量f 及向量 τωn j k e -,两向量的内积(即两矩阵的乘积)结果即完成式(2)的计算。

下面举例说明:例1.已知门信号()()⎪⎩⎪⎨⎧><==10112t t t g t f ,求其傅里叶变换()ωj F 。

解:实现该过程的matlab 命令程序如下:tau=0.02;t=-2:tau:2;f= [(t>-1 &t<1)];W1=2*pi*5; % the bandlimitN=500;k=0:N;W=k*W1/N;F=f*exp(-j*t'*W)*tau;F=real(F);W=[-fliplr(W),W(2:501)];F=[fliplr(F),F(2:501)];subplot(2,1,1);plot(t,f);xlabel('t');ylabel('f(t)');title('f(t)=u(t+1)-u(t-1)');subplot(2,1,2);plot(W,F);xlabel('w');ylabel('F(w)');title('f(t)的付氏变换F(w)');程序执行出现图Fig3-1所示的曲线。

Matlab 离散傅里叶变换 实验报告

Matlab  离散傅里叶变换 实验报告

陕西科技大学实验报告班级信工082 学号16 姓名刘刚实验组别实验日期室温报告日期成绩报告内容:(目的和要求,原理,步骤,数据,计算,小结等)实验三离散傅立叶变换(DFT)1.离散傅立叶级数给定有限长序列[1 2 3 4],延拓为周期N=6的周期序列,并求其DFS。

代码:N1=6;x1=[1 2 3 4]; N2=length(x2); n1=0:5*N2-1;x2=[x1,zeros(1,(6-length(x1)))];k=0:5*N2-1;x3=x2(mod(n1,N2)+1) Xk=x3*exp(-j*2*pi/N1).^(n1'*k);subplot(321),stem(x1,'.');title('原序列')subplot(322),stem(x3,'.');title('原序列周期延拓')subplot(312),stem(Xk,'.');title('DFS')subplot(325),stem(abs(Xk),'.');title('DFS模值')subplot(326),stem(angle(Xk),'.');title('DFS相位')结果:2.求以下序列的N=16,32,64点的快速傅立叶变换x(n)=exp(-i*pi/8*n);x2(n)=cos(pi/8*n);x3(n)=sin(pi/8*n)(1)代码:Fs=20;N1=16;n1=0:N1-1;xn1=exp(-i*pi/8*n1);D1=2*pi*Fs/N1;N2=32;n2=0:N2-1;xn2=exp(-i*pi/8*n2);D2=2*pi*Fs/N2;N3=64;n3=0:N3-1;xn3=exp(-i*pi/8*n3);D3=2*pi*Fs/N3;k1=floor(-(N1-1)/2:(N1-1)/2);k2=floor(-(N2-1)/2:(N2-1)/2); k3=floor(-(N3-1)/2:(N3-1)/2);X1=fft(xn1,N1);X2=fft(xn2,N2);X3=fft(xn3,N3);subplot(3,4,1);stem(n1,xn1);title('原信号');ylabel('C=16') subplot(3,4,2);stem(X1,'.');title('FFT结果X');subplot(3,4,3);stem(k1*D1,abs(X1));title('X的模值'); subplot(3,4,4);plot(k1*D1,angle(X1));title('X的相位'); subplot(3,4,5);stem(n2,xn2);ylabel('C=32')subplot(3,4,6);stem(X2,'.');subplot(3,4,7);stem(k2*D2,abs(X2));subplot(3,4,8);plot(k2*D2,angle(X2));subplot(3,4,9);stem(n3,xn3);ylabel('C=64')subplot(3,4,10);stem(X3,'.');subplot(3,4,11);stem(k3*D3,abs(X3));subplot(3,4,12);plot(k3*D3,angle(X3));结果:(2)代码:Fs=20;N1=16;n1=0:N1-1;xn1=cos(pi/8*n1);D1=2*pi*Fs/N1;N2=32;n2=0:N2-1;xn2=cos(pi/8*n2);D2=2*pi*Fs/N2;N3=64;n3=0:N3-1;xn3=cos(pi/8*n3);D3=2*pi*Fs/N3;k1=floor(-(N1-1)/2:(N1-1)/2);k2=floor(-(N2-1)/2:(N2-1)/2);k3=floor(-(N3-1)/2:(N3-1)/2);X1=fft(xn1,N1);X2=fft(xn2,N2);X3=fft(xn3,N3);subplot(3,4,1);stem(xn1,'.');title('原信号');ylabel('C=16'); axis([0,18,1.1*min(xn1),1.1*max(xn1)]);subplot(3,4,2);stem(X1,'.');title('FFT结果X');subplot(3,4,3);stem(abs(X1),'.');title('X的模值');axis([0,18,1.1*min(abs(X1)),1.1*max(abs(X1))]); subplot(3,4,4);stem(angle(X1),'.');title('X的相位'); axis([0,18,1.1*min(angle(X1)),1.1*max(angle(X1))]); subplot(3,4,5);stem(xn2,'.');ylabel('C=32');axis([-2,35,1.1*min(xn2),1.1*max(xn2)]);subplot(3,4,6);stem(X2,'.');subplot(3,4,7);stem(abs(X2),'.');axis([0,35,1.1*min(abs(X2)),1.1*max(abs(X2))]); subplot(3,4,8);stem(angle(X2),'.');axis([0,35,1.1*min(angle(X2)),1.1*max(angle(X2))]); subplot(3,4,9);stem(xn3,'.');ylabel('C=64');axis([-2,70,1.1*min(xn3),1.1*max(xn3)]);subplot(3,4,10);stem(X3,'.');subplot(3,4,11);stem(abs(X3),'.');axis([0,70,1.1*min(abs(X3)),1.1*max(abs(X3))]); subplot(3,4,12);stem(angle(X3),'.');axis([0,70,1.1*min(angle(X3)),1.1*max(angle(X3))]); 结果:(3)代码:Fs=20;N1=16;n1=0:N1-1;xn1=sin(pi/8*n1);D1=2*pi*Fs/N1;N2=32;n2=0:N2-1;xn2=sin(pi/8*n2);D2=2*pi*Fs/N2;N3=64;n3=0:N3-1;xn3=sin(pi/8*n3);D3=2*pi*Fs/N3;k1=floor(-(N1-1)/2:(N1-1)/2);k2=floor(-(N2-1)/2:(N2-1)/2); k3=floor(-(N3-1)/2:(N3-1)/2);X1=fft(xn1,N1);X2=fft(xn2,N2);X3=fft(xn3,N3);subplot(3,4,1);stem(xn1,'.');title('原信号');ylabel('C=16') axis([0,18,1.1*min(xn1),1.1*max(xn1)]);subplot(3,4,2);stem(X1,'.');title('FFT结果X');axis([0,18,-1.1*max(abs(X1)),1.1*max(abs(X1))]);subplot(3,4,3);stem(abs(X1),'.');axis([0,18,1.1*min(abs(X1)),1.1*max(abs(X1))]);title('X的模值');subplot(3,4,4);stem(angle(X1),'.');axis([0,18,1.1*min(angle(X1)),1.1*max(angle(X1))]);title('X的相位');subplot(3,4,5);stem(xn2,'.');ylabel('C=32')axis([0,35,1.1*min(xn2),1.1*max(xn2)]);subplot(3,4,6);stem(X2,'.');axis([0,35,-1.1*max(abs(X2)),1.1*max(abs(X2))]);subplot(3,4,7);stem(abs(X2),'.');axis([0,35,1.1*min(abs(X2)),1.1*max(abs(X2))]);subplot(3,4,8);stem(angle(X2),'.');axis([0,35,1.1*min(angle(X2)),1.1*max(angle(X2))]);subplot(3,4,9);stem(xn3,'.');ylabel('C=64')axis([0,70,1.1*min(xn3),1.1*max(xn3)]);subplot(3,4,10);stem(X3,'.');axis([0,70,-1.1*max(abs(X3)),1.1*max(abs(X3))]);subplot(3,4,11);stem(abs(X3),'.');axis([0,70,1.1*min(abs(X3)),1.1*max(abs(X3))]);subplot(3,4,12);stem(angle(X3),'.');axis([0,70,1.1*min(angle(X3)),1.1*max(angle(X3))]);结果:3.利用DFT计算线性卷积给定序列x1(n)=0.9^n,n=[0:11];h(n)=R9(n) 求x1(n)*h(n);x1(n)与h(n)的10点圆周卷积。

大学matlab课程设计图像的傅里叶变换及其应用

大学matlab课程设计图像的傅里叶变换及其应用

课程名称: MATLAB及在电子信息课程中的应用实验名称:图像的傅里叶变换及其应用设计四图像的傅里叶变换及其应用一、设计目的通过该设计,掌握傅里叶变换的定义及含义。

二、设计内容及主要的MATLAB 函数1、图像的离散傅里叶变换假设),(n m f 是一个离散空间中的二维函数,则该函数的二维傅里叶变换定义为nj m j e e n m f f 21),()2,1(ωωωω--∞∞-∞∞-∑∑=其中21ωω和是频域变量,单位是弧度/采样单元。

函数),(21ωωf 为函数),(n m f 的频谱。

二维傅里叶反变换的定义为21212121),(),(ωωωωωωππωππωd d e e f n m f n j m j ⎰⎰-=-==因此,函数),(n m f 可以用无数个不同频率的复指数信号的和表示,在频率),(21ωω处复指数信号的幅度和相位为),(21ωωfMATLAB 提供的快速傅里叶变换函数1)fft2:用于计算二维快速傅里叶变换,其语法格式为b=fft2(I),返回图像I 的二维傅里叶变换矩阵,输入图像I 和输出图像B 大小相同;b=fft2(I,m,n),通过对图像I 剪切或补零,按用户指定的点数计算二维傅里叶变换,返回矩阵B 的大小为m ⨯n 。

很多MATLAB 图像显示函数无法显示复数图像,为了观察图像傅里叶变换后的结果,应对变换后的结果求模,方法是对变换结果使用abs 函数。

2)fftn :用于计算n 维快速傅里叶变换,其语法格式为b=fftn(I),计算图像的n 维傅里叶变换,输出图像B 和输入图像I 大小相同; b=fftn(I, size),通过对图像I 剪切或补零,按size 指定的点数计算n 维傅里叶变换,返回矩阵B 的大小为size 。

3) fftshift :用于将变换后的图像频谱中心从矩阵的原点移到矩阵的中心,其语法格式为b=fftshift(I),将变换后的图像频谱中心从矩阵的原点移到矩阵的中心。

实验二 用matlab实现傅立叶变换

实验二 用matlab实现傅立叶变换

实验二用matlab实现傅立叶变换Step 1: 生成信号我们首先来生成一个信号,作为傅立叶变换的输入。

```matlab% 生成信号t = 0:0.001:1; % 时间范围f1 = 10; % 第一个频率f2 = 50; % 第二个频率y = sin(2*pi*f1*t) + sin(2*pi*f2*t); % 两个频率的正弦信号相加plot(t,y)title('信号')xlabel('时间 (秒)')```这段代码生成了一个时间范围为0到1秒的信号。

信号由两个频率分别为10Hz和50Hz的正弦波相加组成。

Step 2: 进行傅立叶变换接下来,我们可以使用Matlab中的fft函数来对信号进行傅立叶变换。

fft函数将信号从时域(时间)上转换到频域上。

```matlab% 进行傅立叶变换Y = fft(y);L = length(y); % 信号长度P2 = abs(Y/L); % 双边频谱P1 = P2(1:L/2+1); % 单边频谱P1(2:end-1) = 2*P1(2:end-1);% 绘制频域图figure()f = 1000*(0:(L/2))/L;plot(f,P1)title('单边频谱')xlabel('频率 (Hz)')```这段代码计算了信号的傅立叶变换,并绘制了信号的单边频谱。

Step 3: 解释结果在绘图结果中,我们可以看到两个明显的峰值。

这两个峰值对应着信号中两个正弦波的频率,也就是10Hz和50Hz。

傅立叶变换将信号从时域上转换到了频域上,这就使我们能够分析信号中不同频率的组成。

这在信号处理和分析中极为常见,傅立叶变换可以将信号转换到更加恰当的域中,使得我们能够更好地对信号进行分析和处理。

matlab自修课程设计报告(matlab实现傅立叶变换)

matlab自修课程设计报告(matlab实现傅立叶变换)

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.理论原理:傅里叶变换的基本思想首先由法国学者傅里叶系统提出,所以以其名字来命名以示纪念。

数字信号处理实验 matlab版 快速傅里叶变换(FFT)

数字信号处理实验 matlab版 快速傅里叶变换(FFT)

实验14 快速傅里叶变换(FFT)(完美格式版,本人自己完成,所有语句正确,不排除极个别错误,特别适用于山大,勿用冰点等工具下载,否则下载之后的word 格式会让很多部分格式错误,谢谢)XXXX 学号姓名处XXXX一、实验目的1、加深对双线性变换法设计IIR 数字滤波器基本方法的了解。

2、掌握用双线性变换法设计数字低通、高通、带通、带阻滤波器的方法。

3、了解MA TLAB 有关双线性变换法的子函数。

二、实验内容1、双线性变换法的基本知识2、用双线性变换法设计IIR 数字低通滤波器3、用双线性变换法设计IIR 数字高通滤波器4、用双线性变换法设计IIR 数字带通滤波器三、实验环境MA TLAB7.0四、实验原理1、实验涉及的MATLAB 子函数(1)fft功能:一维快速傅里叶变换(FFT)。

调用格式:)(x fft y =;利用FFT 算法计算矢量x 的离散傅里叶变换,当x 为矩阵时,y 为矩阵x每一列的FFT 。

当x 的长度为2的幂次方时,则fft 函数采用基2的FFT 算法,否则采用稍慢的混合基算法。

),(n x fft y =;采用n 点FFT 。

当x 的长度小于n 时,fft 函数在x 的尾部补零,以构成n点数据;当x 的长度大于n 时,fft 函数会截断序列x 。

当x 为矩阵时,fft 函数按类似的方式处理列长度。

(2)ifft功能:一维快速傅里叶逆变换(IFFT)。

调用格式:)(x ifft y =;用于计算矢量x 的IFFT 。

当x 为矩阵时,计算所得的y 为矩阵x 中每一列的IFFT 。

),(n x ifft y =;采用n 点IFFT 。

当length(x)<n 时,在x 中补零;当length(x)>n 时,将x 截断,使length(x)=n 。

(3)fftshift功能:对fft 的输出进行重新排列,将零频分量移到频谱的中心。

调用格式:)(x fftshift y =;对fft 的输出进行重新排列,将零频分量移到频谱的中心。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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)。

相关文档
最新文档