文档库 最新最全的文档下载
当前位置:文档库 › 方波的傅里叶展开式matlab源码

方波的傅里叶展开式matlab源码

方波的傅里叶展开式matlab源码
方波的傅里叶展开式matlab源码

%周期信号(方波)的展开

close all;

clear all;

N=100; %取展开式的项数为2N+1项

T=1;

fs=1/T;

N_sample=128; %为了画出波形,设置每个周期的采样点数dt = T/N_sample;

t=0:dt:10*T-dt;

n=-N:N;

Fn = sinc(n/2).*exp(-j*n*pi/2);

Fn(N+1)=0;

ft = zeros(1,length(t));

for m=-N:N

ft = ft + Fn(m+N+1)*exp(j*2*pi*m*fs*t);

end

plot(t,ft)

按频率抽取基2-快速傅里叶逆变换算法_MATLAB代码

function x=MyIFFT_FB(y) %MyIFFT_TB:My Inverse Fast Fourier Transform Time Based %按频率抽取基2-傅里叶逆变换算法 %input: % y -- 傅里叶正变换结果,1*N的向量 %output: % x -- 逆变换结果,1*N的向量 %参考文献: % https://www.wendangku.net/doc/f016831055.html,/view/fea1e985b9d528ea81c779ee.html N=length(y); x=conj(y); %求共轭 x=MyFFT_FB(x);%求FFT x=conj(x);%求共轭 x=x./N;%除以N end %% 内嵌函数====================================================== function y=MyFFT_FB(x,n) %MYFFT_TB:My Fast Fourier Transform Frequency Based %按频率抽取基2-fft算法 %input: % x -- 输入的一维样本 % n -- 变换长度,缺省时n=length(x) 当n小于x数据长度时,x数据被截断到第n个数据% 当n大于时,x数据在尾部补0直到x 含n个数据 %output: % y -- 1*n的向量,快速傅里叶变换结果 %variable define: % N -- 一维数据x的长度 % xtem -- 临时储存x数据用 % m,M -- 对N进行分解N=2^m*M,M为不能被2整除的整数 % two_m -- 2^m % adr -- 变址,1*N的向量 % l -- 当前蝶形运算的级数 % W -- 长为N/2的向量,记录W(0,N),W(1,N),...W(N/2-1,N) % d -- 蝶形运算两点间距离 % t -- 第l级蝶形运算含有的奇偶数组的个数 % mul -- 标量,乘数 % ind1,ind2 -- 标量,下标 % tem -- 标量,用于临时储存 %参考文献: % https://www.wendangku.net/doc/f016831055.html,/view/fea1e985b9d528ea81c779ee.html %% 输入参数个数检查

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

傅里叶变换定律-傅里叶变换定义定律

第2章信号分析 本章提要 信号分类 周期信号分析--傅里叶级数 非周期信号分析--傅里叶变换 脉冲函数及其性质 信号:反映研究对象状态和运动特征的物理量信号分析:从信号中提取有用信息的方法 和手段 §2-1 信号的分类 两大类:确定性信号,非确定性信号 确定性信号:给定条件下取值是确定的。 进一步分为:周期信号, 非周期信号。

质量M 弹簧 刚度K t x (t ) o x 0 质量-弹簧系统的力学模型 x (t ) ? ?? ? ??+=0cos )(?t m k A t x 非确定性信号(随机信号):给定条件下取值是不确定的 按取值情况分类:模拟信号,离散信号 数字信号:属于离散信号,幅值离散,并用二进制表示。 信号描述方法 时域描述 如简谐信号

频域描述 以信号的频率结构来描述信号的方法:将信号看成许多谐波(简谐信号)之和,每一个谐波称作该信号的一个频率成分,考察信号含有那些频率的谐波,以及各谐波的幅值和相角。

§2-2 周期信号与离散频谱 一、 周期信号傅里叶级数的三角函数形式 周期信号时域表达式 ) 21() ()2()()( ,,±±=+==+=+=n nT t x T t x T t x t x T :周期。注意n 的取值:周期信号“无始无终” # 傅里叶级数的三角函数展开式 ) sin cos ()(01 00t n b t n a a t x n n n ωω∑∞ =++= (n =1, 2, 3,…) 傅立叶系数:

?- = 2 2 0)(1T T dt t x T a ?- = 2 2 0cos )(2T T n tdt n t x T a ω ? - = 2 2 0sin )(2T T n tdt n t x T b ω 式中 T--周期;0--基频, 0=2 /T 。 三角函数展开式的另一种形式: ) cos()(1 00∑∞ =++=n n n t n A a t x ?ωN 次谐波 N 次谐波的相角 N 次谐波的频率 N 次谐波的幅值 信号的均值,直流分量

傅里叶变换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('幅值频谱')

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数字图像处理实验指导 实验目的: 通过实验,深入理解和掌握图像处理的基本技术,提高动手实践能力。 实验环境: Matlab变成 实验一图像的几何变换 实验内容:设计一个程序,能够实现图像的各种几何变换。 实验要求:读入图像,打开图像,实现图像的平移变换、比例缩放、转置变换、镜像变换、旋转变换等操作。 实验原理: 图像几何变换又称为图像空间变换,它将一幅图像中的坐标位置映射到另一幅图像中的新坐标位置。学习几何变换的关键就是要确定这种空间映射关系,以及映射过程中的变化参数。 几何变换不改变图像的像素值,只是在图像平面上进行像素的重新安排。一个几何变换需要两部分运算:首先是空间变换所需的运算,如平移、镜像和旋转等,需要用它来表示输出图像与输入图像之间的(像素)映射关系;此外,还需要使用灰度插值算法,因为按照这种变换关系进行计算,输出图像的像素可能被映射到输入图像的非整数坐标上。 设原图像f(x0,y0)经过几何变换产生的目标图像为g(x1,y1),则该空间变换(映射)关系可表示为: x1=s(x0,y0) y1=t(x0,y0) 其中,s(x0,y0)和t(x0,y0)为由f(x0,y0)到g(x1,y1)的坐标换变换函数。 一、图像平移 图像平移就是将图像中所有的点按照指定的平移量水平或者垂直移动。

二、图像镜像 镜像变换又分为水平镜像和垂直镜像。水平镜像即将图像左半部分和右半部分以图像竖直中轴线为中心轴进行对换;而竖直镜像则是将图像上半部分和下半部分以图像水平中轴线为中心轴进行对换。 三、图像转置 图像转置是将图像像素的x坐标和y坐标呼唤。图像的大小会随之改变——高度和宽度将呼唤。

信号系统方波与三角波的傅里叶的分解与合成

实验<编号> 学号姓名分工 11350023 韦能龙编写代码 11350024 熊栗问题分析1.问题描述 实验二信号的合成与分解

2. 问题分析 此次主要是考察傅里叶的合成与分解,运用分解公式求出系数,运用合成公式合成函数,三角波和矩形波是很典型的连个列子,这个大作业只要分解出系数还有用合成公式,基本上就解决了问题了。 3. 实验代码与实验结果 (1)周期性矩形波的系数表示 ,.....7,5,3,1),2 sin(2==n npi kpi a k 代码: t = -3:0.001:3; M = 1;%M =1,7,29,99 T = 2; W = 2*pi/T; f1 = 0*ones(1,length(t)); for n= -M:2:M a = 2/(n*pi)*sin(n*pi/2); f1 = f1+a*exp(j*n*W*t); end plot(t,f1) xlabel('t') ylabel('f(t)') title('M=1,7,29,99时的方波') ylim([-1.5 1.5]); hold on plot(t , zeros(1,length(t))) hold off 图像: M =1时:

M= 7: M = 29

M = 99 (2)三角波的系数表示:

?? --== 1 1)()(1dt e t x dt e t x T a jkwt T jkwt k )2 (sin 42 12 2 20npi pi n a a n == 代码: t = -3:0.001:3; M = 1;%M =1,7,29,99 T = 1; W = 2*pi/T; G1= 0*ones(1,length(t)); for n= -M:M if n==0 a =1/2; else a = 4/(n^2*pi^2)*(sin(n*pi/2)^2) ; end G1 = G1+a*exp(j*n*W*t); end G1 = G1-0.5; plot(t,G1) xlabel('t') ylabel('G(t)') title('M=1时的三角波') ylim([-1.5 1.5]); hold on plot(t , zeros(1,length(t))) hold off M=1 时

用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实现傅里叶变换

一、傅立叶变化的原理; (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程序,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 计算傅里叶变换

方波的傅里叶分解与合成

方波的傅里叶分解与合成 教 学 目 的 1、用RLC 串联谐振方法将方波分解成基波和各次谐波,并测量它们的振幅 与相位关系。 2、将一组振幅与相位可调正弦波由加法器合成方波。 3、了解傅立叶分析的物理含义和分析方法。 重 难 点 1、了解串联谐振电路的基本特性及在选频电路中的应用; 了解方波的傅立叶合成的物理意义。 2、选频电路将方波转换成奇数倍频正弦波的物理意义。 教 学 方 法 讲授与实验演示相结合。 学 时 3学时。 一、实验仪器 FD-FLY-I 傅立叶分解合成仪,DF4320示波器,标准电感,电容箱。 二、原理 任何具有周期为T 的波函数f(t)都可以表示为三角函数所构成的级数之和,即: ∑∞ =++=10) sin cos (21 )(n n n t n b t n a a t f ωω 其中:T 为周期,ω为角频率。ω=T π 2;第一项20a 为直流分量。 所谓周期性函数的傅里叶分解就是将周期性函数展开成直流分量、基波和所有n阶谐波的迭加。 如图1所示的方法可以写成: h (0≤t <2T ) )(t f = -h (-2T ≤t <0)

此方波为奇函数,它没有常数项。 数学上可以证明此方波可表示为: ) 7sin 715sin 513sin 31(sin 4)( ++++=t t t t h t f ωωωωπ ∑∞ =--1 ])12sin[()121 ( 4n t n n h ωπ 同样,对于如图2所示的三角波也可以表示为: t T h 4 (-4T ≤t ≤4T ) )(t f = 2h(1-T t 2) (4T ≤t ≤43T ) )7sin 715sin 513sin 31(sin 8)(2222 +-+- = t t t t h t f ωωωωπ ∑∞ =----1 2 1 2 )12sin()12(1 )1(8n n t n n h ωπ (a )周期性波形傅里叶分解的选频电路 我们用RLC 串联谐振电路作为选频电路,对方波或三角波进行频谱分解。在示波器上显示这些被分解的波形,测量它们的相对振幅。我们还可以用一参考正弦波与被分解出的波形构成李萨如图形,确定基波与各次谐波的初相位关系。 本仪器具有1KH z的方波和三角波供做傅里叶分解实验,方波和三角波的输出阻抗低,可以保证顺利地完成分解实验。 实验线路图如图3所示。这是一个简单的RLC 电路,其中R 、C 是可变的。L 一般取0.1H~1H 范围。 当输入信号的频率与电路的谐振频率相匹配时,此电路将有最大的响应。谐振频率0ω为: 0ω=LC 1 这个响应的频带宽度以Q 值来表示: Q =R L 0ω 当Q 值较大时,在0ω附近的频带宽度较狭窄,所以实验中我们应该选择Q 值足够大,大到足够将基波与各次谐波分离出来。 如果我们调节可变电容C ,在n 0ω频率谐振,我们将从 此周期性波形中选择出这个单元。它的值为: t n b t V n 0sin )(ω= 图3 波形分解的RLC 串联电路

利用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;

傅里叶变换MATLAB程序

fs=51.2; N=1024; n=0:N-1; t=n/fs; x=0.5-0.5*sign(t-1); Y=fft(x,N); mag=abs(Y); Y1=fftshift(Y); mag1=abs(Y1); fn2=(-N/10.24:N/10.24)*fs/N; subplot(2,1,1) plot(fn2,mag1((N/2-N/10.24+1):(N/2+N/10.24+1))); set(gca,'XTick',(-5:0.5:5)); set(gca,'YTick',(0:10:60)); xlabel('频率/Hz');ylabel('振幅'); title('图1:矩形函数的FFT结果,N=512,fs=51.2Hz'); grid on; f=linspace(-5,5,1000); y=sqrt(2-2*cos(2*pi*f))./abs((2*pi*f)); subplot(2,1,2) plot(f,y); set(gca,'XTick',(-5:0.5:5)); set(gca,'YTick',(0:0.2:1)); xlabel('频率/Hz');ylabel('振幅'); title('图2:矩形函数傅里叶变换的理论结果'); grid on

-5-4.5-4-3.5-3-2.5-2-1.5-1-0.500.51 1.52 2.53 3.54 4.55010203040 50 60 频率/Hz 振幅 图1:矩形函数的FFT 结果,N=512,fs=51.2Hz -5-4.5-4-3.5-3-2.5-2-1.5-1-0.500.51 1.52 2.53 3.54 4.55 00.2 0.4 0.60.8 1频率/Hz 振幅图2:矩形函数傅里叶变换的理论结果

MAtlab-傅里叶变换-实验报告

陕西科技大学实验报告 班级信工142 学号22 姓名何岩实验组别实验日期室温报告日期成绩报告内容:(目的和要求,原理,步骤,数据,计算,小结等) 1.求信号的离散时间傅立叶变换并分析其周期性和对称性; 给定正弦信号x(t)=2*cos(2*pi*10*t),fs=100HZ,求其DTFT。 (a)代码: f=10;T=1/f;w=-10:0.2:10; t1=0:0.0001:1;t2=0:0.01:1; n1=-2;n2=8;n0=0;n=n1:0.01:n2; x5=[n>=0.01]; x1=2*cos(2*f*pi*t1); x2=2*cos(2*f*pi*t2); x3=(exp(-j).^(t2'*w)); x4=x2*x3; subplot(2,2,1);plot(t1,x1); axis([0 1 1.1*min(x2) 1.1*max(x2)]); xlabel('x(n)');ylabel('x(n)'); title('原信号x1'); xlabel('t');ylabel('x1'); subplot(2,2,3);stem(t2,x2); axis([0 1 1.1*min(x2) 1.1*max(x2)]); title('原信号采样结果x2'); xlabel('t');ylabel('x2'); subplot(2,2,2);stem(n,x5); axis([0 1 1.1*min(x5) 1.1*max(x5)]); xlabel('n');ylabel('x2'); title('采样函数x2'); subplot(2,2,4);stem(t2,x4); axis([0 1 -0.2+1.1*min(x4) 1.1*max(x4)]); xlabel('t');ylabel('x4'); title('DTFT结果x4'); (b)结果:

快速傅里叶变换_蝶形运算_按时间抽取基2-fft算法_MATLAB代码

function y=MyFFT_TB(x,n) %MYFFT_TB:My Fast Fourier Transform Time Based %按时间抽取基2-fft算法 %input: % x -- 输入的一维样本 % n -- 变换长度,缺省时n=length(x) 当n小于x数据长度时,x数据被截断到第n个数据% 当n大于时,x数据在尾部补0直到x 含n个数据 %output: % y -- 1*n的向量,快速傅里叶变换结果 %variable define: % N -- 一维数据x的长度 % xtem -- 临时储存x数据用 % m,M -- 对N进行分解N=2^m*M,M为不能被2整除的整数 % two_m -- 2^m % adr -- 变址,1*N的向量 % l -- 当前蝶形运算的级数 % W -- 长为N/2的向量,记录W(0,N),W(1,N),...W(N/2-1,N) % d -- 蝶形运算两点间距离 % t -- 第l级蝶形运算含有的奇偶数组的个数 % mul -- 标量,乘数 % ind1,ind2 -- 标量,下标 % tem -- 标量,用于临时储存 %参考文献: % https://www.wendangku.net/doc/f016831055.html,/view/fea1e985b9d528ea81c779ee.html %% 输入参数个数检查 msg=nargchk(1,2,nargin); error(msg); %% 输入数据截断或加0 N=length(x); if nargin==2 if N

实验四方波的傅里叶分解与合成

实验四方波的傅里叶分 解与合成 Document serial number【KK89K-LLS98YT-SS8CB-SSUT-SST108】

实验四方波的傅里叶分解与合成 一、实验目的 1.用RLC 串联谐振方法将方波分解成基波和各次谐波,并测量它们的振幅与相位关系。 2.将一组振幅与相位可调正弦波由加法器合成方波。 3.了解傅里叶分析的物理含义和分析方法。 二、实验仪器 FD-FLY-A 型傅里叶分解与合成,示波器,电阻箱,电容箱,电感。 三、实验原理 1.数学基础 任何具有周期为T 的波函数f(t)都可以表示为三角函数所构成的级数之和,即: 其中:T 为周期,ω为角频率。ω= T π 2;第一项20a 为直流分量。 图1方波图2波形分解的RLC 串联电路 所谓周期性函数的傅里叶分解就是将周期性函数展开成直流分量、基波和所有n阶谐波的迭加。如图1所示的方法可以写成: 此方波为奇函数,它没有常数项。数学上可以证明此方波可表示为: = ∑∞ =--1 ])12sin[()1 21 ( 4n t n n h ωπ 2.周期性波形傅里叶分解的选频电路 我们用RLC 串联谐振电路作为选频电路,对方波或三角波进行频谱分解。在示波器上显示这些被分解的波形,测量它们的相对振幅。我们还可以用一参考正弦波与被分解出的波形构成李萨如图形,确定基波与各次谐波的初相位关系。 本仪器具有1KH z的方波和三角波供做傅里叶分解实验,方波的输出阻抗低,可以保证顺利地 完成分解实验。实验原理图如图2所示。这是一个简单的RLC 电路,其中R 、C 是可变的。L 一般取0.1H ~H 范围。 当输入信号的频率与电路的谐振频率相匹配时,此电路将有最大的响应。谐振频率0ω为: 0ω= LC 1。这个响应的频带宽度以Q 值来表示:Q = R L 0ω。当Q 值较大时,在0ω附近的频带宽度 较狭窄,所以实验中我们应该选择Q 值足够大,大到足够将基波与各次谐波分离出来。

傅里叶变换matlab代码

傅里叶变换m a t l a b代 码 Document serial number【UU89WT-UU98YT-UU8CB-UUUT-UUT108】

%傅里叶变换 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

短时傅里叶变换matlab程序.

function [Spec,Freq]=STFT(Sig,nLevel,WinLen,SampFreq %计算离散信号的短时傅里叶变换; % Sig 待分析信号; % nLevel 频率轴长度划分(默认值512); % WinLen 汉宁窗长度(默认值 64); % SampFreq 信号的采样频率(默认值1); if (nargin <1, error('At least one parameter required!'; end; Sig=real(Sig; SigLen=length(Sig; if (nargin <4, SampFreq=1; end if (nargin <3, WinLen=64; end if (nargin <2, nLevel=513;

end nLevel=ceil(nLevel/2*2+1; WinLen=ceil(WinLen/2*2+1; WinFun=exp(-6*linspace(-1,1,WinLen.^2; WinFun=WinFun/norm(WinFun; Lh=(WinLen-1/2; Ln=(nLevel-1/2; Spec=zeros(nLevel,SigLen; wait=waitbar(0,'Under calculation,please wait...'; for iLoop=1:SigLen, waitbar(iLoop/SigLen,wait; iLeft=min([iLoop-1,Lh,Ln]; iRight=min([SigLen-iLoop,Lh,Ln]; iIndex=-iLeft:iRight; iIndex1=iIndex+iLoop; iIndex2=iIndex+Lh+1; Index=iIndex+Ln+1; Spec(Index,iLoop=Sig(iIndex1.*conj(WinFun(iIndex2; end; close(wait;

典型信号的地傅里叶变换

例9.1 试将图9.3中所示的非正弦周期信号(称为方波信号)展成傅里叶级数。 解 根据图上所示信号的波形,可知其既对称于纵轴,又具有半波对称性质,所以它是兼有奇谐波函数性质的偶函数。依照上述定理,此信号的傅里叶级数中必定只含有余弦的奇次谐波项,因此只需按公式 ()2 04cos T km A f t k tdt T ω= ? 计算A km 。 对图上的波形图可以写出 ()04 42 T A t f t T T A t ?

图9.3 方波信号 图9.4 三角波信号 例9.2 试求图9.4所示三角波信号的傅里叶级教。 解 视察一下所给的波形可以知道,它既是原点对称又是半波横轴对称。因此,其傅里叶级数仅由正弦奇次谐波分量组成。由于 ()404 4242 A T t t T f t A T T t A t T ???=??-+??≤≤≤≤ 故有 2044444sin 2sin T T km T A A B t k tdt t A k tdt T T T T ωω??= -- ??? ?? 参照积分公式 211 sin sin cos x axdx ax x ax a a = -? 可算出 22 22 81,5,9,83,7,11km A k k B A k k ππ?=??=??-=??L L 于是所欲求的傅里叶级数 ()2222 8111sin sin 3sin 5sin 7357A f t t t t t ωωωωπ?? = -+-+ ??? L 。 例9.3 已知一如图9.5所示的信号波形,试求其傅里叶级数。 图9.5 例9.3用图

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