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

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

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

  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时恢复信号就会出现失真,频谱会发生馄叠。

相关文档
最新文档