MATLAB的离散傅里叶变换的仿真

合集下载

基于Matlab的傅里叶变换性质仿真

基于Matlab的傅里叶变换性质仿真
理解傅 里 叶变换 的实 际应 用 , 提 高学 习 的主动 性 , 加
强教 学效 果 。
其对应的频谱 , 可以得 出结论 : 信号 f ( a t ) 的带宽是
信号 f ( t ) 带宽的 a 倍 。我们可 以播放一段 门铃音 f ( t ) , 正常播放 时持续时间为 1 . 2 s ; 将播放时间压缩 为0 . 6 s , 相当于 f ( 2 t ) , 听起来感觉声音频率变高了 ;
冲激函数 ; f - j 函数的傅里叶变换为抽样 函数 ; 抽样信

号的傅里叶变换则应为门函数 。 用 Ma t l a b 分别绘出 抽样信号 f i ( t ) = S a ( t ) 和门信号  ̄ ( t ) - r r g 2 ( t ) 的时域 波形及频谱 , 仿真结果如图一所示 , 上一行从左到右
形图,我们知道后一信号相对于前一信号仅仅是发 生了平移 , 这就比较好理解 了。 用 Ma t l a b 分别绘出 f i ( t ) = 1 e - 2 t u ( t ) ; i f ( t ) =1

则: F ( t ) + + 2 T T f ( 一【 ^ J ) 。 我们都知道冲激信号的傅里 叶变换的幅度谱 为常数 ; 直流信号的傅里叶变换为
上 的波 形相 同 。
1 . 2时域 平移 性质
幅度谱 , 可 以看到平移后信号的幅度谱未变, 三信号 的幅度谱重叠 ; 下图是信号的的相位谱 , 三个信号的
相位 谱是 不 同的 。
1 . 3 频 域平 移性 质
假设 函数 f ( t ) + ÷ F ( 【 ^ J ) 构成一傅里 叶变 换对 , 则: it f +t 0 ) + + e J  ̄ F ( j t o o信号时域平移 , 则在频域 上只是附加 了一个线性相位 , 我们这样来理解 : 正弦 信号 s i n ( t ) 和s i n ( t + 4 5 。 ), 两个 信号幅度 、 频率是 相同的 , 区别仅仅是在初始相位上 , 画出两信号的波

matlab实现傅里叶变换与反变换、离散余弦变换与反变换

matlab实现傅里叶变换与反变换、离散余弦变换与反变换

matlab实现傅里叶变换与反变换、离散余弦变换与反变换首先,我们需要了解傅里叶变换和离散余弦变换的原理。

傅里叶变换是一种将时域信号转换为频域信号的方法,它可以将任意信号分解为一系列正弦和余弦信号的叠加。

离散余弦变换则是一种将离散信号转换为一组离散余弦信号的方法。

接下来,我们可以使用matlab中的fft函数来实现傅里叶变换和反变换。

具体步骤如下:
1. 定义一个信号向量x,可以使用matlab中的sin、cos、randn 等函数生成。

2. 使用fft函数对信号进行傅里叶变换,得到频域信号向量X。

3. 使用ifft函数对频域信号向量X进行反变换,得到原始信号向量x1。

4. 使用plot函数将原始信号向量x和反变换后的信号向量x1绘制在同一张图上,进行对比。

接下来,我们可以使用matlab中的dct函数来实现离散余弦变换和反变换。

具体步骤如下:
1. 定义一个长度为N的信号向量x,可以使用matlab中的sin、cos、randn等函数生成。

2. 使用dct函数对信号进行离散余弦变换,得到频域信号向量X。

3. 使用idct函数对频域信号向量X进行反变换,得到原始信号向量x1。

4. 使用plot函数将原始信号向量x和反变换后的信号向量x1绘制在同一张图上,进行对比。

通过上述步骤,我们可以使用matlab轻松实现傅里叶变换和离散余弦变换。

这些技术在信号处理、图像处理、音频处理等领域中得到广泛应用,掌握这些技术将有助于我们更好地理解和应用相关领域的算法。

用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.离散傅里叶变换是一种近似方法,当信号长度较小时,结果可能存在误差。

有关傅里叶变换的MATLAB仿真

有关傅里叶变换的MATLAB仿真

有关傅里叶变换的MATLAB仿真Homework 1:1) Determine the DFT of sequence x(n)=R4(n) with N=4, N=8 and N=16 by MATLAB, and plot the figures;程序如下:function[Xk] = DFT(xn,N)k = [0:1:N-1];n = [0:1:N-1];Wn = exp(-j*2*pi/N);kn = k'*n;Wn_kn = Wn.^kn;Xk = xn*Wn_kn;clearxn1=[1 1 1 1];xn2=[1 1 1 1 0 0 0 0];xn3=[1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0];N1=length(xn1);N2=length(xn2);N3=length(xn3);XK1=DFT(xn1,N1); magX1=abs(XK1);XK2=DFT(xn2,N2); magX2=abs(XK2);XK3=DFT(xn3,N3); magX3=abs(XK3)subplot(3,1,1);L1=0:1:N1-1;stem(L1,magX1); axis([0 N1 0 5]);subplot(3,1,2);L2=0:1:N2-1;stem(L2,magX2); axis([0 N2 0 5]);subplot(3,1,3);L3=0:1:N3-1;stem(L3,magX3);axis([0 N3 0 5]);最终方针波形如下:2) Determine the FT of sequence x(n)=R4(n) by MATLAB, and plot the figure;程序如下:function Ke=FT(xn,N)n=0:1:N-1;w=0:0.01*pi:2*pi;Wn=exp(-j*n'*w);Ke=xn*Wn;endclear;xn=[1 1 1 1];w=0:0.01*pi:2*pi;N=length(xn);Ke=FT(xn,N);Ke1=abs(Ke);plot(w,Ke1);axis([0 2*pi 0 5]);最终仿真波形如下:3) Compare figures and give the relationship between DFT and FT;程序如下:(调用函数上边已经求得,这里不再重复)clearxn1=[1 1 1 1];xn2=[1 1 1 1 0 0 0 0];xn3=[1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0];N1=length(xn1);N2=length(xn2);N3=length(xn3);XK1=DFT(xn1,N1);magX1=abs(XK1);XK2=DFT(xn2,N2);magX2=abs(XK2);XK3=DFT(xn3,N3);magX3=abs(XK3);subplot(4,1,1);L1=0:1:N1-1;stem(L1,magX1);axis([0 N1 0 5]);xlabel('N=4');subplot(4,1,2);L2=0:1:N2-1; stem(L2,magX2); axis([0 N2 0 5]); xlabel('N=8');subplot(4,1,3);L3=0:1:N3-1; stem(L3,magX3); axis([0 N3 0 5]); xlabel('N=16');subplot(4,1,4);xn=[1 1 1 1];w=0:0.01*pi:2*pi; N=length(xn);Ke=FT(xn,N);Ke1=abs(Ke); plot(w,Ke1);axis([0 2*pi 0 5]); xlabel('FT');Homework 2:1) Computing the 24-points DFTs of the two sequences that x1(n)= cos(nπ/6) and x2(n)= cos(nπ/4) using a single 24-point DFT by Matlab;2) Plot the figure of x1(n), x2(n), |X1(k)| and |X2(k)|;3) Analysis the value of |X1(k)| and |X2(k)|;4) Applying IDFT to X1(k) and X2(k) to obtain x1N(n) and x2N(n);程序如下:function[Xk] = DFT(xn,N)k = [0:1:N-1];n = [0:1:N-1];Wn = exp(-j*2*pi/N);kn = k'*n;Wn_kn = Wn.^kn;Xk = xn*Wn_kn;function[xn] =IDFT(Xk,N) k = [0:1:N-1];n = [0:1:N-1];Wn = exp(-j*2*pi/N);kn = k'*n;Wn_kn = Wn.^(-kn);xn = (Xk*Wn_kn)/N;clearN=24;n=0:23;xn1=cos(n*pi/6);xn2=cos(n*pi/4);xn=xn1+j*xn2;XK=DFT(xn,N);XKN=conj(XK);for k=2:NXKN(k)=conj(XK(N-k+2)); endXK1=(XK+XKN)/2XK2=(XK-XKN)/(2*j)x1n=IDFT(XK1,N);x2n=IDFT(XK2,N);subplot(2,2,1)stem(n,xn1);subplot(2,2,2)stem(n,xn2);subplot(2,2,3)stem(n,x1n);axis([0 30 -1 1]);subplot(2,2,4)stem(n,x2n);axis([0 30 -1 1]);最终仿真波形如下图:5) Compare x1(n) and x1N(n);Compare x2(n) and x2N(n);这里,x1(n)是程序中的xn1,x2(n)是程序中的xn2;x1N(n)是程序中的x1n,x1N(n)是程序中的x2n,他们的比较如上图所示。

离散信号的傅里叶变换(MATLAB实验)

离散信号的傅里叶变换(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 的图像。

#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('重构波形(不失真)')四、实验心得:。

实验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,并绘制了频谱图。

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

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

实验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作为一款强大的数学软件,可以方便地实现傅里叶变换并进行相应的分析和处理。

本文将介绍如何使用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在离散傅立叶变换(DFT)中的应用

实验四 MATLAB在离散傅立叶变换(DFT)中的应用

MATLAB 在离散傅立叶变换(DFT)中的应用一、序列的移位和周期延拓运算。

已知)()8.0()(8n R n x n =,利用MATLAB 生成并图示序列),(),(m n x n x -和)())((8n R n x N),())((8n R m n x N -其中为周期的延拓。

以表示8)())((,0,248n x n x N m N <<= 解:MATLAB 程序清单如下:N=24;M=8;m=3;% 设移位值为3n=0:N-1;xn=0.8.^n.*(n>=0 & n<M); % 产生序列x(n)subplot(3,1,1);stem(n,xn,'.');grid;axis([0 length(xn),0 1]);title('序列x(n)');xc=xn(mod(n,8)+1); % 产生序列x(n)的周期延拓,求余后加1是因为 % MATLAB 矢量的下标从1开始subplot(3,1,2);stem(n,xc,'.');grid;axis([0 length(xc),0 1]);title('序列x(n)的周期延拓序列');xm=[xn(m+1:M) xn(1:m)]; % 产生圆周移位序列xm=x((n+m))NRN (n)xm=[xm zeros(1,N-length(xm))];subplot(3,1,3);stem(n,xm,'.');grid;axis([0 length(xm),0 1]);title('圆周移位序列x(n+m)');二、利用MATLAB 验证N 点DFT 的物理意义。

ωωj j jw e e n x DFT e X DTFT n R n x ----===11)]([)()(),()(44其离散时间傅立叶变换已知有限长序列试绘制出)(ωj e X 幅度频谱和相位频谱,并分别计算N=8和N=16时的DFT 。

傅里叶变换特性matlab仿真3

傅里叶变换特性matlab仿真3

3-231 题目要求已知序列x(n)={1, 2, 3, 3, 2, 1}。

1)求出x(n)的傅里叶变换X(ejω),画出幅频特性和相频特性曲线(提示:用1024点FFT近似X(ejω));2)计算x(n)的N(N≥6)点离散傅里叶变换X(k),画出幅频特性和相频特性曲线;3)将X(ejω)和X(k)的幅频特性和相频特性曲线分别画在同一幅图中,验证X(k)是X(ejω)的等间隔采样,采样间隔为2π/N;4)计算X(k)的N点IDFT,验证DFT和IDFT的惟一性。

2 题目分析(1)题用1024点DFT近似x(n)的傅里叶变换。

(2)题用32点DFT。

(3)题由图(e)(f)可验证。

(4)题图(g) 验证了IDFT的惟一性。

3程序源码clear all;close all;xn=[1 2 3 3 2 1]; %输入时域序列向量x(n)N=32;M=1024;Xjw=fft(xn,M); %计算xn的1024点DFT,近似表示序列的傅里叶变换Xk32=fft(xn,N); %计算xn的32点DFTxn32=ifft(Xk32,N); %计算Kk32的32点IDFT%以下为绘图部分k=0:M-1;wk=2*k/M; %产生M点DFT对应的采样点频率(关于π归一化值) subplot(3,2,1);plot(wk,abs(Xjw)); %绘制M点DFT的幅频特性图title('(a) FT[x(n)]的幅频特性图');xlabel('ω/π');ylabel('幅度') subplot(3,2,3);plot(wk,angle(Xjw)); %绘制x(n)的相频特性图line([0,2],[0,0]) %画横坐标轴线title('(b)FT[x(n)]的相频特性图');xlabel('ω/π');ylabel('相位');%axis([0,2,-3.5,3.5])k=0:N-1;subplot(3,2,2);stem(k,abs(Xk32),'.'); %绘制64点DFT的幅频特性图title('(c)32点DFT的幅频特性图');xlabel('k');ylabel('幅度');axis([0,32,0,15])subplot(3,2,4);stem(k,angle(Xk32),'.'); %绘制64点DFT的相频特性图line([0,32],[0,0]) %画横坐标轴线title('(d)32点DFT的相频特性图')xlabel('k');ylabel('相位');axis([0,32,-3.5,3.5])figure(2)k=0:M-1;wk=2*k/M; %产生M点DFT对应的采样点频率(关于π归一化值) subplot(3,2,1);plot(wk,abs(Xjw)); %绘制M点DFT的幅频特性图title('(e) FT[x(n)]和32点DFT[x(n)]的幅频特性');xlabel('ω/π');ylabel('幅度')hold onsubplot(3,2,3);plot(wk,angle(Xjw)); %绘制x(n)的相频特性图title('(f)FT[x(n)]和32点DFT[x(n)]的相频特性');xlabel('ω/π');ylabel('相n)]位');hold onk=0:N-1;wk=2*k/N; %产生N点DFT对应的采样点频率(关于π归一化值) subplot(3,2,1);stem(wk,abs(Xk32),'.'); %绘制64点DFT的幅频特性图subplot(3,2,3);stem(wk,angle(Xk32),'.'); %绘制64点DFT的相频特性图line([0,2],[0,0]);n=0:31;subplot(3,2,2);stem(n,xn32,'.');title('(g)32点IDFT[X(k)]波形');xlabel('n');ylabel('x(n)');4 输出如图3-251题目要求已知序列h(n)=R6(n), x(n)=nR8(n)。

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实现连续或离散信号的傅里叶变化演示系统

(一) 第 一 层 GUI 界 面
(二)第二层GUI界面设计 第二层 界面设计
1、离散傅里叶变化 、
(1)实例 是音频的傅里叶变化 )实例1是音频的傅里叶变化
n y 2[n] = 1 − N 实例2 (2)实例2、计算序列 0
−N ≤n≤N otherwise
的N点离散傅立叶变换,N取3,5,7建立一个连续或 语言, 语言 离散信号的傅立叶变换演示系统运 算系统 • 理解傅立叶变换的性质并用 理解傅立叶变换的性质并用MATLAB 进行验证。 进行验证。
• 傅里叶原理表明:任何连续测量的时序或信号,都可以表 傅里叶原理表明:任何连续测量的时序或信号, 示为不同频率的正弦波信号的无限叠加。 示为不同频率的正弦波信号的无限叠加。根据该原理创立 的傅立叶变换算法利用直接测量到的原始信号, 的傅立叶变换算法利用直接测量到的原始信号,以累加方 式来计算该信号中不同正弦波信号的频率、振幅和相位。 式来计算该信号中不同正弦波信号的频率、振幅和相位。 • 从现代数学的眼光来看,傅里叶变换是一种特殊的积分变 从现代数学的眼光来看, 换。它能将满足一定条件的某个函数表示成正弦基函数的 线性组合或者积分。在不同的研究领域, 线性组合或者积分。在不同的研究领域,傅里叶变换具有 多种不同的变体形式, 多种不同的变体形式,如连续傅里叶变换和离散傅里叶变 换。
2、连续信号的傅里叶变化 、
(1)实例 运行结果 )实例1运行结果
(2)实例 )实例2
• H(s)= S+4/S^3+3S^2+2S这个连续系统的傅里叶变化。
• 通过 通过matlab实践作业的完成,对已经熟悉的matlab基本知 实践作业的完成,对已经熟悉的 实践作业的完成 基本知 识又做了一次巩固复习, 识又做了一次巩固复习,同时在此基础上又有了进一步的 理解和应用能力的提高; 理解和应用能力的提高;由于实践要求的难度高于课本和 平时的练习,督促我们查阅资料和相关教材, 平时的练习,督促我们查阅资料和相关教材,使得自身对 于这一个软件的使用和驾驭能力有了一个全新的提高; 于这一个软件的使用和驾驭能力有了一个全新的提高;随 着实践作业完成及其深入,我对信号系统的也逐步加深, 着实践作业完成及其深入,我对信号系统的也逐步加深, 对信号基本运算系统的基本理论知识及其在实际应用中的 作用和意义有了更进一步的深入了解。 作用和意义有了更进一步的深入了解。

MATLAB的离散傅里叶变换的仿真

MATLAB的离散傅里叶变换的仿真

应用M A T L A B对信号进行频谱分析及滤波设计目的要求学生会用MATLAB语言进行编程,绘出所求波形,并且运用FFT求对连续信号进行分析。

一、设计要求1、用Matlab产生正弦波,矩形波,并显示各自的时域波形图;2、进行FFT变换,显示各自频谱图,其中采样率、频率、数据长度自选,要求注明;3、绘制三种信号的均方根图谱;4、用IFFT回复信号,并显示恢复的正弦信号时域波形图。

二、系统原理用FFT对信号作频谱分析是学习数字信号处理的重要内容。

经常需要进行频谱分析的信号是模拟信号和时域离散信号。

频谱分辨率直接和FFT的变换区间N有关,因为FFT能够实现频率分辨率是2π/N。

x(n)是一个长度为M的有限长序列,则x(n)的N点离散傅立叶变换为:X(k)=DFT[x(n)]=knNWNnnx∑-=1)(,k=0,1,...,N-1NjeNWπ2-=逆变换:x(n) =IDFT[X(k)]=knNWkXNnN-∑-=1)(1,k=0,1,...,N-1但FFT是一种比DFT更加快速的一种算法,提高了DFT的运算速率,为数字信号处理技术应用于各种信号处理创造了条件,大大提高了数字信号处理技术的发展。

本实验就是采用FFT,IFFT对信号进行谱分析。

三、程序设计fs=input('please input the fs:');%设定采样频率N=input('please input the N:');%设定数据长度t=0::1;f=100;%设定正弦信号频率%生成正弦信号x=sin(2*pi*f*t);figure(1);subplot(211);plot(t,x);%作正弦信号的时域波形axis([0,,-1,1]);title('正弦信号时域波形');z=square(50*t);subplot(212)plot(t,z)axis([0,1,-2,2]);title('方波信号时域波形');grid;%进行FFT变换并做频谱图y=fft(x,N);%进行fft变换mag=abs(y);%求幅值f=(0:N-1)*fs/N;%横坐标频率的表达式为f=(0:M-1)*Fs/M;figure(2);subplot(211);plot(f,mag);%做频谱图axis([0,1000,0,200]);title('正弦信号幅频谱图');y1=fft(z,N);%进行fft变换mag=abs(y1);%求幅值f=(0:N-1)*fs/N;%横坐标频率的表达式为f=(0:M-1)*Fs/M; subplot(212);plot(f,mag);%做频谱图axis([0,1000,0,200]);title('方波信号幅频谱图');grid;%求功率谱sq=abs(y);power=sq.^2;figure(3)subplot(211);plot(f,power);title('正弦信号功率谱');grid;sq1=abs(y1);power1=sq1.^2;subplot(212);plot(f,power1);title('方波信号功率谱');grid;%用IFFT恢复原始信号xifft=ifft(y);magx=real(xifft);ti=[0:length(xifft)-1]/fs;figure(4);subplot(211);plot(ti,magx);axis([0,,-1,1]);title('通过IFFT转换的正弦信号波形');zifft=ifft(y1);magz=real(zifft);ti1=[0:length(zifft)-1]/fs;subplot(212);plot(ti1,magz);title('通过IFFT转换的方波信号波形');grid;四、仿真结果及分析由图可以看出正弦波周期T=,采样点N=1024.程序为:x=sin(2*pi*f*t);figure(1);subplot(211);plot(t,x);%作正弦信号的时域波形axis([0,,-1,1]);title('正弦信号时域波形');z=square(50*t);subplot(212)plot(t,z)axis([0,1,-2,2]);title('方波信号时域波形');grid;2、对正弦波、方波信号进行FFT变换程序:y=fft(x,N);%进行fft变换mag=abs(y);%求幅值f=(0:N-1)*fs/N;%横坐标频率的表达式为f=(0:M-1)*Fs/M; figure(2);subplot(211);plot(f,mag);%做频谱图axis([0,1000,0,200]);title('正弦信号幅频谱图');y1=fft(z,N);%进行fft变换mag=abs(y1);%求幅值f=(0:N-1)*fs/N;%横坐标频率的表达式为f=(0:M-1)*Fs/M; subplot(212);plot(f,mag);%做频谱图axis([0,1000,0,200]);title('方波信号幅频谱图');grid;正弦信号、方波信号功率谱程序:sq=abs(y);power=sq.^2;figure(3)subplot(211);plot(f,power);title('正弦信号功率谱');grid;sq1=abs(y1);power1=sq1.^2;subplot(212);plot(f,power1);title('方波信号功率谱');grid;对两个信号进行恢复程序:xifft=ifft(y);magx=real(xifft);ti=[0:length(xifft)-1]/fs;figure(4);subplot(211);plot(ti,magx);axis([0,,-1,1]);title('通过IFFT转换的正弦信号波形');zifft=ifft(y1);magz=real(zifft);ti1=[0:length(zifft)-1]/fs;subplot(212);plot(ti1,magz);title('通过IFFT转换的方波信号波形');grid;当采样频率小于2fc或N小于M时恢复信号就会出现失真,频谱会发生馄叠。

FFT详解及MATLAB仿真

FFT详解及MATLAB仿真

FFT是离散傅立叶变换的快速算法,可以将一个信号变换到频域。

有些信号在时域上是很难看出什么特征的,但是如果变换到频域之后,就很容易看出特征了。

这就是很多信号分析采用FFT变换的原因。

另外,FFT可以将一个信号的频谱提取出来,这在频谱分析方面也是经常用的。

虽然很多人都知道FFT是什么,可以用来做什么,怎么去做,但是却不知道FFT之后的结果是什意思、如何决定要使用多少点来做FFT。

现在圈圈就根据实际经验来说说FFT结果的具体物理意义。

一个模拟信号,经过ADC采样之后,就变成了数字信号。

采样定理告诉我们,采样频率要大于信号频率的两倍,这些我就不在此罗嗦了。

采样得到的数字信号,就可以做FFT变换了。

N个采样点,经过FFT之后,就可以得到N个点的FFT结果。

为了方便进行FFT 运算,通常N取2的整数次方。

假设采样频率为Fs,信号频率F,采样点数为N。

那么FFT之后结果就是一个为N点的复数。

每一个点就对应着一个频率点。

这个点的模值,就是该频率值下的幅度特性。

具体跟原始信号的幅度有什么关系呢?假设原始信号的峰值为A,那么FFT的结果的每个点(除了第一个点直流分量之外)的模值就是A的N/2倍。

而第一个点就是直流分量,它的模值就是直流分量的N倍。

而每个点的相位呢,就是在该频率下的信号的相位。

第一个点表示直流分量(即0Hz),而最后一个点N的再下一个点(实际上这个点是不存在的,这里是假设的第N+1个点,也可以看做是将第一个点分做两半分,另一半移到最后)则表示采样频率Fs,这中间被N-1个点平均分成N等份,每个点的频率依次增加。

例如某点n所表示的频率为:Fn=(n-1)*Fs/N。

由上面的公式可以看出,Fn所能分辨到频率为为Fs/N,如果采样频率Fs为1024Hz,采样点数为1024点,则可以分辨到1Hz。

1024Hz的采样率采样1024点,刚好是1秒,也就是说,采样1秒时间的信号并做FFT,则结果可以分析到1Hz,如果采样2秒时间的信号并做FFT,则结果可以分析到0.5Hz。

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

应用MATLAB对信号进行频谱分析及滤波
设计目的
要求学生会用MATLAB语言进行编程,绘出所求波形,并且运用FFT求对连续信号进行分析。

一、设计要求
1、用Matlab产生正弦波,矩形波,并显示各自的时域波形图;
2、进行FFT变换,显示各自频谱图,其中采样率、频率、数据长度自选,要求注明;
3、绘制三种信号的均方根图谱;
4、用IFFT回复信号,并显示恢复的正弦信号时域波形图。

二、系统原理
用FFT对信号作频谱分析是学习数字信号处理的重要内容。

经常需要进行频谱分析的信号是模拟信号和时域离散信号。

频谱分辨率直接和FFT的变换区间N 有关,因为FFT能够实现频率分辨率是2π/N。

x(n)是一个长度为M的有限长序列,则x(n)的N点离散傅立叶变换为:
X(k)=DFT[x(n)]=
kn
N
W
N
n
n
x

-
=
1
)
(
,k=0,1,...,N-1
N
j
e
N
Wπ2-
=
逆变换:x(n) =IDFT[X(k)]=
kn
N
W
k
X
N
n
N
-

-
=
1
)
(
1
,k=0,1,...,N-1
但FFT是一种比DFT更加快速的一种算法,提高了DFT的运算速率,为数字信号处理技术应用于各种信号处理创造了条件,大大提高了数字信号处理技术的发展。

本实验就是采用FFT,IFFT对信号进行谱分析。

三、程序设计
fs=input('please input the fs:');%设定采样频率
N=input('please input the N:');%设定数据长度
t=0:0.001:1;
f=100;%设定正弦信号频率
%生成正弦信号
x=sin(2*pi*f*t);
figure(1);
subplot(211);
plot(t,x);%作正弦信号的时域波形
axis([0,0.1,-1,1]);
title('正弦信号时域波形');
z=square(50*t);
subplot(212)
plot(t,z)
axis([0,1,-2,2]);
title('方波信号时域波形');grid;
%进行FFT变换并做频谱图
y=fft(x,N);%进行fft变换
mag=abs(y);%求幅值
f=(0:N-1)*fs/N;%横坐标频率的表达式为f=(0:M-1)*Fs/M; figure(2);
subplot(211);
plot(f,mag);%做频谱图
axis([0,1000,0,200]);
title('正弦信号幅频谱图');
y1=fft(z,N);%进行fft变换
mag=abs(y1);%求幅值
f=(0:N-1)*fs/N;%横坐标频率的表达式为f=(0:M-1)*Fs/M; subplot(212);
plot(f,mag);%做频谱图
axis([0,1000,0,200]);
title('方波信号幅频谱图');grid;
%求功率谱
sq=abs(y);
power=sq.^2;
figure(3)
subplot(211);
plot(f,power);
title('正弦信号功率谱');grid;
sq1=abs(y1);
power1=sq1.^2;
subplot(212);
plot(f,power1);
title('方波信号功率谱');grid;
%用IFFT恢复原始信号
xifft=ifft(y);
magx=real(xifft);
ti=[0:length(xifft)-1]/fs;
figure(4);
subplot(211);
plot(ti,magx);
axis([0,0.1,-1,1]);
title('通过IFFT转换的正弦信号波形');
zifft=ifft(y1);
magz=real(zifft);
ti1=[0:length(zifft)-1]/fs;
subplot(212);
plot(ti1,magz);
title('通过IFFT转换的方波信号波形');grid;
四、仿真结果及分析
由图可以看出正弦波周期T=0.01,采样点N=1024.程序为:x=sin(2*pi*f*t);
figure(1);
subplot(211);
plot(t,x);%作正弦信号的时域波形
axis([0,0.1,-1,1]);
title('正弦信号时域波形');
z=square(50*t);
subplot(212)
plot(t,z)
axis([0,1,-2,2]);
title('方波信号时域波形');grid;
2、对正弦波、方波信号进行FFT变换程序:
y=fft(x,N);%进行fft变换
mag=abs(y);%求幅值
f=(0:N-1)*fs/N;%横坐标频率的表达式为f=(0:M-1)*Fs/M; figure(2);
subplot(211);
plot(f,mag);%做频谱图
axis([0,1000,0,200]);
title('正弦信号幅频谱图');
y1=fft(z,N);%进行fft变换
mag=abs(y1);%求幅值
f=(0:N-1)*fs/N;%横坐标频率的表达式为f=(0:M-1)*Fs/M; subplot(212);
plot(f,mag);%做频谱图
axis([0,1000,0,200]);
title('方波信号幅频谱图');grid;
正弦信号、方波信号功率谱程序:
sq=abs(y);
power=sq.^2;
figure(3)
subplot(211);
plot(f,power);
title('正弦信号功率谱');grid;
sq1=abs(y1);
power1=sq1.^2;
subplot(212);
plot(f,power1);
title('方波信号功率谱');grid;
对两个信号进行恢复程序:
xifft=ifft(y);
magx=real(xifft);
ti=[0:length(xifft)-1]/fs;
figure(4);
subplot(211);
plot(ti,magx);
axis([0,0.1,-1,1]);
title('通过IFFT转换的正弦信号波形'); zifft=ifft(y1);
magz=real(zifft);
ti1=[0:length(zifft)-1]/fs;
subplot(212);
plot(ti1,magz);
title('通过IFFT转换的方波信号波形');grid;
当采样频率小于2fc或N小于M时恢复信号就会出现失真,频谱会发生馄叠。

相关文档
最新文档