毕业设计-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-离散信号傅里叶变换

matlab-离散信号傅里叶变换

1.请用MATLAB编写程序,实现任意两个有限长度序列的卷积和。

要求用图形显示两个序列及卷积结果。

解:y(n)=∑x(i)h(n-i)假设x(n)={1,2,3,4,5}; h(n)={3,6,7,2,1,6}; y(n)=x(n)*h(n)验证:y[n]=[1,12,28,46,65,72,58,32,29,30]【程序】N=5M=6L=N+M-1x=[1,2,3,4,5]h=[3,6,7,2,1,6]y=conv(x,h)nx=0:N-1nh=0:M-1ny=0:L-1subplot(131);stem(nx,x,'*b');xlabel('n');ylabel('x(n)');grid onsubplot(132);stem(nh,h,'*b');xlabel('n');ylabel('h(h)');grid onsubplot(133);stem(ny,y,'*r');xlabel('n');ylabel('y(h)');grid on【运行结果】2.已知两个序列x[n]=cos(n*pi/2), y[n]=e j*pi*n/4x[n],请编写程序绘制X(e jw)和Y(e jw)和幅度和相角,说明它们的频移关系。

–提示:用abs函数求幅度,用angle求相角。

【程序】n=0:15;x=cos(n*pi/2);y=exp(j*pi*n/4).*x;X=fft(x);Y=fft(y);magX=abs(X);angX=angle(X);magY=abs(Y);angY=angle(Y);subplot(221);stem(n,magX,'*r');xlabel('频率');ylabel('幅度');grid on;subplot(222);stem(n,angX,'*b');xlabel('频率');ylabel('相位');grid on;subplot(223);stem(n,magY,'*r');xlabel('频率');ylabel('幅度');grid on;subplot(224);stem(n,angY,'*b');xlabel('频率');ylabel('相位');grid on;【运行结果】【遇到的问题】只有当n=15时幅度值才相等,n取其他值,幅度值有差异。

用matlab实现离散傅里叶变换

用matlab实现离散傅里叶变换

用matlab实现离散傅里叶变换
摘要:
1.离散傅里叶变换的概述
2.MATLAB 实现离散傅里叶变换的方法
3.离散傅里叶变换的应用实例
4.注意事项和局限性
正文:
一、离散傅里叶变换的概述
离散傅里叶变换(Discrete Fourier Transform,DFT)是一种在离散域中实现的傅里叶变换,它可以将一个离散信号从时域转换到频域。

DFT 在工程、科学和数学等领域有着广泛的应用,例如信号处理、图像处理、音频处理等。

二、MATLAB 实现离散傅里叶变换的方法
MATLAB 提供了fft 函数来实现离散傅里叶变换,该函数的用法如下:```matlab
X = fft(x);
```
其中,x 是输入的离散信号,X 是输出的离散傅里叶变换结果。

fft 函数的运行时间与输入信号的长度成正比,因此对于较大的信号,计算时间可能会较长。

三、离散傅里叶变换的应用实例
1.信号处理:在通信系统中,信号往往受到噪声的影响,通过离散傅里叶
变换可以将信号从时域转换到频域,以便分析和处理。

2.图像处理:离散傅里叶变换可以用于图像的频谱分析,从而实现图像的滤波、增强和压缩等操作。

3.音频处理:离散傅里叶变换可以用于音频信号的谱分析,从而实现音频信号的滤波、降噪和音质增强等操作。

四、注意事项和局限性
1.当使用fft 函数时,需要注意输入信号的长度应为2 的整数次幂,否则会导致结果错误。

2.在进行离散傅里叶变换时,需要根据实际应用场景选择合适的窗函数,以避免频谱泄漏和频谱混叠等问题。

3.离散傅里叶变换是一种近似方法,当信号长度较小时,结果可能存在误差。

实验3 离散序列的傅里叶变换的MATLAB实现

实验3 离散序列的傅里叶变换的MATLAB实现

信息工程学院实验报告课程名称:数字信号处理实验项目名称:实验3 离散序列的傅里叶变换的MATLAB 实现 实验时间:班级: 姓名: 学号:一、实 验 目 的:熟悉离散序列的傅里叶变换理论及其MATLAB 实现。

二、实 验 设 备 与 器 件MATLAB 2008软件三、实 验 内 容 与 结 果 分 析3.1 在0到 区间画出矩形序列10()R n 的离散时间傅里叶变换(含幅度和相位)。

指令语句如下:n=-10:10;x=[(n>=0)&(n<10)];k=-200:200;w=(pi/200)*k;X=x*(exp(-j*pi/200)).^(n'*k);magX=abs(X);angX=angle(X);subplot(2,1,1);plot(w,magX,'LineWidth',2);xlabel('Frequency');ylabel('|X|');grid on ;subplot(2,1,2);plot(w,angX,'LineWidth',2);xlabel('Frequency');ylabel('Angle');grid on ;执行结果如图3-1所示:Frequency |X |Frequency A n g l e图3-13.2 求序列x(n)=1,-2≤n ≤2的离散时间傅里叶变换(含幅度和相位)。

指令语句如下:n=-10:10;x=[(n>=-2)&(n<2)];k=-200:200;w=(pi/200)*k;X=x*(exp(-j*pi/200)).^(n'*k);magX=abs(X);angX=angle(X);subplot(2,1,1);plot(w,magX,'LineWidth',2);xlabel('Frequency');ylabel('|X|');grid on ;subplot(2,1,2);plot(w,angX,'LineWidth',2);xlabel('Frequency');ylabel('Angle');grid on ;执行结果如图3-2所示:-4-3-2-10123401234Frequency |X |-4-3-2-101234-4-224Frequency A n g l e图3-24.思考题4.1什么是共轭对称性?结合例2-1加以分析。

matlab画离散傅里叶变换dft公式

matlab画离散傅里叶变换dft公式

离散傅里叶变换(Discrete Fourier Transform,DFT)是一种常用的信号处理工具,用于分析信号的频谱和频率成分。

在MATLAB中,可以使用内置函数来快速实现离散傅里叶变换,并且可以通过公式来理解其原理和实现过程。

一、离散傅里叶变换的定义离散傅里叶变换是将离散的时间序列信号转化为离散的频谱序列,其定义如下:给定长度为N的离散信号x(n),其离散傅里叶变换X(k)的计算公式为:X(k) = Σ x(n) * exp(-j*2πnk/N),n = 0, 1, ..., N-1其中,k表示频率序列的索引,取值范围为0到N-1。

exp(-j*2πnk/N)是复数指数形式的旋转因子,n表示时间序列的索引。

二、MATLAB中的离散傅里叶变换函数在MATLAB中,可以使用fft函数来快速计算离散傅里叶变换。

其函数原型为:Y = fft(X)其中,X为输入的离散信号,Y为离散傅里叶变换的结果。

如果需要计算反变换,则可以使用ifft函数。

三、MATLAB代码实现离散傅里叶变换下面是使用MATLAB实现离散傅里叶变换的示例代码:```matlab生成长度为N的离散信号N = 100;x = rand(1, N);计算离散傅里叶变换X = fft(x);绘制频谱图f = (0:N-1) * (1/N); 频率序列plot(f, abs(X));xlabel('频率');ylabel('幅度');title('离散傅里叶变换频谱图');```以上代码首先生成了长度为N的随机离散信号x,然后使用fft函数计算了其离散傅里叶变换结果X,并绘制了频谱图。

四、离散傅里叶变换的性质和应用离散傅里叶变换具有线性、周期性、卷积和相关性等性质,可以广泛应用于信号处理、通信、图像处理、音频处理等领域。

通过分析离散信号的频谱和频率成分,可以实现信号的滤波、频谱分析、频率提取等功能。

用matlab实现离散傅里叶变换

用matlab实现离散傅里叶变换

用Matlab实现离散傅里叶变换1. 简介离散傅里叶变换(Discrete Fourier Transform,DFT)是一种将时域信号转换为频域信号的方法。

它可以将一个离散序列表示为一组正弦和余弦函数的线性组合。

在信号处理、图像处理、通信等领域中广泛应用。

Matlab是一款功能强大的数学建模和仿真软件,内置了丰富的工具箱,包括用于计算和可视化离散傅里叶变换的函数。

在本文中,我们将使用Matlab来实现离散傅里叶变换,并介绍其基本原理和应用场景。

2. 离散傅里叶变换的基本原理离散傅里叶变换是对一个长度为N的离散序列进行频域分析的方法。

假设输入序列为x(n),其中0 ≤ n ≤ N-1。

那么其离散傅里叶变换X(k)定义如下:其中,e是自然对数的底数,i是虚数单位。

离散傅里叶变换将输入序列x(n)分解为N个复数的和,每个复数表示了不同频率上的振幅和相位。

3. Matlab实现离散傅里叶变换在Matlab中,我们可以使用fft函数来计算离散傅里叶变换。

该函数接受一个向量作为输入,并返回其对应的离散傅里叶变换结果。

下面是一个简单的示例代码,演示了如何使用Matlab实现离散傅里叶变换:% 定义输入序列x = [1, 2, 3, 4];% 计算离散傅里叶变换X = fft(x);% 打印结果disp(X);运行以上代码,将输出计算得到的离散傅里叶变换结果。

在本例中,输入序列为[1, 2, 3, 4],输出结果为[10+0i, -2+2i, -2+0i, -2-2i]。

每个复数表示了不同频率上的振幅和相位。

4. 离散傅里叶变换的应用场景离散傅里叶变换在信号处理和图像处理领域有着广泛的应用。

下面介绍几个常见的应用场景:4.1 音频信号处理离散傅里叶变换可以将音频信号从时域转换到频域,分析音频信号中不同频率上的成分。

这对于音频压缩、语音识别、音乐分析等任务非常重要。

4.2 图像处理离散傅里叶变换可以将图像从空域转换到频域,分析图像中不同空间频率上的成分。

数字信号处理实验 matlab版 离散傅里叶变换(DFT)

数字信号处理实验 matlab版 离散傅里叶变换(DFT)
>>n=0:4*N-1;k=0:4*N-1;
>> xn1=xn(mod(n,N)+1); %即xn1=[xn,xn,xn,xn]
>> Xk=xn1*exp(-j*2*pi/N).^(n'*k);%离散傅里叶变换
>> subplot(2,2,1),stem(xn);%显示序列主值
>> title('原主值信号x(n)');
>>N=length(xn);
>>n=0:N-1;
>> w=linspace(-2*pi,2*pi,500);%将[-2p,2p]频率区间分割为500份
>> X=xn*exp(-j*n'*w);%离散时间傅里叶变换
>>subplot(3,1,1),stem(n,xn,'k');
>>ylabel('x(n)');
解MATLAB程序如下:
>> xn=[7,6,5,4,3,2];
>> N=length(xn);
>> n=0:N-1;
>> w=linspace(-2*pi,2*pi,500);%将[-2p,2p]频率区间分割为500份
>> X=xn*exp(-j*n'*w);%离散时间傅里叶变换
>> subplot(3,1,1),stem(n,xn,'k');
(12-2)
从离散傅里叶变换定义式可以看出,有限长序列在时域上是离散的,在频域上也是离散的。式中, 即仅在单位圆上N个等间距的点上取值,这为使用计算机进行处理带来了方便。

实验3离散序列的傅里叶变换的MATLAB实现

实验3离散序列的傅里叶变换的MATLAB实现

实验3 离散序列的傅里叶变换的MATLAB 实现1. 实验目的熟悉离散序列的傅里叶变换理论及其MATLAB 实现。

2。

实例分析2.1离散序列傅里叶变换的MATLAB 实现例2。

1 已知()(0.9),1010n x n n =--≤≤,求其离散时间傅里叶变换,并讨论其共轭对称性. 根据离散序列傅里叶变换公式:()()j j n n X e x n e ωω∞-=-∞=∑,将下列指令编辑到 “exe2dtft.m" 文件中。

其中,并以pi/100为间隔取值.% exe2dtft.m 序列的离散时间傅里叶变换n=—10:10; x=(—0。

9).^n;k=-200:200; w= (pi/100)*k ;X=x*(exp (-j*pi/100)).^(n'*k);magX=abs(X);angX=angle(X );subplot(2,1,1);plot (w,magX);xlabel(’Frequency');ylabel('|X|’);grid on; subplot(2,1,2);plot (w ,angX );xlabel('Frequency');ylabel(’Angle’);grid on;运行“exe2dtft.m ” 文件将产生如图2-3所示的序列。

由图2-3可知,()j X e ω不仅是ω的周期函数,而且是共轭对称的.因此,对于实值序列,只需从0到π画出他们的傅里叶变换的幅度和相位就够了。

图2-1 离散序列的DTFT2.2离散系统差分方程的MATLAB 求解方法例2。

2 一个三阶低通滤波器由下面差分方程描述:()0.0181()0.0543(1)0.0543(2)0.0181(3)1.76(1) 1.1829(2)0.2781(3)y n x n x n x n x n y n y n y n =+-+-+-+---+- 画出这个滤波器的幅度和相位响应。

matlab 离散傅里叶变换

matlab 离散傅里叶变换

Matlab 离散傅里叶变换离散傅里叶变换 (Discrete Fourier Transform,DFT) 是数字信号处理中常用的一种变换方法,它可以将时间域信号转换到频率域,进行频谱分析和信号处理。

在 Matlab 中,可以使用 DFT 函数进行离散傅里叶变换的计算。

本文将介绍 Matlab 中离散傅里叶变换的计算方法和应用。

一、离散傅里叶变换的计算方法在 Matlab 中,可以使用 DFT 函数进行离散傅里叶变换的计算。

DFT 函数的语法如下:X = dft(x)其中,x 是输入的时间域信号,X 是输出的频率域信号。

DFT 函数的计算过程是将时间域信号 x 进行逆傅里叶变换 (Inverse Fast Fourier Transform,IFFT) 得到频率域信号 X。

DFT 函数的计算结果是一个复数矩阵,其中实部和虚部分别表示频率域信号的振幅和相位。

DFT 函数的计算速度较快,但是计算结果可能会存在误差,可以通过增加计算点数来提高计算精度。

二、离散傅里叶变换的应用离散傅里叶变换在数字信号处理中有广泛的应用,下面列举了几个常见的应用:1. 频谱分析:通过 DFT 计算时间域信号的频谱,可以分析信号的频率成分和能量分布。

2. 滤波器设计:通过 DFT 计算信号的频谱,可以设计不同类型的滤波器,如低通滤波器、高通滤波器、带通滤波器等。

3. 数字通信:DFT 可以用于数字通信中的信号调制和解调,可以实现信号的传输和接收。

4. 图像处理:DFT 可以用于图像的频域处理,如滤波、边缘检测等。

三、结论离散傅里叶变换是数字信号处理中常用的一种变换方法,它可以将时间域信号转换到频率域,进行频谱分析和信号处理。

数字信号处理实验 matlab版 离散傅里叶变换的性质

数字信号处理实验 matlab版 离散傅里叶变换的性质

实验13 离散傅里叶变换的性质(完美格式版,本人自己完成,所有语句正确,不排除极个别错误,特别适用于山大,勿用冰点等工具下载,否则下载之后的word格式会让很多部分格式错误,谢谢)XXXX学号姓名处XXXX一、实验目的1 加深对离散傅里叶变换(DFT)基本性质的理解。

2 了解有限长序列傅里叶变换(DFT)性质的研究方法。

3 掌握用MATLAB语言进行离散傅里叶变换性质分析时程序编写的方法。

二、实验内容1 线性性质。

2 循环移位性质。

3 循环折叠性质。

4 时域和频域循环卷积特性。

5 循环对称性。

三、实验环境MA TLAB7.0四、实验原理1 线性性质如果两个有限长序列分别为x1(n)和x2(n),长度分别为N1和N2,且y(n)=ax1(n)+bx2(n) (a、b均为常数)则该y(n)的N点DFT为Y(k)=DFT[y(n)]=aX1(k)+bX2(k) 0≤k≤N-1其中:N=max[N1,N2],X1(k)和X2(k)分别为x1(n)和x2(n)的N点DFT。

例13-1已知x1(n)=[0,1,2,4],x2(n)=[1,0,1,0,1],求:(1)y(n)=2x1(n)+3x2(n),再由y(n)的N点DFT获得Y(k);(2)由x1(n)、x2(n)求X1(k)、X2(k),再求Y(k)=2X1(k)+3X2(k)。

用图形分别表示以上结果,将两种方法求得的Y(k)进行比较,由此验证有限长序列傅里叶变换(DFT)的线性性质。

解MA TLAB程序如下:>> xn1=[0,1,2,4]; %建立xn1序列>> xn2=[1,0,1,0,1]; %建立xn2序列>> N1=length(xn1);N2=length(xn2);>> N=max(N1,N2); %确定N>> if N1>N2 xn2=[xn2,zeros(1,N1-N2)]; %对长度短的序列补0>> elseif N2>N1 xn1=[xn1,zeros(1,N2-N1)];>> end>> yn=2*xn1+3*xn2; %计算yn>> n=0:N-1;k=0:N-1;>> Yk1=yn*(exp(-j*2*pi/N)).^(n'*k); %求yn的N点DFT>> Xk1=xn1*(exp(-j*2*pi/N)).^(n'*k); %求xn1的N点DFT >> Xk2=xn2*(exp(-j*2*pi/N)).^(n'*k); %求xn2的N点DFT >> Yk2=2*Xk1+3*Xk2; %由Xk1、Xk2求Yk>> subplot(4,2,1),stem(n,xn1);>> title('x1(n)');>> subplot(3,2,2),stem(n,Xk1);>> title('X1(k)');>> subplot(4,2,3),stem(n,xn2);>> title('x2(n)');>> subplot(3,2,4),stem(n,Xk2);>> title('X1(k)');>> subplot(4,2,5),stem(n,yn);>> title('yn');>> subplot(3,2,6),stem(n,Yk2);>> title('2*Xk1+3*Xk2');>> subplot(4,2,7),stem(n,Yk1);>> title('DFT[y(n)]');求得的Y(k),如下所示:Yk=23.0000 -7.5902+1.5388i 3.5902-0.3633i3.5902+0.3633i -7.5902-1.5388i运行结果如图13-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离散傅里叶

在MATLAB中,计算离散傅里叶变换(DFT)可以使用fft函数。

fft函数的基本调用格式为:Xk = fft(xn, N),其中xn为时域序列向量,N为离散傅里叶变换区间长度。

当N大于xn的长度时,fft函数自动在xn后面补零,返回xn的N点离散傅里叶变换结果向量Xk。

当N 小于xn的长度时,fft函数计算xn的前N个点构成的序列N点离散傅里叶变换,忽略xn后面的元素。

例如,对于长度为N=5的矩形序列x(n),可以按以下步骤计算其离散傅里叶变换:
1. 创建一个长度为N的矩形序列x(n)。

2. 使用fft函数计算x(n)的N点离散傅里叶变换结果向量Xk。

参考代码如下:
```matlab
standard 创建一个长度为5的矩形序列
x = [1 1 1 1 1];
standard 计算5点离散傅里叶变换
X = fft(x, 5);
```
在这个例子中,fft函数返回一个长度为5的向量X,它是x(n)的5点离散傅里叶变换结果。

matlab中离散序列的傅里叶变换

matlab中离散序列的傅里叶变换

matlab中离散序列的傅里叶变换离散序列的傅里叶变换是信号处理中常用的方法之一,它可以将一个离散序列(数字信号)转换为频域表示。

在MATLAB中,我们可以使用fft函数来实现离散序列的傅里叶变换。

下面我将详细介绍傅里叶变换的原理和在MATLAB中的实现方法。

1. 傅里叶变换的原理傅里叶变换是数学中的一个重要工具,用于将一个信号从时域转换为频域。

在离散序列的情况下,傅里叶变换可以表示为以下公式:X(k) = Σ(x(n)e^(-j2πkn/N))其中,X(k)是变换后的频域表示,x(n)是原始序列,N是序列的长度,k是频域的索引。

2. 在MATLAB中进行离散序列的傅里叶变换在MATLAB中,我们可以使用fft函数来实现离散序列的傅里叶变换。

该函数的用法如下:Y = fft(X)其中,X是输入的离散序列,Y是傅里叶变换后的频域表示。

3. 实例演示接下来,我将通过一个具体的实例来演示在MATLAB中进行离散序列的傅里叶变换。

假设我们有一个长度为N的离散序列x,现在需要对它进行傅里叶变换。

首先,我们需要生成一个离散序列,并给出相关参数,如下所示:N = 100; % 序列长度fs = 1000; % 采样频率t = (0:N-1)/fs; % 时间向量f1 = 100; % 第一个正弦波频率f2 = 200; % 第二个正弦波频率x = sin(2*pi*f1*t) + sin(2*pi*f2*t); % 生成离散序列接下来,我们使用fft函数对离散序列进行傅里叶变换,并将结果保存在变量Y中:Y = fft(x);最后,我们可以绘制原始序列和傅里叶变换后的频域表示,如下所示:subplot(2,1,1);plot(t,x);xlabel('时间 (s)');ylabel('幅度');title('原始序列');subplot(2,1,2);f = (-N/2:N/2-1)*(fs/N);stem(f,abs(fftshift(Y)));xlabel('频率 (Hz)');ylabel('幅度');title('傅里叶变换');通过运行上述代码,我们可以得到原始序列和傅里叶变换后的频域表示的图像。

matlab离散傅里叶变换dft

matlab离散傅里叶变换dft

文章标题:探究Matlab中的离散傅立叶变换(DFT)在Matlab中,离散傅立叶变换(DFT)是一项非常重要的数学工具,被广泛应用于信号处理、图像处理、通信系统等领域。

本文将深入探讨Matlab中的DFT,从基本概念、数学原理到实际应用,帮助读者全面理解和灵活运用这一重要工具。

1. DFT的基本概念在Matlab中,DFT是一种将离散信号转换为频域表示的数学工具。

通过DFT,我们可以将时间域内的信号转换为频域内的频谱,从而可以分析信号的频率成分、频谱特性等重要信息。

DFT的基本公式表达为:\[ X(k) = \sum_{n=0}^{N-1} x(n)e^{-j\frac{2\pi}{N}kn}, k = 0, 1, ..., N-1 \]其中,\( x(n) \) 表示输入信号的离散样本,\( X(k) \) 表示DFT结果频域中的离散频谱样本。

2. DFT的数学原理要理解DFT的数学原理,我们需要深入了解傅立叶变换的基本概念。

傅立叶变换是指将一个信号分解为不同频率成分的过程,通过对信号在无限时间域上的积分,可以将信号转换为频域上的连续谱。

而DFT则是对离散信号的傅立叶变换,因此其基本原理是将有限长的离散信号通过离散的傅立叶变换转换为频域上的离散频谱。

3. Matlab中的DFT实现在Matlab中,我们可以使用fft函数来进行离散傅立叶变换。

通过简单的一行代码,就可以对信号进行DFT变换,并得到频域上的频谱信息。

我们可以使用以下代码对一个时间序列信号进行DFT变换:```matlabx = [1, 2, 3, 4];X = fft(x);```通过这样的方式,我们就可以得到输入信号x在频域上的频谱信息,并可以进一步分析信号的频率成分、频谱特性等重要信息。

4. 个人观点与理解作为一种重要的数学工具,DFT在Matlab中的应用非常广泛。

通过DFT,我们可以更好地分析和处理各种信号,为信号处理、通信系统等领域提供了重要的数学支持。

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中,你可以使用循环来计算离散傅里叶变换(DFT)的和。

以下是一个简单的例子:
% 创建一个包含一些随机数的向量
x = randn(1, 1024);
% 初始化一个空的向量来保存DFT的结果
X = zeros(size(x));
% 计算DFT并存储结果
for k = 1:length(x)
X(k) = sum(exp(-1i*2*pi*k*(0:length(x)-1)/length(x))*x);
end
在这个例子中,我们首先创建了一个包含1024个随机数的向量x。

然后,我们创建了一个空的向量X来保存DFT的结果。

然后,我们使用一个for循环来计算DFT。

在每次迭代中,我们使用公式X(k) =
sum(exp(-1i*2*pi*k*(0:length(x)-1)/length(x))*x)来计算DFT的每个频域成分。

这个公式就是离散傅里叶变换的公式。

最后,我们将计算得到的DFT结果存储在向量X中。

请注意,DFT的结果通常会被归一化,以便在频域的幅度上给出正确的比例。

在MATLAB中,你可以使用abs 函数来计算DFT结果的幅度,使用angle函数来计算DFT结果的相位。

#Matlab离散时间傅里叶变换

#Matlab离散时间傅里叶变换

离散时间傅里叶变换一、实验目的:1、复习离散时间付里叶正反变换。

2、复习DTFT 的两个重要特性。

3、复习DTFT 的其它特性。

4、离散LTI 系统的频率响应。

5、采样及重构信号。

二、实验原理:1、信号的离散时间傅立叶变换(DTFT )2、 DTFT 的两个重要特性1、 周期性:离散时间傅立叶变换 是w 的周期函数,其周期为2π。

2、对称性:对于实值的X(n), 是共轭对称的。

,即实部为偶对称,虚部为奇对称。

3、 DTFT 的其他特性1、 线性:2、 时移:F [x (n -k )]= X (e jw )e -jwk3、 频移:4、 共轭:5、 折叠:6、 卷积:7、 乘法:8、 能量:4、 LTI 系统的频率响应H (e jw ):()()1()()2jw jwn n jw jwn X e x n e x n X e e dw πππ∞-=-∞-==∑⎰)(jw e X )()()2(π+=w j jw e X e X )(jw e X )()(*jw jw e X e X =-1212[()()][()][()]F ax n bx n aF x n bF x n +=+∑∞-∞=-=n jwnjw en h e H )()(5、模拟信号的采样与重构在许多应用中,需要把实际世界的模拟信号,经过采样和量化运算(ADC )变成 离散信号。

这此离散信号由数字信号处理器处理后,再用一个重构运算(DAC )变成 模拟信号。

1、采样定理如果采样频率Fs 大于限带带宽信号x a (t)带宽F 0的两倍,即Fs>2F 0,则该信号可以由它的采样值x(n)=x a (nTs)重构。

否则将导致x(n)的混叠现象。

2、重构: 步骤如下(a )先把样本集转换成一个加权脉冲序列(b )再将此脉冲序列通过一个带宽为F 的低通滤波器进行滤波。

以上两个步骤可用插值公式来描述:三、实验内容1、实验内容一:求信号的离散时间付里叶变换 编码:%1-1function [X] = dtft( x,n,w ) %计算离散时间傅里叶变换 %[X] = dtft( x,n,w )%X=在w 频率点上的DTFT 数组 %x=n 点有限长度序列 %n=样本位置向量 %w=频率点位置向量X=x*(exp(-j).^(n'*w)); End%1_2_a n=0:19;x=2*((0.8).^n); w=[0:1:500]*pi/500; [X]=dtft(x,n,w);magX=abs(X);angX=angle(X); realX=real(X);imagX=imag(X);subplot(2,2,1);plot(w/pi,magX);gridxlabel('以pi 为单位的频率');title('幅度部分');ylabel('幅度') subplot(2,2,3);plot(w/pi,angX);gridxlabel('以pi 为单位的频率');title('相角部分');ylabel('弧度') subplot(2,2,2);plot(w/pi,realX);gridxlabel('以pi 为单位的频率');title('实部');ylabel('实部') subplot(2,2,4);plot(w/pi,imagX);gridxlabel('以pi 为单位的频率');title('虚部')()()[()]a n x t x nT sinc Fs t nT ∞=-∞=-∑%1_2_bn=0:49;x=n.*((0.9).^n);w=[0:1:500]*pi/500;[X]=dtft(x,n,w);magX=abs(X);angX=angle(X);realX=real(X);imagX=imag(X);subplot(2,2,1);plot(w/pi,magX);gridxlabel('以pi为单位的频率');title('幅度部分');ylabel('幅度') subplot(2,2,3);plot(w/pi,angX);gridxlabel('以pi为单位的频率');title('相角部分');ylabel('弧度') subplot(2,2,2);plot(w/pi,realX);gridxlabel('以pi为单位的频率');title('实部');ylabel('实部') subplot(2,2,4);plot(w/pi,imagX);gridxlabel('以pi为单位的频率');title('虚部')%1_2_cn=0:6;x=[4,3,2,1,2,3,4];w=[0:1:500]*pi/500;[X]=dtft(x,n,w);magX=abs(X);angX=angle(X);realX=real(X);imagX=imag(X);subplot(2,2,1);plot(w/pi,magX);gridxlabel('以pi为单位的频率');title('幅度部分');ylabel('幅度') subplot(2,2,3);plot(w/pi,angX);gridxlabel('以pi为单位的频率');title('相角部分');ylabel('弧度') subplot(2,2,2);plot(w/pi,realX);gridxlabel('以pi为单位的频率');title('实部');ylabel('实部') subplot(2,2,4);plot(w/pi,imagX);gridxlabel('以pi为单位的频率');title('虚部')%1_2_dn=0:7;x=[4,3,2,1,1,2,3,4];w=[0:1:500]*pi/500;[X]=dtft(x,n,w);magX=abs(X);angX=angle(X);realX=real(X);imagX=imag(X);subplot(2,2,1);plot(w/pi,magX);gridxlabel('以pi为单位的频率');title('幅度部分');ylabel('幅度') subplot(2,2,3);plot(w/pi,angX);gridxlabel('以pi为单位的频率');title('相角部分');ylabel('弧度') subplot(2,2,2);plot(w/pi,realX);gridxlabel('以pi为单位的频率');title('实部');ylabel('实部') subplot(2,2,4);plot(w/pi,imagX);gridxlabel('以pi为单位的频率');title('虚部')%1_2_en=0:8;x=[4,3,2,1,0,-1,-2,-3,-4];w=[0:1:500]*pi/500;[X]=dtft(x,n,w);magX=abs(X);angX=angle(X);realX=real(X);imagX=imag(X);subplot(2,2,1);plot(w/pi,magX);gridxlabel('以pi为单位的频率');title('幅度部分');ylabel('幅度') subplot(2,2,3);plot(w/pi,angX);gridxlabel('以pi为单位的频率');title('相角部分');ylabel('弧度') subplot(2,2,2);plot(w/pi,realX);gridxlabel('以pi为单位的频率');title('实部');ylabel('实部') subplot(2,2,4);plot(w/pi,imagX);gridxlabel('以pi为单位的频率');title('虚部')%1_2_fn=0:7;x=[4,3,2,1,-1,-2,-3,-4];w=[0:1:500]*pi/500;[X]=dtft(x,n,w);magX=abs(X);angX=angle(X);realX=real(X);imagX=imag(X);subplot(2,2,1);plot(w/pi,magX);gridxlabel('以pi为单位的频率');title('幅度部分');ylabel('幅度') subplot(2,2,3);plot(w/pi,angX);gridxlabel('以pi为单位的频率');title('相角部分');ylabel('弧度') subplot(2,2,2);plot(w/pi,realX);gridxlabel('以pi为单位的频率');title('实部');ylabel('实部') subplot(2,2,4);plot(w/pi,imagX);gridxlabel('以pi为单位的频率');title('虚部')2、实验内容二:研究序列的周期性和对称性编码:%2_an=0:10;x=(0.9*exp(j*pi/3)).^n;w=[-2000:1:2000]*pi/500;[X]=dtft(x,n,w);magX=abs(X);angX=angle(X);realX=real(X);imagX=imag(X);figure(1)subplot(2,2,1);plot(w/pi,magX);gridxlabel('以pi为单位的频率');title('幅度部分');ylabel('幅度') subplot(2,2,3);plot(w/pi,angX);gridxlabel('以pi为单位的频率');title('相角部分');ylabel('弧度') subplot(2,2,2);plot(w/pi,realX);gridxlabel('以pi为单位的频率');title('实部');ylabel('实部')subplot(2,2,4);plot(w/pi,imagX);gridxlabel('以pi为单位的频率');title('虚部')%2_bn=-5:5;x=(-0.9).^n;w=[-200:1:200]*pi/100;[X]=dtft(x,n,w);magX=abs(X);angX=angle(X);realX=real(X);imagX=imag(X);figure(2)subplot(2,2,1);plot(w/pi,magX);gridxlabel('以pi为单位的频率');title('幅度部分');ylabel('幅度') subplot(2,2,3);plot(w/pi,angX);gridxlabel('以pi为单位的频率');title('相角部分');ylabel('弧度') subplot(2,2,2);plot(w/pi,realX);gridxlabel('以pi为单位的频率');title('实部');ylabel('实部') subplot(2,2,4);plot(w/pi,imagX);gridxlabel('以pi为单位的频率');title('虚部')3、实验内容三:用有限长序列来验证DTFT的其他特性利用背景差分法实现图像的运动目标检测,并绘制出运动目标的二值图像编码:%3_线性w=[0,pi/500,pi];n=0:10;x1=rand(1,11);x2=rand(1,11);X1=dtft(x1,n,w);X2=dtft(x2,n,w);%线性X12=3*X1+5*X2;x3=3*x1+5*x2;X3=dtft(x3,n,w);figure(1);magX=abs(X12);angX=angle(X12);realX=real(X12);ImagX=imag(X12);subplot(2,2,1);plot(w/pi,magX);gridxlabel('以pi为单位的频率');title('幅度部分');ylabel('幅度') subplot(2,2,3);plot(w/pi,angX);gridxlabel('以pi为单位的频率');title('相角部分');ylabel('弧度')subplot(2,2,2);plot(w/pi,realX);gridxlabel('以pi为单位的频率');title('实部');ylabel('实部') subplot(2,2,4);plot(w/pi,ImagX);gridxlabel('以pi为单位的频率');title('虚部');ylabel('虚部') figure(2)magX=abs(X3);angX=angle(X3);realX=real(X3);ImagX=imag(X3);subplot(2,2,1);plot(w/pi,magX);gridxlabel('以pi为单位的频率');title('幅度部分');ylabel('幅度') subplot(2,2,3);plot(w/pi,angX);gridxlabel('以pi为单位的频率');title('相角部分');ylabel('弧度') subplot(2,2,2);plot(w/pi,realX);gridxlabel('以pi为单位的频率');title('实部');ylabel('实部') subplot(2,2,4);plot(w/pi,ImagX);gridxlabel('以pi为单位的频率');title('虚部');ylabel('虚部')%3_时移w=[0,pi/500,pi];n=0:10;x1=rand(1,11);x2=rand(1,11);X1=dtft(x1,n,w);X2=dtft(x2,n,w);X4=X1.*exp(-8*j*w);n1=8:18;X10=dtft(x1,n1,w);figure(3);magX=abs(X10);angX=angle(X10);realX=real(X10);ImagX=imag(X10);subplot(2,2,1);plot(w/pi,magX);gridxlabel('以pi为单位的频率');title('幅度部分');ylabel('幅度') subplot(2,2,3);plot(w/pi,angX);gridxlabel('以pi为单位的频率');title('相角部分');ylabel('弧度') subplot(2,2,2);plot(w/pi,realX);gridxlabel('以pi为单位的频率');title('实部');ylabel('实部') subplot(2,2,4);plot(w/pi,ImagX);gridxlabel('以pi为单位的频率');title('虚部');ylabel('虚部') figure(4)magX=abs(X4);angX=angle(X4);realX=real(X4);ImagX=imag(X4);subplot(2,2,1);plot(w/pi,magX);gridxlabel('以pi为单位的频率');title('幅度部分');ylabel('幅度') subplot(2,2,3);plot(w/pi,angX);gridxlabel('以pi为单位的频率');title('相角部分');ylabel('弧度') subplot(2,2,2);plot(w/pi,realX);gridxlabel('以pi为单位的频率');title('实部');ylabel('实部') subplot(2,2,4);plot(w/pi,ImagX);gridxlabel('以pi为单位的频率');title('虚部');ylabel('虚部')%3_频移n=0:10;x=rand(1,11);y=x.*(exp(j).^(n*pi/4));w=[0:1:500]*pi/500;X=dtft(x,n,w);Y=dtft(y,n,w);figure(5)magX=abs(X);angX=angle(X);realX=real(X);imagX=imag(X);subplot(2,2,1);plot(w/pi,magX);gridxlabel('以pi为单位的频率');title('幅度部分');ylabel('幅度') subplot(2,2,3);plot(w/pi,angX);gridxlabel('以pi为单位的频率');title('相角部分');ylabel('弧度') subplot(2,2,2);plot(w/pi,realX);gridxlabel('以pi为单位的频率');title('实部');ylabel('实部') subplot(2,2,4);plot(w/pi,imagX);gridxlabel('以pi为单位的频率');title('虚部')figure(6)magY=abs(Y);angY=angle(Y);realY=real(Y);imagY=imag(Y);subplot(2,2,1);plot(w/pi,magY);gridxlabel('以pi为单位的频率');title('幅度部分');ylabel('幅度') subplot(2,2,3);plot(w/pi,angY);gridxlabel('以pi为单位的频率');title('相角部分');ylabel('弧度') subplot(2,2,2);plot(w/pi,realY);gridxlabel('以pi为单位的频率');title('实部');ylabel('实部') subplot(2,2,4);plot(w/pi,imagY);gridxlabel('以pi为单位的频率');title('虚部')%3_共轭n=0:10;x=rand(1,11);w=[0:1:500]*pi/500;X=dtft(x,n,w);Y=dtft(x,n,-w);figure(7)magX=abs(X);angX=angle(X);realX=real(X);imagX=imag(X);subplot(2,2,1);plot(w/pi,magX);gridxlabel('以pi为单位的频率');title('幅度部分');ylabel('幅度') subplot(2,2,3);plot(w/pi,angX);gridxlabel('以pi为单位的频率');title('相角部分');ylabel('弧度') subplot(2,2,2);plot(w/pi,realX);gridxlabel('以pi为单位的频率');title('实部');ylabel('实部') subplot(2,2,4);plot(w/pi,imagX);gridxlabel('以pi为单位的频率');title('虚部')figure(8)magY=abs(Y);angY=angle(Y);realY=real(Y);imagY=imag(Y);subplot(2,2,1);plot(w/pi,magY);gridxlabel('以pi为单位的频率');title('幅度部分');ylabel('幅度') subplot(2,2,3);plot(w/pi,angY);gridxlabel('以pi为单位的频率');title('相角部分');ylabel('弧度') subplot(2,2,2);plot(w/pi,realY);gridxlabel('以pi为单位的频率');title('实部');ylabel('实部') subplot(2,2,4);plot(w/pi,imagY);gridxlabel('以pi为单位的频率');title('虚部')4、实验内容四:LTI系统的频率响应H(e jw)%4a=[1 -0.8];b=[1];[H,w]=freqz(a,b);ang=angle(H);amp=real(H);subplot(2,1,1);plot(w,ang);gridxlabel('以pi为单位的频率');title('相角部分');ylabel('弧度')subplot(2,1,2);plot(w,amp);gridxlabel('以pi为单位的频率');title('幅度部分');ylabel('幅度')5、实验内容五:采样和重构编码:%5_1000Dt=0.00005;t=-0.005:Dt:0.005;xa=exp(-1000*abs(t));Ts=0.001;n=-5:1:5;x1=exp(-1000*abs(n*Ts));K=500;k=0:1:K;w=pi*k/K;X=x1*exp(-j*n'*w);w=[-fliplr(w),w(2:K+1)];X=[fliplr(X),X(2:K+1)];figure(1)subplot(2,1,1);plot(t*1000,xa);hold onstem(n*Ts*1000,x1),hold off,title('时域波形')subplot(2,1,2);plot(w/pi,X),title('频域波形')%5_1000_重构Ts=0.001;Fs=1/Ts;n=-5:1:5;nTs=n*Ts;Dt=0.00005;t=-0.005:Dt:0.005;xa=x1*sinc(Fs*(ones(length(nTs),1)*t-nTs'*ones(1,length(t)))); figure(2)subplot(2,1,1);plot(t*1000,xa);hold onstem(n*Ts*1000,x1);hold off;title('重构波形(不失真)')%5_5000Dt=0.00005;t=-0.005:Dt:0.005;xa=exp(-1000*abs(t));Ts=0.0002;n=-25:1:25;x1=exp(-1000*abs(n*Ts));K=500;k=0:1:K;w=pi*k/K;X=x1*exp(-j*n'*w);w=[-fliplr(w),w(2:K+1)];X=[fliplr(X),X(2:K+1)];figure(1)subplot(2,1,1);plot(t*1000,xa);hold on stem(n*Ts*1000,x1),hold off,title('时域波形') subplot(2,1,2);plot(w/pi,X),title('频域波形')%5_5000_重构Ts=0.0002;Fs=1/Ts;n=-25:1:25;nTs=n*Ts;Dt=0.00005;t=-0.005:Dt:0.005;xa=x1*sinc(Fs*(ones(length(nTs),1)*t-nTs'*ones(1,length(t)))); figure(2)subplot(2,1,1);plot(t*1000,xa);hold onstem(n*Ts*1000,x1);hold off;title('重构波形(不失真)')四、实验心得:。

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

MATLAB离散傅里叶变换通信论文
MATLAB离散傅里叶变换
1.设要求用MATLAB实现:
(1)计算的傅里叶变换,并绘出其幅度;
(2)分别计算的4点DFT和8点DFT,并绘出其幅度;
(提示:DFT变换可用MATLAB提供的函数fft实现)
思考:
(1)DFT和傅里叶变换的关系;
(2)N取8点DFT频谱是否比取4点时的频谱更密,为什么?
思考题解答:
(1)DFT相当于对连续的傅立叶变换进行N点等间隔采样
(2)N取8点时的DFT频谱比4点时的频谱更密。

因为采样点数多,采样间隔小。

function y=r(n1,n2)
n=n1:n2;
y=[(n-0)>=0];
n=0:3;
w=0:0.1:2*pi;
x=R*exp(-i*n'*w);
y=abs(x);
plot(w,y,'linewidth',0.8)
function y=r(n1,n2)
n=n1:n2;
y=[(n-0)>=0];
n=0:3;
R=r(0,3);
k1=0:3;
k2=0:7;
y1=abs(fft(R,4));
y2=abs(fft(R,8));
figure(1)
stem(k1,y1,'linewidth',1.0);
figure(2)
stem(k2,y2,'linewidth',1.0);
2.设 ={2,1,3,1},要求用MATLAB计算循环移位 Cirshftt.m
Function y=cirshftt(x,m,N)
x=[x zeros(1,Nlength(x))];n=0:N-1;n=mod(n-m,N);
x=[2 1 3 1];N=6;m=-1;
y=cirshftt(x,m,N)
结果:
y =论文网/
1 3 1 0 0 2
3. 设和是两个4点序列, ={1,2,2,1}, ={1,-1,1,-1},要求用MATLAB实现:(1)计算与的线性卷积;
(2)分别计算与的6、7、8点循环卷积。

思考:
1、线性卷积与循环卷积的关系;
2、什么条件下,线性卷积与循环卷积相等
思考题解答:
(1)循环卷积是线性卷积进行循环移位后的结果。

(2)当L>=M+N-1时线性卷积的结果和循环卷积相等。

程序:
(1):n=0:3;
x1=[1 2 2 1];
x2=[1 -1 2 -1];
y=conv(x1,x2)
结果:y =
1 1 1 0 -1 -1 -1
(2):function cir(N)
x1=[1 2 2 1];x2=[1 -1 1 -1];
x1=[x1 zeros(1,N-length(x1))];
x2=[x2 zeros(1,N-length(x2))];
m=0:N-1;
x=zeros(N,N);
for n=0:N-1;
x(:,n+1)=x2(mod((n-m),N)+1)';
end
fn=x1*x
结果:
>> cir(6)
fn =
0 1 1 0 -1 -1
>> cir(7)
fn =
1 1 1 0 -1 -1 -1
>> cir(8)
fn =
1 1 1 0 -1 -1 -1 0
小结:通过本次实验,我进一步认识了傅立叶变换的求法,知道了DFT和傅里叶变换的关系和采样点数与频谱疏密的关系,进一步熟
悉了循环移位和循环卷积的算法实现过程.。

相关文档
最新文档