文档库 最新最全的文档下载
当前位置:文档库 › 数字信号处理基于MATLAB的离散傅里叶变换的仿真

数字信号处理基于MATLAB的离散傅里叶变换的仿真

数字信号处理基于MATLAB的离散傅里叶变换的仿真
数字信号处理基于MATLAB的离散傅里叶变换的仿真

数字信号处理设计报告书

课题名称

应用MATLAB 对信号进行频谱分析及

滤波

姓 名 何 晨

学 号 20076089 院、系、部

电气系

专 业 电子信息工程 指导教师

刘鑫淼

2010年 6 月27日

※※※※※※※※※ ※※ ※

※ ※※ ※※

※※※※※

※※

2007级数字信号处理 课程设计

应用MATLAB对信号进行频谱分析及滤波

20076089 何晨

一、设计目的

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

六、设计总结:

通过对本次应用MATLAB语言对信号进行频谱分析及滤波设计,使更加系统的理解了FFT,IFFT功能,对采样频谱分析及恢复功能掌握有了进一步提高,如果序列x(n)主值序列长度为M,最高频率为fc只有当频率采样点N≥M,采样频率fs≥2fc时,才有x(n)=IDFT[X(k)]=x(n)可有频域采样X(k)恢复原序列x(n),否则产生时域混叠失真现象。本次设计对我的启发很大也更见锻炼了我们面对困难的心态,对今后的学习工作大有裨益。

七、参考文献:

1 丁玉美,高西全.数字信号处理.2版.西安:西安电子科技大学出版社,2001

2 [美] M.H.海因斯著张建华等译.数字信号处理.北京:科学出版社,2002

3 张葛祥,李娜. MATLAB仿真技术与应用.北京:清华大学出版社,2003

4 楼顺天,李博菡.基于MATLAB的系统分析与设计.西安:西安电子科技大学出版社,1998

5.王宏..MA TLAB

6.5及其在信号处理中的应用.北京清华大学出版社,2004

傅里叶变换在信号与系统系统中的应用

河北联合大学 本科毕业设计(论文) 题目傅里叶变换在信号与系统中的应用 院系理学院 专业班级07数学一班 学生姓名刘帅 学生学号200710050113 指导教师佟玉霞 2011年5月24日

题目傅里叶变换在信号与系统中的应用 专业数学与应用数学姓名刘帅学号200710050113 主要内容、基本要求、主要参考资料等 主要内容 傅里叶变换是一种重要的变换,且在与通信相关的信号与系统中有着广泛的应用。本文主要研究傅里叶变换的基本原理;其次,掌握其在滤波,调制、解调,抽样等方面中的应用。分析了信号在通信系统中的处理方法,通过傅里叶变换推导出信号调制解调的原理,由此引出对频分复用通信系统的组成原理的介绍。 基本要求 通过傅里叶变换实现一个高通滤波,低通滤波,带通滤波。用傅里叶变换推导出信号调制解调的原理。通过抽样实现连续信号离散化,简化计算。另外利用调制的原理推导出通信系统中的时分复用和频分复用。 参考资料 [1]《信号与系统理论、方法和应用》徐守时著中国科技大学出版社 2006年3月修订二版 [2]《信号与系统》第二版上、下册郑君里、应启珩、杨为理著高等教育出版社 [3]《通信系统》第四版 Simon Haykin 著宋铁成、徐平平、徐智勇等译沈 连丰审校电子工业出版社 [4]《信号与系统—连续与离散》第四版 Rodger E.Ziemer 等著肖志涛等译 腾建辅审校电子工业出版社 [5]《现代通信原理》陶亚雄主编电子工业出版社 [6]《信号与系统》乐正友著清华大学出版社 [7]《信号与线性系统》阎鸿森、王新风、田惠生编西安交通大学出版社 [8]《信号与线性系统》张卫钢主编郑晶、徐琨、徐建民副主编西安电 子科技大学出版社 [9] https://www.wendangku.net/doc/8b8879525.html,/view/191871.htm//百度百科傅里叶变换 [10]《通信原理》第六版樊昌信曹丽娜编著国防工业出版社 [11]A.V.Oppenheim,A.S.Willsky with S.H.Nawab.Siganals and systems(Second edition).Prentice-Hall,1997.中译:刘树棠。信号与系统。西安交通工业大学出版社 完成期限 指导教师 专业负责人

Matlab傅里叶变换傅里叶逆变换-FFT-IFFT

Matlab傅里叶变换傅里叶逆变换 %% 信号经过傅里叶变换然后进行傅里叶逆变换后信号的变化 clear all;clc; %------Author&Date------ %Author: %Date: 2013/07/31 %========================================================================== Fs=8e3; %采样率 t=0:1/Fs:1; %采样点 len=length(t); %采样长度 f1=10; %频率1 f2=100; %频率2 f3=1000; %频率3 A1=1; %幅度1 A2=0.8; %幅度2 A3=0.3; %幅度3 MaxS=A1+A2+A3; %信号幅度的最大值 signal=A1*sin(2*pi*f1*t)+A2*sin(2*pi*f2*t)+A3*sin(2*pi*f3*t); X=fft(signal,len); %傅里叶变换 magX=abs(X); %信号的幅度 angX=angle(X); %信号的相位 Y=magX.*exp(1i*angX); %信号的频域表示 y=ifft(Y,len); %信号进行傅里叶逆变换 y=real(y); er=signal-y; %原始信号和还原信号的误差 subplot(311);plot(t,signal);axis([0 1 -MaxS MaxS]);xlabel('时间');ylabel('振幅');title('原始信号'); subplot(312);plot(t,y);axis([0 1 -MaxS MaxS]);xlabel('时间');ylabel('振幅');title('还原信号'); subplot(313);plot(t,er);xlabel('时间');ylabel('振幅');title('误差'); % End Script

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=5 M=6 L=N+M-1 x=[1,2,3,4,5] h=[3,6,7,2,1,6] y=conv(x,h) nx=0:N-1 nh=0:M-1 ny=0:L-1 subplot(131);stem(nx,x,'*b');xlabel('n');ylabel('x(n)');grid on subplot(132);stem(nh,h,'*b');xlabel('n');ylabel('h(h)');grid on subplot(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;

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

离散信号的变换(MATLAB 实验) 一、实验目的 掌握用Z 变换判断离散系统的稳定与否的方法,掌握离散傅立叶变换及其基本性质和特点,了解快速傅立叶变换。 二、实验内容 1、已经系统函数为 5147.13418.217.098.2250 5)(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.9000 0.9220 0.9220 0.9900 n=[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 的图像。 a . n=[0:1:100];x=cos(0.48*pi*n)+cos(0.52*pi*n); subplot(2,1,1);plot(n,x);title('x(n)的图像'); X=dft(x,101); magX=abs(X); subplot(2,1,2);plot(n,magX);title('丨X(k)丨的图像');

离散傅里叶变换应用举例

x=[1,1,1,1];w=[0:1:500]*2*pi/500; [H]=freqz(x,1,w); magH=abs(H);phaH=angle(H); subplot(2,1,1);plot(w/pi,magH);grid;xlabel('');ylabel('|X|'); title('DTFT的幅度') subplot(2,1,2);plot(w/pi,phaH/pi*180);grid; xlabel('以pi为单位的频率');label('度'); title('DTFT的相角')

N=4;w1=2*pi/N;k=0:N-1; X=fft(x,N); magX=abs(X);phaX=angle(X)*180/pi; subplot(2,1,1);plot(w*N/(2*pi),magH,'--');axis([-0.1,4.1,0,5]);hold on; stem(k,magX);ylabel('|X(k)|');title('DFT的幅度:N=4');text(4.3,-1,'k'); hold off; subplot(2,1,2);plot(w*N/(2*pi),phaH*180/pi,'--');axis([-0.1,4.1,-200,200]); hold on; stem(k,phaX);ylabel('度');title('DFT的相角:N=4');text(4.3,-200,'k')

n=(0:1:9);x=cos(0.48*pi*n)+cos(0.52*pi*n); w=[0:1:500]*2*pi/500; X=x*exp(-1i*n'*w); magx=abs(X); x1=fft(x);magx1=abs(x1(1:1:10)); k1=0:1:9;w1=2*pi/10*k1; subplot(3,1,1);stem(n,x);title('signalx(n),0<=n<=9'); axis([0,10,-2.5,2.5]);line([0,10],[0,0]); subplot(3,1,2);plot(w/pi,magx);title('DTFT幅度');xlabel('w');axis([0,1,0,10]); subplot(3,1,3);stem(w1/pi,magx1);title('DFT幅度'); xlabel('频率(单位:pi)');axis([0,1,0,10]) 实验总结:补零运算提供了一个较密的频谱和较好的图示形式,但因为在信号中只是附加了零,而没有增加任何新的信息,因此不能提供高分辨率的频谱。

傅里叶变换matlab代码

%傅里叶变换 clc;clear all;close all; tic Fs=128;%采样频率,频谱图的最大频率 T=1/Fs;%采样时间,原始信号的时间间隔 L=256;%原始信号的长度,即原始离散信号的点数 t=(0:L-1)*T;%原始信号的时间取值范围 x=7*cos(2*pi*15*t-pi)+3*cos(2*pi*40*t-90*pi/180)+3*cos(2*pi*30*t-90*pi/ 180); z=7*cos(2*pi*15*t-pi)+3*cos(2*pi*40*t-90*pi/180); z1=6*cos(2*pi*30*t-90*pi/180); z1(1:L/2)=0; z=z+z1; y=x;%+randn(size(t)); figure; plot(t,y) title('含噪信号') xlabel('时间(s)') hold on plot(t,z,'r--') N=2^nextpow2(L);%N为使2^N>=L的最小幂 Y=fft(y,N)/N*2; Z=fft(z,N)/N*2;%快速傅里叶变换之后每个点的幅值是直流信号以外的原始信号幅值的N/2倍(是直流信号的N倍) f=Fs/N*(0:N-1);%频谱图的频率取值范围 A=abs(Y);%幅值 A1=abs(Z); B=A; %让很小的数置零. B1=A1; A(A<10^-10)=0; % A1(A1<10^-10)=0; P=angle(Y).*A./B; P1=angle(Z).*A1./B1; P=unwrap(P,pi);%初相位值,以除去了振幅为零时的相位值 P1=unwrap(P1,pi); figure subplot(211) plot(f(1:N/2),A(1:N/2))%函数ffs返回值的数据结构具有对称性,因此只取前一半 hold on plot(f(1:N/2),A1(1:N/2),'r--') title('幅值频谱')

离散时间信号的傅里叶变换和离散傅里叶变换

离散时间信号的傅里叶变换和离散傅里叶变换 摘要 本文主要介绍了离散时间信号的离散时间傅里叶变换及离散傅里叶变换,说明其在频域的具体表示和分析,并通过定义的方法和矩阵形式的表示来给出其具体的计算方法。同时还介绍了与离散时间傅里叶变换(DTFT )和离散傅里叶变换(DFT )相关的线性卷积与圆周卷积,并讲述它们之间的联系,从而给出了用圆周卷积计算线性卷积的方法,即用离散傅里叶变换实现线性卷积。 1. 离散时间傅里叶变换 1.1离散时间傅里叶变换及其逆变换 离散时间傅里叶变换为离散时间序列x[n]的傅里叶变换,是以复指数序列{n j e ω-}的序列来表示的(可对应于三角函数序列),相当于傅里叶级数的展开,为离散时间信号和线性时不变系统提供了一种频域表示,其中ω是实频率变量。时间序列x[n]的离散时间傅里叶变换)(ωj e X 定义如下: ∑∞ -∞ =-= n n j j e n x e X ωω ][)( (1.1) 通常)(ωj e X 是实变量ω的复数函数同时也是周期为π2的周期函数,并且)(ωj e X 的幅度函数和实部是ω的偶函数,而其相位函数和虚部是ω的奇函数。这是由于: ) ()()(tan ) ()()() (sin )()()(cos )()(2 22 ωωωωωωωωωωθωθωθj re j im j im j re j j j im j j re e X e X e X e X e X e X e X e X e X = +=== (1.2) 由于式(1.1)中的傅里叶系数x[n]可以用下面给出的傅里叶积分从)(ωj e X 中算出: ωπ ωπ πω d e e X n x n j j )(21 ][?- = (1.3)

傅里叶变换及应用

傅里叶变换在MATLZB里的应用 摘要:在现代数学中,傅里叶变换是一种非常重要的变换,且在数字信号处理中有着广泛的应用。本文首先介绍了傅里叶变换的基本概念、性质及发展情况;其次,详细介绍了分离变数法及积分变换法在解数学物理方程中的应用。傅立叶变换将原来难以处理的时域信号转换成了易于分析的频域信号,再利用傅立叶反变换将这些频域信号转换成时域信号。应用MATLAB实现信号的谱分析和对信号消噪。 关键词:傅里叶变换;MA TLAB软件;信号消噪 Abstract: In modern mathematics,Fourier transform is a transform is very important ,And has been widely used in digital signal processing.This paper first introduces the basic concepts, properties and development situation of Fourier transform ;Secondly, introduces in detail the method of separation of variables and integral transform method in solving equations in Mathematical Physics.Fourier transformation makes the original time domain signal whose analysis is difficult easy, by transforming it into frequency domain signal that can be transformed into time domain signal by inverse transformation of Fourier. Using Mat lab realizes signal spectral analysis and signal denoising. Key word: Fourier transformation, software of mat lab ,signal denoising 1、傅里叶变换的提出及发展 在自然科学和工程技术中为了把较复杂的运算转化为较简单的运算,人们常常采用所谓变换的方法来达到目的"例如在初等数学中,数量的乘积和商可以通过对数变换化为较简单的加法和减法运算。在工程数学里积分变换能够将分析运算(如微分,积分)转化为代数运算,正是积分变换这一特性,使得它在微分方程和其它方程的求解中成为重要方法之一。 1804年,法国科学家J-.B.-J.傅里叶由于当时工业上处理金属的需要,开始从事热流动的研究"他在题为<<热的解析理论>>一文中,发展了热流动方程,并且指出如何求解"在求解过程中,他提出了任意周期函数都可以用三角级数来表示的想法。他的这种

【免费下载】matlab实现傅里叶变换

一、傅立叶变化的原理; (1)原理 正交级数的展开是其理论基础!将一个在时域收敛的函数展开成一系列不同频率谐波的叠加,从而达到解决周期函数问题的目的。在此基础上进行推广,从而可以对一个非周期函数进行时频变换。 从分析的角度看,他是用简单的函数去逼近(或代替)复杂函数,从几何的角度看,它是以一族正交函数为基向量,将函数空间进行正交分解,相应的系数即为坐标。从变幻的角度的看,他建立了周期函数与序列之间的对应关系;而从物理意义上看,他将信号分解为一些列的简谐波的复合,从而建立了频谱理论。 当然Fourier积分建立在傅氏积分基础上,一个函数除了要满足狄氏条件外, 一般来说还要在积分域上绝对可积,才有古典意义下的傅氏变换。引入衰减因子e^(-st),从而有了Laplace变换。(好像走远了)。 (2)计算方法 连续傅里叶变换将平方可积的函数f(t)表示成复指数函数的积分或级数形式。 这是将频率域的函数F(ω)表示为时间域的函数f(t)的积分形式。 为 连续傅里叶变换的逆变换 (inverse Fourier transform) 即将时间域的函数f(t)表示为频率域的函数F(ω)的积分。 一般可称函数f(t)为原函数,而称函数F(ω)为傅里叶变换的像函数,原函数和像函数构成一个傅里叶变换对(transform pair)。 二、傅立叶变换的应用; DFT在诸多多领域中有着重要应用,下面仅是颉取的几个例子。需要指出 的是,所有DFT的实际应用都依赖于计算离散傅里叶变换及其逆变换的快速算

法,即快速傅里叶变换(快速傅里叶变换(即FFT )是计算离散傅里叶变换及其逆变换的快速算法。)。(1)、频谱分析DFT 是连续傅里叶变换的近似。因此可以对连续信号x(t)均匀采样并截断以得到有限长的离散序列,对这一序列作离散傅里叶变换,可以分析连续信号x(t)频谱的性质。前面还提到DFT 应用于频谱分析需要注意的两个问题:即采样可能导致信号混叠和截断信号引起的频谱泄漏。可以通过选择适当的采样频率(见奈奎斯特频率)消减混叠。选择适当的序列长度并加窗可以抑制频谱泄漏。(2)、数据压缩由于人类感官的分辨能力存在极限,因此很多有损压缩算法利用这一点将语音、音频、图像、视频等信号的高频部分除去。高频信号对应于信号的细节,滤除高频信号可以在人类感官可以接受的范围内获得很高的压缩比。这一去除高频分量的处理就是通过离散傅里叶变换完成的。将时域或空域的信号转换到频域,仅储存或传输较低频率上的系数,在解压缩端采用逆变换即可重建信号。(3)、OFDM OFDM (正交频分复用)在宽带无线通信中有重要的应用。这种技术将带宽为N 个等间隔的子载波,可以证明这些子载波相互正交。尤其重要的是,OFDM 调制可以由IDFT 实现,而解调可以由DFT 实现。OFDM 还利用DFT 的移位性质,在每个帧头部加上循环前缀(Cyclic Prefix ),使得只要信道延时小于循环前缀的长度,就能消除信道延时对传输的影响。三、傅里叶变换的本质; 傅里叶变换的公式为dt e t f F t j ?+∞∞--=ωω)()(可以把傅里叶变换也成另外一种形式: t j e t f F ωπ ω),(21)(=可以看出,傅里叶变换的本质是内积,三角函数是完备的正交函数集,不同频率的三 角函数的之间的内积为0,只有频率相等的三角函数做内积时,才不为0。)(2,21)(2121Ω-Ω==?Ω-ΩΩΩπδdt e e e t j t j t j

离散信号变换的matlab实现

实验四 离散信号的频域分析 一、 实验目的 1. 掌握序列的傅里叶变换、离散傅里叶级数、离散傅里叶变换、快速傅里叶变换的Matlab 实现; 2. 学习用FFT 对连续信号和离散信号进行谱分析的方法,了解可能出现的分析误差及其原因,以便在实际中正确应用FFT 。 二、 实验内容及步骤 1. 计算序列的DTFT 和DFT ,观察栅栏效应 设)()(4n R n x =,要求用MATLAB 实现: (1)计算)(n x 的傅里叶变换)(ωj e X ,并绘出其幅度谱; (2)分别计算)(n x 的4点DFT 和8点DFT ,绘出其幅度谱。并说明它们和)(ωj e X 的关系。 (提示:DFT 变换可用MA TLAB 提供的函数fft 实现,也可以自己用C 语言或matlab 编写) 2.计算序列的FFT ,观察频谱泄漏 已知周期为16的信号)1612cos()1610cos()(n n n x π π +=。 (1) 截取一个周期长度M=16点,计算其16点FFT ,并绘出其幅度谱; (2) 截取序列长度M=10点,计算其16点FFT ,绘出其幅度谱,并与(1)的结果进行比 较,观察频谱泄漏现象,说明产生频谱泄漏的原因。 三、 实验报告要求 1. 结合实验中所得给定典型序列幅频特性曲线,与理论结果比较,并分析说明误差产生的原因以及用FFT 作谱分析时有关参数的选择方法。 2. 总结实验所得主要结论。 1. 计算序列的DTFT 和DFT ,观察栅栏效应 设)()(4n R n x =,要求用MATLAB 实现: (1)计算)(n x 的傅里叶变换)(ωj e X ,并绘出其幅度谱; (2)分别计算)(n x 的4点DFT 和8点DFT ,绘出其幅度谱。并说明它们和)(ωj e X 的关系。 (1)代码: n=0:3; M=10;

3.2 离散傅里叶变换的基本性质

第3章 离散傅里叶变换(DFT)
3.2 离散傅里叶变换的基本性质
3.2.1 线性性质
如果x1(n)和x2(n)是两个有限长序列, 长度分别为N1 和N2。 若 y(n)=ax1(n)+bx2(n) 式中a、 b为常数. 取N=max[N1, N2] , 则y(n)的N点DFT为 Y(k)=DFT[y(n)]=aX1(k)+bX2 (k), 0≤k≤N-1 (3.2.1) 其中X1(k)和X2(k)分别为x1(n)和x2(n)的N点DFT。
1
PDF 文件使用 "pdfFactory Pro" 试用版本创建 https://www.wendangku.net/doc/8b8879525.html,
X

第3章 离散傅里叶变换(DFT)
3.2.2
循环移位性质
1. 序列的循环移位 设x(n)为有限长序列, 长度为N, 则x(n)的循环 移位定义为 y(n)=x((n+m))NRN(n) (3.2.2)
2
PDF 文件使用 "pdfFactory Pro" 试用版本创建 https://www.wendangku.net/doc/8b8879525.html,
X

第3章 离散傅里叶变换(DFT) x(n)
n 0 1 2 3 4 5 6 7
% x ( n)

-7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9 10 11 12 13

n
% x(n + 2)

-7 -6 -5 -4 -3 -2 -1
3

0 1 2 3 4 5 6 7 8 9 10 11 12 13
n
图 3.2.1
循环移位过程示意图 (N=8)
X
PDF 文件使用 "pdfFactory Pro" 试用版本创建 https://www.wendangku.net/doc/8b8879525.html,

傅里叶变换的应用.

傅立叶变换在图像处理中有非常非常的作用。因为不仅傅立叶分析涉及图像处理的很多方面,傅立叶的改进算法, 比如离散余弦变换,gabor与小波在图像处理中也有重要的分量。 印象中,傅立叶变换在图像处理以下几个话题都有重要作用: 1.图像增强与图像去噪 绝大部分噪音都是图像的高频分量,通过低通滤波器来滤除高频——噪声; 边缘也是图像的高频分量,可以通过添加高频分量来增强原始图像的边缘; 2.图像分割之边缘检测 提取图像高频分量 3.图像特征提取: 形状特征:傅里叶描述子 纹理特征:直接通过傅里叶系数来计算纹理特征 其他特征:将提取的特征值进行傅里叶变换来使特征具有平移、伸缩、旋转不变性 4.图像压缩 可以直接通过傅里叶系数来压缩数据;常用的离散余弦变换是傅立叶变换的实变换; 傅立叶变换 傅里叶变换是将时域信号分解为不同频率的正弦信号或余弦函数叠加之和。连续情况下要求原始信号在一个周期内满足绝对可积条件。离散情况下,傅里叶变换一定存在。冈萨雷斯版<图像处理>里面的解释非常形象:一个恰当的比喻是将傅里叶变换比作一个玻璃棱镜。棱镜是可以将光分解为不同颜色的物理仪器,每个成分的颜色由波长(或频率)来决定。傅里叶变换可以看作是数学上的棱镜,将函数基于频率分解为不同的成分。当我们考虑光时,讨论它的光谱或频率谱。同样,傅立叶变换使我们能通过频率成分来分析一个函数。 傅立叶变换有很多优良的性质。比如线性,对称性(可以用在计算信号的傅里叶变换里面); 时移性:函数在时域中的时移,对应于其在频率域中附加产生的相移,而幅度频谱则保持不变; 频移性:函数在时域中乘以e^jwt,可以使整个频谱搬移w。这个也叫调制定理,通讯里面信号的频分复用需要用到这个特性(将不同的信号调制到不同的频段上同时传输); 卷积定理:时域卷积等于频域乘积;时域乘积等于频域卷积(附加一个系数)。(图像处理里面这个是个重点) 信号在频率域的表现 在频域中,频率越大说明原始信号变化速度越快;频率越小说明原始信号越平缓。当频率为0时,表示直流信号,没有变化。因此,频率的大小反应了信号的变化

离散傅里叶变换性质证明

1. [][]()()j j ax n by n aX e bX e ωω+?+ Proof: ([][])[][]()() j n j n j n j j ax n by n e a x n e b y n e aX e bX e ωωωωω∞ --∞ ∞∞ ---∞-∞ +=+=+∑∑∑ 2. (1)[]()d j n j d x n n X e e ωω--? Proof: ()[][].()d d j n d n j n n j n d n j n j x n n e x n n e e X e e ωωωωω∞-=-∞∞---=-∞--=-=∑ ∑ (2) 00()[]()j n j e x n X e ωωω-? Proof: 000()()[][]()j n j n j n j n n e x n e x n e X e ωωωωωω∞∞ ----=-∞=-∞==∑ ∑ 3. []()j x n X e ω--? Proof: ()[][]()j n j n j n n x n e x n e X e ωωω∞∞ ---=-∞=-∞-=-=∑ ∑ if []x n is real ()j X e ω-=*()j X e ω 4. ()[]j dX e nx n j d ωω? Proof: ()[]() ()[]()[]j j n n j j n n j j n n X e x n e dX e jn x n e d dX e j nx n e d ωωωωωωωω∞-=-∞∞-=-∞∞-=-∞=?=-?=∑∑∑

5. (1)22 1|[]||()|2j n x n X e d πωπωπ∞ =-∞-=∑ ? Proof: 2*2221 |()|21 ()()21 [][]21 |[]|21 |[]| 2|[]|j j j j n j n n n n n n X e d X e X e d x n e x n e d x n d x n d x n πωππωωππωωπππππωπ ωπ ωπ ωπ ωπ---∞∞-=-∞=-∞-∞=-∞ -∞=-∞ -∞=-∞ =====??∑∑?∑?∑ ?∑ (2) **1[][]()()2j j n x n y n X e Y e d π ωωπωπ∞=-∞-=∑ ? Proof: *****1 ()()21 ()()21 [][]21[][]21 [][] 2[][] j j j j j n j n n n n n n n X e Y e d X e Y e d x n e y n e d x n y n d x n y n d x n y n πωωππωωππωωπππππωπ ωπ ωπ ωπ ωπ---∞∞-=-∞=-∞-∞ =-∞-∞ ∞=-∞ =-∞-∞=-∞====??∑∑?∑?∑ ∑?∑ 6. []*[]()()j j x n y n X e Y e ωω? Proof:

利用MATLAB编写FFT快速傅里叶变换

一、实验目的 1.利用MATLAB 编写FFT 快速傅里叶变换。 2.比较编写的myfft 程序运算结果与MATLAB 中的FFT 的有无误差。 二、实验条件 PC 机,MATLAB7.0 三、实验原理 1. FFT (快速傅里叶变换)原理: 将一个N 点的计算分解为两个N/2点的计算,每个N/2点的计算再进一步分解为N/4点的计算,以此类推。根据DFT 的定义式,将信号x[n]根据采样号n 分解为偶采样点和奇采样点。设偶采样序列为y[n]=x[2n],奇采样序列为z[n]=x[2n+1]。 上式中的k N W -为旋转因子N k j e /2π-。下式则为y[n]与z[n]的表达式: 2. 蝶形变换的原理: 下图给出了蝶形变换的运算流图,可由两个N/2点的FFT (Y[k]和Z[k]得出N 点FFT X[k])。同理,每个N/2点的FFT 可以由两个N/4点的FFT 求得。按这种方法,该过程可延迟后推到2点的FFT 。 下图为N=8的分解过程。图中最右边的为8个时域采样点的8点FFTX[k],由偶编号采样点的4点FFT 和奇编号采样点的4点得到。这4点偶编号又由偶编号的偶采

样点的2点FFT 和奇编号的偶采样点的2点FFT 产生。相同的4点奇编号也是如此。依次往左都可以用相同的方法算出,最后由偶编号的奇采样点和奇编号的偶采样点的2点FFT 算出。图中没2点FFT 成为蝶形,第一级需要每组一个蝶形的4组,第二级有每组两个蝶形的两组,最后一级需要一组4个蝶形。 四、实验内容 1.定义函数disbutterfly ,程序根据FFT 的定义:]2[][][N n x n x n y + +=、n N W N n x n x n z -+-=])2 [][(][,将序列x 分解为偶采样点y 和奇采样点z 。 function [y,z]=disbutterfly(x) N=length(x); n=0:N/2-1; w=exp(-2*1i*pi/N).^n; x1=x(n+1); x2=x(n+1+N/2); y=x1+x2; z=(x1-x2).*w; 2.定义函数rader ,纠正输出序列的输出顺序。 function y=rader(x,N) n=[0:N-1]; bn=dec2bin(n); rbn=fliplr(bn); rn=bin2dec(rbn); y=x(rn+1); 3.定义函数myfft ,程序中套了两个循环。 function X=myfft(x) N=length(x); h=log2(N); %h=3 for i=1:h %第一次i=1;第二次i=2 s=[]; for j=1:2^(i-1);%i=1时,j=1;i=2时,j=1:2 M=2^(h-i+1);%M:M=8;M=4 xj=x([1:M]+(j-1)*M);%xj=x([1:8]+(1-1)*8)=x(1)+x(2)...+x(8); %j=1:xj=x([1:4]);j=2:xj=x([1:4]+4) [y,z]=disbutterfly(xj); s=[s,y,z]; end x=s;

实验四 离散傅里叶变换的性质

实验四离散傅里叶变换的性质 一、实验目的 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; %定义序列xn1 xn2=[1,1,1,1];n2=0:length(xn2)-1; %定义序列xn2 yn1=4*xn1;yn2=2*xn2;[yn,ny]=seqadd(yn1,n1,yn2,n2); %计算4xn1+2xn2 xk1=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完全相等,所以离散傅里叶变换的线性性质得到验证。

傅里叶变换的应用,matlab程序,C语言程序

1 利用FFT 计算连续时间信号的傅里叶变换 设()x t 是连续时间信号,并假设0t <时()0x t =,则其傅里叶变换由下式给出 0()()i t X x t e dt ωω∞ -=? 令Γ是一个固定的正实数,N 是一个固定的正整数。当,0,1,2,,1k k N ω=Γ=-L 时,利用FFT 算法可计算()X ω。 已知一个固定的时间间隔T ,选择T 足够小,使得每一个T 秒的间隔(1)nT t n T ≤<+内,()x t 的变化很小,则式中积分可近似为 (1)0 ()()()n T iwt nT n X e dt x nT ω∞+-==∑? (1)01[ ]()i t t n T t nT n e x nT i ωω ∞-=+==-=∑ 0 1()i T i nT n e e x nT i ωωω-∞-=-=∑ (27) 假设N 足够大,对于所有n N ≥的整数,幅值()x nT 很小,则式(27)变为 1 01()()i T N i nT n e X e x nT i ωωωω---=-=∑ (28) 当2/k NT ωπ=时,式(28)两边的值为 2/2/12/0211()()[]2/2/i k N i k N N i nk N n k e e X e x nT X k NT i k NT i k NT ππππππ----=--==∑ (29) 其中[]X k 代表抽样信号[]()x n x nT =的N 点DFT 。最后令2/NT πΓ=,则上式变为 2/1()[]0,1,2,,12/i k N e X k X k k N i k NT ππ--Γ==-L (30) 首先用FFT 算法求出[]X k ,然后可用上式求出0,1,2,,1k N =-L 时的()X k Γ。 应该强调的是,式(28)只是一个近似表示,计算得到的()X ω只是一个近似值。通过取更小的抽样间隔T ,或者增加点数N ,可以得到更精确的值。如果B ω>时,幅度谱()X ω很小,对应于奈奎斯特抽样频率2s B ω=,抽样间隔T 选择/B π比较合适。如果已知信号只在时间区间10t t ≤≤内存在,可以通过对1nT t >时的抽样信号[]()x n x nT =补零,使N 足够大。 例1 利用FFT 计算傅里叶变换

用Matlab对信号进行傅里叶变换实例

目录 用Matlab 对信号进行傅里叶变换 (2) Matlab 的傅里叶变换实例 (5) Matlab 方波傅立叶变换画出频谱图 (7)

用 Matlab 对信号进行傅里叶变换 1. 离散序列的傅里叶变换 DTFT(Discrete Time Fourier Transform) 代码: %原离散信号有 8 点 %原信号是 1行 8列的矩阵 %构建原始信号,为指数信号 %频域共-800 +800 的长度(本应是无穷, 高 %求 dtft 变换,采用原始定义的方法,对复指 7 subplot(311) 8 stem(n,xn); 9 title('原始信号(指数信号 )'); 10 subplot(312); 11 plot(w/pi,abs(X)); 12 title('DTFT 变换 ') 结果: 分析:可见,离散序列的 dtft 变换是周期的,这也符合 Nyquist 采样 定理的描述, 连续时间信号经周期采样之后, 所得的离散信号的频谱 是原连续信号频谱的周期延拓。 2. 离散傅里叶变换 1 N=8; 2 n=[0:1:N-1] 3 xn=0.5.^n; 4 5 w=[-800:1:800]*4*pi/800; 频分量很少,故省去) 6 X=xn*exp(-j*(n'*w)); 数分 量求和而得

与 1 中 DTFT 不一样的是, DTFT 的求和区间是整个频域,这对 N=8; % 原离散信号有 8 点 n=[0:1:N-1] %原信号是 1行 8列的矩阵 xn=0.5.^n; %构建原始信号,为指数信号 w=[-8:1:8]*4*pi/8; %频域共 -800 +800 的长度(本应是无穷, 高频分量很少, 故省去) X=xn*exp(-j*(n'*w)); %求 dtft 变换,采用原始定义的方法,对复指数分量求和而得 subplot(311) stem(n,xn); w1=[-4:1:4]*4*pi/4; X1=xn*exp(-j*(n'*w1)); title(' 原始信号 (指数信号 )'); subplot(312); stem(w/pi,abs(X)); title(' 原信号的 16 点 DFT 变换 ') subplot(313) stem(w1/pi,abs(X1)); title(' 原信号的 8 点 DFT 变换 ') 计算机的计算来说是不可以实现的, DFT 就是序列的有限傅里叶变换。 实际上, 1 中代码也只是对频域的 -800 +800 中间的 1601 结果图: 分析: DFT 只是 DTFT 的现实版本,因为 DTFT 要求求和区间无穷, 而 DFT 只在有限点内求和。 3. 快速傅里叶变换 FFT ( Fast Fourier Transform ) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

傅里叶变换 讲解最通俗易懂的一片

【纯技术帖】为什么要进行傅立叶变换?傅立叶变换究竟有何意义?如何用Matlab实现快速傅立叶 变换?来源:胡姬的日志 写在最前面:本文是我阅读了多篇相关文章后对它们进行分析重组整合而得,内容非我所原创。在此 向多位原创作者致敬!!! 一、傅立叶变换的由来 关于傅立叶变换,无论是书本还是在网上可以很容易找到关于傅立叶变换的描述,但是大都是些故弄玄虚的文章,太过抽象,尽是一些让人看了就望而生畏的公式的罗列,让人很难能够从感性上得到理解,最近,我偶尔从网上看到一个关于数字信号处理的电子书籍,是一个叫Steven W. Smith, Ph.D.外国人写的,写得 非常浅显,里面有七章由浅入深地专门讲述关于离散信号的傅立叶变换,虽然是英文文档,我还是硬着头皮看完了有关傅立叶变换的有关内容,看了有茅塞顿开的感觉,在此把我从中得到的理解拿出来跟大家分享,希望很多被傅立叶变换迷惑的朋友能够得到一点启发,这电子书籍是免费的,有兴趣的朋友也可以从网上下载下来看一下,URL地址是: https://www.wendangku.net/doc/8b8879525.html,/pdfbook.htm 要理解傅立叶变换,确实需要一定的耐心,别一下子想着傅立叶变换是怎么变换的,当然,也需要一定的高等数学基础,最基本的是级数变换,其中傅立叶级数变换是傅立叶变换的基础公式。 二、傅立叶变换的提出 让我们先看看为什么会有傅立叶变换?傅立叶是一位法国数学家和物理学家的 名字,英语原名是Jean Baptiste Joseph Fourier(1768-1830), Fourier对热传递很感兴趣,于1807年在法国科学学会上发表了一篇论文,运用正弦曲线来描述温度分布,论文里有个在当时具有争议性的决断:任何连续周期信号可以由一组适当的正弦曲线组合而成。当时审查这个论文的人,其中有两位是历史上著名的数学家拉格朗日(Joseph Louis Lagrange, 1736-1813)和拉普拉斯(Pierre Simon de Laplace, 1749-1827),当拉普拉斯和其它审查者投票通过并要发表这个论文时,拉格朗日坚决反对,在近50年的时间里,拉格朗日坚持认为傅立叶的方法无法表示带有棱角的信号,如在方波中出现非连续变化斜率。法国科学学会屈服于拉格朗日的威望,拒绝了傅立叶的工作,幸运的是,傅立叶还有其它事情可忙,他参加了政治运动,随拿破仑远征埃及,法国大革命后因会被推上断头台而一直在逃避。直到拉格朗日死后15年这个论文才被发表出来。 谁是对的呢?拉格朗日是对的:正弦曲线无法组合成一个带有棱角的信号。但是,我们可以用正弦曲线来非常逼近地表示它,逼近到两种表示方法不存在能量差别,基于此,傅立叶是对的。 为什么我们要用正弦曲线来代替原来的曲线呢?如我们也还可以用方波或三角 波来代替呀,分解信号的方法是无穷的,但分解信号的目的是为了更加简单地处理原来的信号。用正余弦来表示原信号会更加简单,因为正余弦拥有原信号所不具有的性质:正弦曲线保真度。一个正弦曲线信号输入后,输出的仍是正弦曲线,

相关文档
相关文档 最新文档