matlab离散傅立叶变换.docx
《matlab离散傅立叶变换.docx》由会员分享,可在线阅读,更多相关《matlab离散傅立叶变换.docx(12页珍藏版)》请在冰豆网上搜索。
![matlab离散傅立叶变换.docx](https://file1.bdocx.com/fileroot1/2023-2/4/ed657e08-9824-4c8b-a445-5efa4c74b197/ed657e08-9824-4c8b-a445-5efa4c74b1971.gif)
matlab离散傅立叶变换
离散傅立叶变换
•、实验目的
♦
掌握离散傅里叶变换的有关性质。
利用matlab验证有关性质。
利用傅立叶变换进行相关运算。
、实验原理及方法
所以“时间”或“频率”取连续还是离散值,就形成
各种不同形式的傅里叶变换对。
傅里叶变换
在工程技术的许多分支中,要掌握的基本内容之一就是正确理解时威和频域的关系。
对于数字系统来说,就是要精通离散傅立叶变换,因此离散傅立叶变换在数字信号处理中占有十分重要的地位。
在实际应用中,有限长序列有相当重要的地位,由于计算机容量的限制,只能对过程进行逐段分析。
由于有限长序列,引入DFT(离散付里叶变换)。
建立以时间t为自变量的“信号”与以频率f为自变量的“频率函数”(频谱)之间的某种变换关系。
傅里叶级数(FS):
连续时间,离散频率的傅里叶变换。
周期连续时间信号傅里叶级数(FS)得到非周期离散频谱密度函数。
傅里叶变换(FT):
连续时间,连续频率的傅里叶变换。
非周期连续时间信号通过连续付里叶变换(FT)得到非周期连续频谱密度函数・
序列的傅里叶变换(DTFT):
离散时间,连续频率的傅里叶变换。
非周期离散的时间信号(单位园上的Z变换(DTFT))得到周期性连续的频率函数。
离散傅里叶变换(DFT):
离散时间,离散频率的傅里叶变换。
计算机上运算,因为至少在一个域(时域或频域)中,函数是连续的。
因为从数字计算角度
离散傅里叶级数(DFS)
设x(n)为周期为N的周期序列,则其离散傅里叶级数
(DFS)变换对为:
正变换
X{k)=DFS[jc(h)]=工上Nzr-0
逆变换
1N7严腻
兀⑺)=/QFS[X伙)]=—工^伙上N
N
♦其中_芦
必之N
N_\
N-1
=Yx伙)wy*层0
利用MATLAB实现傅立叶级数计算
♦编写函数实现DFS计算
♦functionxk=dfs(xn,N)
n=[O:
l:
N-l]:
k=n;
WN=exp(-j*2*pi/N);
nk二n'*k;
WNnk^WN.nk:
xk二xn*WNnk:
♦
♦
♦
♦
例:
xn=[O,1,2,3],N=4
xk=dfs(xn,N)'
xn=[0,1,2,3]:
N=4:
逆运算IDFS
♦functionxn=idfs(xk,N)
n=[0:
l:
N-l]:
k=n;
WN=exp(-j*2*pi/N);
nk=n^*k;
WNnk=WN.d(-nk):
xn=xk*WNnk/N;
N-\_■込M
x(k)=£>Fn兀(H)i=工兀("比7刁"
n=0
1N-\m畑
x(n)=/DFT\X伙)]=方工X伙)yN
♦比较正、逆变换的定义式可以看出,只要把DFT公式中
的系数从改为丿芳皿,并最后乘以1/N,那么,
eZeZ
DFT的计算程序就可以用来计算IDFTo
麗例5已知序列x(n)=cos(0<487cn)+cos(0.527rn),(0N=100;
n=O:
N-l;xn=cos(0.48*pi*n)+cos(0.52*pi*n);xk=dft(xn,N):
niagxk=abs(xk);
subplot(2,1,1)plot(n,xn)subplot(2,1>2)k=0:
length(magxk)-l;plot(k,magxk)
I♦DFT在数字滤波、功率谱分析、仿真、系统分析、通讯理论方面有广泛的应用。
霧DFT的特性
周期性对称性线性时移频移共純折叠实序列的对称性卷积
例:
x(f7)=(O・9exp(7;T/3))",O因为x(n)是复指数,它满足周期性,我们将在两个周期中的401个频点上作计算来观察其周期性。
n=0:
10;
x=(0.9*exp(j*pi/3))."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/pi,magX);
subplot(2,1,2);
plot(w/pi,angX/pi);
♦
检验频移特性
乘以复数指数对应于一个频移
令x{n}=cos(z7;r/2),()<«
0()y(^ny=eE'2xQn)
Bl
从图中可以看出幅值和相位均沿频率轴平移了夕
n=0:
100;x=cos(pi*n/2);
k=-100:
100;w=(pi/100)*k:
X=x*(exp(-j*pi/100))."(n**k);
y=exp(j*pi*n/4)•*x;
Y=y*(exp(-j*pi/100))."(n**k);
subplot(2,2H):
plot(w/pi,abs(X)):
axis([-l,1,0,60]);
subplot(2>2>2):
plot(w/pi,angle(X)/pi):
axis([T,1,T,1]);
subplot(2,2,3):
plot(w/pi,abs(Y)):
axis([-l,1,0,60]):
subplot(2,2,4):
plot(w/pi,angle(Y)/pi);axis([-L1,-L1]):
从差分方程求频率响应
♦
当LTI系统用差分方程表示如下:
♦
ZM
v(fO十ZdvQi-l)=/«)
/■}mwO
上式做变换
NM
+N同H(严‘2®八=2九&E消去共有项#备
♦
H("')
"1十f空一皿
山1
例:
一个LTI系统的差分方程如下:
y(n)=0.8y(n-1)+x(n)
求H(e>)
求出并画出它对输入v(/0=cos(0.05;rH)«(n)的稳态响应
♦
把差分方程改写成
y(n)-0.8y(n-l)=x(n)
利用上面分析的公式,可得
将系统的输入x(ii)带入
因此
y„(n)=4.0928cos(Q.Q5^n-0.53力)=4・0928cos[0.05;r(«-3・42)]
输出端信号放大4.0928倍并移位3.42个采样周期
函数filter
对给定输入和差分方程系数时求解差分方程的数值解。
格式
y=filler(b,a,x)
其中b・a为差分方程的系数向量,X是输入序列。
输出y和输入X的长度一致。
J
□
0
30
ao
5r
.0
20
♦
♦
n=0:
100:
♦
♦
y=fliter(b,a,x);
♦
♦
xlabel('rf):
ylabelCx(n)');titleC输入序列');
♦
♦
xlabelCI?
);ylabel('y(n)');titleC输出序列');
♦
x=cos(0.05*pi*n);
b=l:
a=[l,-0.8]:
subplot(2,1,2);stem(n,y)
subplot(2,1,1);stem(n,x)
1
11...
sc
90
%•…
7
/
0罗
3
r>
⑥出序列
Cj
%
D>
•05
70
•5
in
FC
an
0
T1
60
7D
m
输入序列
1I
1DU
•5
四、实验报告要求
♦简述实验目的和实验原理。
切
•总结实验中的主要结论,你的收获和体会。