数字信号处理实验 matlab版 离散傅里叶变换的性质
数字信号处理 实验 离散傅里叶变换及其特性验证
数字信号处理实验报告实验名称: 离散傅里叶变换及其特性验证 学号: 姓名: 评语: 成绩:一、实验目的1、掌握离散时间傅立叶变换(DTFT )的计算方法和编程技术。
2、掌握离散傅立叶变换(DFT )的计算方法和编程技术。
3、理解离散傅立叶变换(DFT )的性质并用MA TLAB 进行验证。
二、实验原理与计算方法1、离散时间傅立叶变换如果序列x (n )满足绝对可和的条件,即∞<∑∞-∞=n n x |)(|,则其离散时间傅立叶变换定义为: ∑∞-∞=-==n nj j en x n x F e X ωω)()]([)( (1)如果x (n )是无限长的,则不能直接用MATLAB 由x (n )计算X (e j ω),但可以用它来估计X (e j ω)表达式在[0,π]频率区间的值并绘制它的幅频和相频(或实部和虚部)曲线。
如果x (n )是有限长的,则可以用MATLAB 对任意频率ω处的X (e j ω)进行数值计算。
如果要在[0,π]间按等间隔频点估计X (e j ω),则(1)式可以用矩阵-向量相乘的运算来实现。
假设序列x (n )在N n n n ≤≤1(即不一定在[0, N -1])有N 个样本,要估计下列各点上的X (e j ω):M k k Mk ...,2,1,0==, πω它们是[0,π]之间的(M +1)个等间隔频点,则(1)式可写成: M k n x ee X Nl l kn Mjj l...,2,1,0)()(1==∑=-, πω(2)将{x (n l )}和{X (e j ωk)}分别排列成向量x 和X ,则有:X=Wx (3) 其中W 是一个(M +1)×N 维矩阵:⎭⎬⎫⎩⎨⎧=≤≤=-M k n n n e N kn M j ...,2,1,0;1, πW将{k }和{n }排成列向量,则⎥⎦⎤⎢⎣⎡⎪⎭⎫ ⎝⎛-=n k W T M j πexp 在MA TLAB 中,把序列和下标排成行向量,对(3)式取转置得:⎥⎦⎤⎢⎣⎡⎪⎭⎫ ⎝⎛-=k n x X T T T M j πexp其中n T k 是一个N ×(M +1)维矩阵。
数字信号处理实验matlab版离散傅里叶级数(DFS)
数字信号处理实验matlab版离散傅⾥叶级数(DFS)实验11 离散傅⾥叶级数(DFS)(完美格式版,本⼈⾃⼰完成,所有语句正确,不排除极个别错误,特别适⽤于⼭⼤,勿⽤冰点等⼯具下载,否则下载之后的word格式会让很多部分格式错误,谢谢)XXXX学号姓名处XXXX⼀、实验⽬的1、加深对离散周期序列傅⾥叶级数(DFS)基本概念的理解。
2、掌握⽤MA TLAB语⾔求解周期序列傅⾥叶级数变换和逆变换的⽅法。
3、观察离散周期序列的重复周期数对频谱特性的影响。
4、了解离散序列的周期卷积及其线性卷积的区别。
⼆、实验内容1、周期序列的离散傅⾥叶级数。
2、周期序列的傅⾥叶级数变换和逆变换。
3、离散傅⾥叶变换和逆变换的通⽤⼦程序。
4、周期重复次数对序列频谱的影响。
5、周期序列的卷积和。
三、实验环境MA TLAB7.0四、实验原理⽤matlab进⾏程序设计,利⽤matlab绘图⼗分⽅便,它既可以绘制各种图形,包括⼆维图形和三位图形,还可以对图像进⾏装饰和控制。
1、周期序列的离散傅⾥叶级数(1)连续性周期信号的傅⾥叶级数对应的第k次谐波分量的系数为⽆穷多。
⽽周期为N 的周期序列,其离散傅⾥叶级数谐波分量的系数只有N个是独⽴的。
(2)周期序列的频谱也是⼀个以N为周期的周期序列。
2、周期序列的傅⾥叶级数变换和逆变换例11-1已知⼀个周期性矩形序列的脉冲宽度占整个周期的1/4,⼀个周期的采样点数为16点,显⽰3个周期的信号序列波形。
要求:(1)⽤傅⾥叶级数求信号的幅度频谱和相位频谱。
(2)求傅⾥叶级数逆变换的图形,与原信号图形进⾏⽐较。
解MA TLAB程序如下:N=16;xn=[ones(1,N/4),zeros(1,3*N/4)];xn=[xn,xn,xn];n=0:3*N-1;k=0:3*N-1;Xk=xn*exp(-j*2*pi/N).^(n'*k); %离散傅⾥叶级数变换 x=(Xk*exp(j*2*pi/N).^(n'*k))/N; %离散傅⾥叶级数逆变换subplot(2,2,1),stem(n,xn);title('x(n)');axis([-1,3*N,1.1*min(xn),1.1*max(xn)]); subplot(2,2,2),stem(n,abs(x)); %显⽰逆变换结果 title('IDFS|X(k)|');axis([-1,3*N,1.1*min(x),1.1*max(x)]); subplot(2,2,3),stem(k,abs(Xk)); %显⽰序列的幅度谱 title('|X(k)|');axis([-1,3*N,1.1*min(abs(Xk)),1.1*max(abs(Xk))]); subplot(2,2,4),stem(k,angle(Xk)); %显⽰序列的相位谱 title('arg|X(k)|');axis([-1,3*N,1.1*min(angle(Xk)), 1.1*max(angle(Xk))]);运⾏结果如图11-1所⽰。
信号处理实验报告
一、实验目的本次实验旨在通过MATLAB软件平台,对数字信号处理的基本概念、原理和方法进行学习和实践。
通过实验,加深对以下内容的理解:1. 离散时间信号的基本概念和性质;2. 离散时间系统及其特性;3. 离散傅里叶变换(DFT)及其性质;4. 离散傅里叶逆变换(IDFT)及其应用;5. 窗函数及其在信号处理中的应用。
二、实验内容1. 离散时间信号的产生与性质(1)实验步骤:1.1 利用MATLAB生成以下离散时间信号:- 单位脉冲序列:δ[n];- 单位阶跃序列:u[n];- 矩形序列:R[n];- 实指数序列:a^n;- 复指数序列:e^(jωn)。
1.2 分析并比较这些信号的性质,如自相关函数、功率谱密度等。
(2)实验结果:实验结果显示,不同类型的离散时间信号具有不同的性质。
例如,单位脉冲序列的自相关函数为δ[n],功率谱密度为无穷大;单位阶跃序列的自相关函数为R[n],功率谱密度为有限值;矩形序列的自相关函数为R[n],功率谱密度为无穷大;实指数序列和复指数序列的自相关函数和功率谱密度均为有限值。
2. 离散时间系统及其特性(1)实验步骤:2.1 利用MATLAB构建以下离散时间系统:- 线性时不变系统:y[n] = x[n] a^n;- 非线性时不变系统:y[n] = x[n]^2;- 线性时变系统:y[n] = x[n] (1 + n)。
2.2 分析并比较这些系统的特性,如稳定性、因果性、线性时不变性等。
(2)实验结果:实验结果显示,不同类型的离散时间系统具有不同的特性。
例如,线性时不变系统的输出与输入之间存在线性关系,且满足时不变性;非线性时不变系统的输出与输入之间存在非线性关系,但满足时不变性;线性时变系统的输出与输入之间存在线性关系,但满足时变性。
3. 离散傅里叶变换(DFT)及其性质(1)实验步骤:3.1 利用MATLAB对以下离散时间信号进行DFT变换:- 单位脉冲序列:δ[n];- 单位阶跃序列:u[n];- 矩形序列:R[n]。
实验四 离散傅里叶变换的性质
实验四离散傅里叶变换的性质一、实验目的1. 熟悉matlab软件中离散傅里叶变换的实现方法及FFT函数的使用方法;2. 通过软件仿真,加深对离散傅里叶变换性质的理解。
二、实验内容1. 验证离散傅里叶变换的线性性质;2. 掌握用matlab实现圆周移位的方法;3. 验证圆周卷积与线性卷积的关系。
三、实验步骤1. 验证线性性质设两个有限长序列分别为xn1=[3,1,-2,2,3,4],xn2=[1,1,1,1],做4DFT[xn1]+2DFT[xn2],及DFT[4xn1+2xn2]的运算,比较它们的结果。
代码如下:clear,N=20;n=[0:1:N-1];xn1=[3,1,-2,2,3,4];n1=0:length(xn1)-1; %定义序列xn1xn2=[1,1,1,1];n2=0:length(xn2)-1; %定义序列xn2yn1=4*xn1;yn2=2*xn2;[yn,ny]=seqadd(yn1,n1,yn2,n2); %计算4xn1+2xn2xk1=fft(xn1,N);xk2=fft(xn2,N); %分别求DFT[xn1] 和DFT[xn2]yk0=4*xk1+2*xk2; %计算4DFT[xn1]+2DFT[xn2]yk=fft(yn,N); %计算DFT[4xn1+2xn2]subplot(2,1,1);stem(n,yk0);title('傅里叶变换之和') %显示4DFT[xn1]+2DFT[xn2]subplot(2,1,2);stem(n,yk);title('序列和之傅里叶变换') %显示DFT[4xn1+2xn2]运行结果如图1所示,从图中可知,用两种方法计算的DFT完全相等,所以离散傅里叶变换的线性性质得到验证。
图1 离散傅里叶变换的线性性质2. 圆周移位设x=[7,6,5,4,3,2],位于主值区间,现要把x分别圆周右移两位,圆周左移1位,成为新主值区间的向量,以此观察圆周移位的特点。
Matlab中的离散傅里叶变换方法介绍
Matlab中的离散傅里叶变换方法介绍Matlab中的离散傅里叶变换(Discrete Fourier Transform,DFT)方法是数字信号处理中常用的工具。
通过将时域信号转换为频域信号,可以提取信号的频谱信息,帮助我们分析信号的频率成分以及进行滤波、压缩等处理。
本文将介绍Matlab中常用的几种离散傅里叶变换方法。
首先,我们来了解一下DFT的概念。
DFT是将时域中N个数据点的离散信号转换为频域中N个数据点的过程,其中N为一个正整数。
在Matlab中,可以使用fft函数来实现DFT。
fft函数的输入是一个长度为N的向量,输出是一个长度为N的复数向量,表示信号在频域中的幅度谱和相位谱。
在离散傅里叶变换中,有两种常用的方法,分别是直接计算和快速傅里叶变换(Fast Fourier Transform,FFT)。
首先我们来介绍直接计算方法。
直接计算方法是通过DFT的定义来计算每个频率点的幅度和相位,然后将它们组成一个复数向量。
在Matlab中,可以使用for循环来逐个计算每个频率点的值。
具体的代码如下所示:```N = length(signal); % 信号长度X = zeros(1, N); % 存储频域结果的向量for k = 0:N-1for n = 0:N-1X(k+1) = X(k+1) + signal(n+1) * exp(-1i * 2 * pi * k * n / N);endend```上述代码中的signal为输入的时域信号,X为计算得到的频域结果。
通过两层循环,我们可以计算出每个频率点的幅度和相位。
然而,直接计算方法的复杂度为O(N^2),计算效率较低,不适用于大规模的信号处理。
接下来,我们介绍更高效的FFT方法。
FFT是将DFT分解为多个较小规模的DFT的过程,从而提高计算效率。
在Matlab中,可以直接使用fft函数来进行FFT计算。
fft函数的输入和输出与DFT的定义相同,但是计算速度更快。
用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.离散傅里叶变换是一种近似方法,当信号长度较小时,结果可能存在误差。
离散傅立叶变换的性质及应用实验
离散傅立叶变换的性质及应用实验实验目的 1.了解DFT性质及应用。
2.熟悉MATLAB编程的特点。
实验要求能够用MATLAB来进行数字信号的处理。
实验原理 1、DFT变换正变换:反变换:2、序列卷积设序列的长度为N,序列的长度为M。
则分别对两个序列作点的DFT得到和,则两序列的线性卷积等于。
即时域卷积频域为相乘关系。
实验仪器计算机一台;MATLAB软件实验步骤 1、用三种不同的DFT程序计算的傅立叶变换,并比较三种程序计算机的运行时间。
(1)编制用for循环语句的M函数文件dft1.m,用循环变量逐点计算;(2)编写用MATLAB矩阵运算的M函数文件dft2.m,完成下列矩阵运算:(3)调用FFT库函数,直接计算 ;(4)分别利用上述三种不同方式编写的DFT程序计算序列的傅立叶变换,并画出相应的幅频和相频特性,再比较各个程序的计算机运行时间。
2、利用DFT 实现两序列的卷积运算,并研究DFT点数与混叠的关系。
用FFT和IFFT分别求线性卷积和混叠结果输出,并用函数stem(n,y)画出相应图形。
选择不同的DFT点数进行对比,观察其混叠效应。
3、研究高密度频谱与高分辨率频谱设有连续信号以采样频率对该信号采样,分析下列三种情况的幅频特性。
(1)采集数据长度点,做点的DFT,并画出幅频特性。
(2)采集数据长度点,补零到256点的DFT,并画出幅频特性。
(3)采集数据长度点,做点的DFT,并画出幅频特性。
观察三幅不同频率特性图,分析和比较它们的特点以及形成的原因。
4、实现序列的内插和抽取所对应的傅立叶变换。
给定序列,做128点的傅立叶变换,并求和为整数对应的傅立叶变换(128点)。
比较这三个计算结果得到的幅频特性图,分析其差别产生的原因。
选择不同的插值倍数和抽样倍数对比其幅频的变化实验内容 1.(1)M函数文件dft1.mfunction y=dft1(x)N=length(x);for k=1:N A=0;for n=1:NA=A+x(n)*exp((-j*2*pi/N)*(k-1)*(n-1));y(k)=A;endendend(2)M函数文件dft2.mfunction y=dft2(x)N=length(x);x1=x'';for r=1:Nfor c=1:Ng(r,c)=exp((-j*2*pi/N)*(r-1)*(c-1));endendy=g*x1;end2.取23点的DFT>> x=0:15;h=ones(1,8); y1=fft(x,23); y2=fft(h,23); y3=y1.*y2; y4=ifft(y3,23)取24点的DFT>> y1=fft(x,24); y2=fft(h,24); y3=y1.*y2; y4=ifft(y3,24)取18点的DFT>> y1=fft(x,18); y2=fft(h,18); y3=y1.*y2; y4=ifft(y3,18)3.>> fs=32000;Ndata=16;N=16;>> n=0:Ndata-1;t=n/fs;>> x=cos(2*pi*6500*t)+cos(2*pi*9000*t);/>> x2=neicha(x,3);>> y=fft(x,128);y1=fft(x1,128);y2=fft(x2,128);>> subplot(3,1,1),stem(n,abs(y)),title(''x(n)幅频特性'')>> subplot(3,1,2),stem(n,abs(y1)),title(''x(3n)幅频特性'')>> subplot(3,1,3),stem(n,abs(y2)),title(''x(n/3)幅频特性'')>> grid on>> subplot(3,1,1),grid on>> subplot(3,1,2),grid on序列抽取函数chouqu.mfunction y=chouqu(x,k)n=length(x);m=((n-1)-mod((n-1),k))/k;for j=0:my(j+1)=x(k*j+1);endend序列内插函数neicha.mfunction y=neicha(x,k)n=length(x);for m=0:(n-1)*kif mod(m,k)==0y(1+m)=x((m/3)+1);else y(m+1)=0;endendend为序列抽取和内插函数。
离散信号的傅里叶变换(MATLAB实验)
离散信号的变换(MATLAB 实验)一、实验目的掌握用Z 变换判断离散系统的稳定与否的方法,掌握离散傅立叶变换及其基本性质和特点,了解快速傅立叶变换。
二、实验内容1、已经系统函数为5147.13418.217.098.22505)(2342-++--+=z z z z z z Z H (1) 画出零极点分布图,判断系统是否稳定;(2)检查系统是否稳定;(3) 如果系统稳定,求出系统对于u(n)的稳态输出和稳定时间b=[0,0,1,5,-50];a=[2,-2.98,0.17,2.3418,-1.5147];subplot(2,1,1);zplane(b,a);title('零极点分布图');z=roots(a);magz=abs(z)magz =0.90000.92200.92200.9900n=[0:1000];x=stepseq(0,0,1000);s=filter(b,a,x);subplot(2,1,2);stem(n,s);title('稳态输出');(1)因为极点都在单位园内,所以系统是稳定的。
(2)因为根的幅值(magz )都小于1,所以这个系统是稳定的。
(3)稳定时间为570。
2、综合运用上述命令,完成下列任务。
(1) 已知)(n x 是一个6点序列: ⎩⎨⎧≤≤=其它,050,1)(n n x计算该序列的离散时间傅立叶变换,并绘出它们的幅度和相位。
要求:离散时间傅立叶变换在[-2π,2π]之间的两个周期内取401个等分频率上进行数值求值。
n=0:5;x=ones(1,6);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/pi,magX);grid;title('幅度');subplot(2,1,2);plot(w/pi,angX);grid;title('相位');(2) 已知下列序列:a. ,1000),52.0cos()48.0cos()(≤≤+=n n n n x ππ;b .)4sin()(πn n x =是一个N =32的有限序列;试绘制)(n x 及它的离散傅立叶变换)(k X 的图像。
实验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实现离散傅里叶变换
用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)
>> 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 实现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软件学院:信息与通信工程学院班级\学号:姓名:指导老师:成绩:实验日期:一、实验目的1.了解DFT 的性质及其应用2.熟悉MATLAB 编程特点二、实验仪器及材料计算机,MATLAB 软件三、实验内容及要求1.用三种不同的DFT 程序计算8()()x n R n =的256点离散傅里叶变换()X k ,并比较三种程序计算机运行时间。
(1)编制用for loop 语句的M 函数文件dft1.m ,用循环变量逐点计算()X k ;(2)编写用MATLAB 矩阵运算的M 函数文件dft2.m ,完成下列矩阵运算:00000121012(1)(1)(1) (0)(0) (1)(1) (1)(1) N N N N N N N N N N N N N N N N N X x W W W W X x W W W W x N X N W W W W -----⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥--⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦ (3)调用fft 库函数,直接计算()X k ;(4)分别调用上述三种不同方式编写的DFT 程序计算序列()x n 的离散傅里叶变换()X k ,并画出相应的幅频和相频特性,再比较各个程序的计算机运行时间。
2.利用DFT 实现两序列的卷积运算,并研究DFT 点数与混叠的关系。
(1)已知两序列: ⎩⎨⎧>≤≤=3;030;)5/3()(n n n h n ,用MATLAB 生成随机输入信号x(n),n 的取值为0~2;(2)用直接法(即用线性卷积的定义计算,见下式)计算线性卷积y(n)=x(n)*h(n)的结果,并以图形方式表示结果;20),()()(10-+≤≤-⨯=∑-=M N n m n h m x n y N m 其中:序列)1N n 0(),n (x -≤≤和序列)1M n 0(),n (h -≤≤(3)用MA TLAB 编制利用DFT 计算线性卷积y(n)=x(n)*h(n)的程序;分别令圆周卷积的点数为L=5,6,8,10,以图形方式表示结果。
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版 离散傅里叶变换的性质
实验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中,我们可以使用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('傅里叶变换');通过运行上述代码,我们可以得到原始序列和傅里叶变换后的频域表示的图像。
《数字信号处理》实验讲义(信息计算)
《数字信号处理》实验指导书实验一 常见离散信号的产生一、实验目的1. 加深对离散信号的理解。
2. 掌握典型离散信号的Matlab 产生和显示。
二、实验原理及方法在MATLAB 中,序列是用矩阵向量表示,但它没有包含采样信息,即序列位置信息,为此,要表示一个序列需要建立两个向量;一是时间序列n,或称位置序列,另一个为取值序列x ,表示如下: n=[…,-3,-2,-1,0,1,2,3,…]x=[…,6,3,5,2,1,7,9,…]一般程序都从0 位置起始,则x= [x(0), x(1), x(2),…]对于多维信号需要建立矩阵来表示,矩阵的每个列向量代表一维信号。
数字信号处理中常用的信号有指数信号、正弦信号、余弦信号、方波信号、锯齿波信号等,在MATLAB 语言中分别由exp, sin, cos, square, sawtooth 等函数来实现。
三、实验内容1. 用MATLAB 编制程序,分别产生长度为N(由输入确定)的序列:①单位冲击响应序列:()n δ可用MATLAB 中zeros 函数来实现; ②单位阶跃序列:u(n)可用MATLAB 中ones 函数来实现; ③正弦序列:()sin()x n n ω=; ④指数序列:(),nx n a n =-∞<<+∞⑤复指数序列:用exp 函数实现()0()a jb nx n K e+=,并给出该复指数序列的实部、虚部、幅值和相位的图形。
(其中00.2,0.5,4,40a b K N =-===.)参考流程图:四、实验报告要求1. 写出实验程序,绘出单位阶跃序列、单位阶跃序列、正弦序列、指数序列的图形以及绘 出复指数序列的实部、虚部、幅值和相位的图形。
2. 序列信号的实现方法。
3. 在计算机上实现正弦序列0()sin(2)x n A fn πϕ=+。
实验二 离散信号的运算一、实验目的1. 掌握离散信号的时域特性。
2. 用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点圆周卷积。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验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所示。
图13-1 例13-1有限长序列的傅里叶变换的线性性质2 循环移位性质如果有限长序列为x(n),长度为N ,将x(n)左移m 位,则y(n)=x((n +m)N )R N (n) x(n)左移m 位的过程可由以下步骤获得:(1)将x(n)以N 为周期进行周期延拓,得到(n)x ~=x((n)N);(2)将(n)x ~左移m 位,得到m )(n x ~+;(3)取m )(n x ~+的主值序列,得到x(n)循环移位序列y(n)。
有限长序列的移位也称为循环移位,原因是将x(n)左移m 位时,移出的m 位又依次从右端进入主值区。
下面举例说明。
例13-2 已知有限长序列x(n)=[1,2,3,4,5,6],求x(n)左移2位成为新的向量y(n),并画出循环移位的中间过程。
解 MA TLAB 程序如下:>> xn=[1,2,3,4,5,6]; %建立xn 序列 >> Nx=length(xn);nx=0:Nx-1; >> nx1=-Nx:2*Nx-1; %设立周期延拓的范围 >> x1=xn(mod(nx1,Nx)+1); %建立周期延拓序列 >> ny1=nx1-2;y1=x1; %将x1左移2位,得到y1 >> RN=(nx1>=0)&(nx1<Nx); %在x1的位置向量nx1上设置主值窗 >> RN1=(ny1>=0)&(ny1<Nx); %在y1的位置向量ny1上设置主值窗 >> subplot(4,1,1),stem(nx1,RN.*x1); %画出x1的主值部分 >> subplot(4,1,2),stem(nx1,x1); %画出x1 >> subplot(4,1,3),stem(ny1,y1); %画出y1 >> subplot(4,1,4),stem(ny1,RN1.*y1); %画出y1的主值部分 运行结果如图13-2所示。
-6-4-224681012-8-6-4-2246810图13-2 例13-2有限长序列的循环移位3 循环折叠性质如果要把有限长N 点序列x(n)直接进行折叠,则x 的下标(-n)将不在0≤n ≤N -1区域内。
但根据有限长序列傅里叶变换隐含的周期性,可以对变量(-n)进行N 求余运算。
即在MA TLAB 中,序列x(n)的折叠可以由y =x(mod(-nx ,N)+1)得到。
有限长N 点序列x(n)的循环折叠序列y(n)定义为⎩⎨⎧≤≤=1-N n 1)n -N x(0=n x(0))n)x((y(n)N -=可以想像成,序列x(n)以反时针方向等间隔放置在一个圆周上,则x(-n)是将x(n)沿着圆周顺时针方向等间隔放置。
循环折叠性质同样适用于频域。
经循环折叠后,序列的DFT 由下式给出:⎩⎨⎧≤≤=-=-=*1-N k 1k)-X(N 0=k X(0))k)((X )]n)DFT[x((Y(k)N N就是说,在时域循环折叠后的函数,其对应的DFT 在频域也作循环折叠,并取X(k)的共轭。
例13-3 求x(n)=[1,2,3,4,5,6,7],循环长度分别取N =7,N =10。
(1)画出x(n)的图形; (2)画出x(-n)的图形。
解 MA TLAB 程序如下:>> x1=[1,2,3,4,5,6,7]; %建立x(n),N=7序列 >> N1=length(x1);n1=0:N1-1; >> y1=x1(mod(-n1,N1)+1); %建立x(-n),N=7序列 >> N2=10;>> x2=[x1,zeros(1,N2-N1)]; %建立x(n),N=10序列 >> n2=0:N2-1;>> y2=x2(mod(-n2,N2)+1); %建立x(-n),N=10序列 >> subplot(2,2,1),stem(n1,x1,'k'); %画x(n),N=7 >> title('x(n),N=7');>> subplot(2,2,3),stem(n1,y1,'k'); %画x(-n),N =7 >> title('x(-n),N=7');>> subplot(2,2,2),stem(n2,x2,'k');% 画x(n),N=10 >> title('x(n),N=10');>> subplot(2,2,4),stem(n2,y2,'k'); %画x(-n),N =10 >> title('x(-n),N=10'); 运行结果如图13-3所示。
0246x(n),N=7246x(-n),N=7x(n),N=10x(-n),N=10图13-3 例13-3离散序列的循环折叠例13-4 如例13-3求x(n)=[1,2,3,4,5,6,7],循环长度取N =7。
求证:在时域循环折叠后的函数x(-n),其对应的DFT 在频域也作循环折叠,并取X(k)的共轭。
解 MA TLAB 程序如下:>> x1=[1,2,3,4,5,6,7]; %建立x(n),N=7序列 >> N=length(x1); >> n=0:N-1;k=0:N-1; >> y1=x1(mod(-n,N)+1); %建立x(-n),N=7序列 >> Xk=x1*exp(-j*2*pi/N).^(n'*k) %求x(n)的DFT >> Yk=y1*exp(-j*2*pi/N).^(n'*k) %求x(-n)的DFT 运行结果: Xk =Columns 1 through 528.0000 -3.5000 + 7.2678i -3.5000 + 2.7912i -3.5000 + 0.7989i -3.5000 - 0.7989i Columns 6 through 7-3.5000 - 2.7912i -3.5000 - 7.2678i Yk =Columns 1 through 528.0000 -3.5000 - 7.2678i -3.5000 - 2.7912i -3.5000 - 0.7989i -3.5000 + 0.7989i Columns 6 through 7-3.5000 + 2.7912i -3.5000 + 7.2678i4 时域和频域循环卷积特性离散傅里叶变换的循环卷积特性也称为圆周卷积,分为时域卷积和频域卷积两类。