MATLAB实验二傅里叶分析与应用.docx
《MATLAB实验二傅里叶分析与应用.docx》由会员分享,可在线阅读,更多相关《MATLAB实验二傅里叶分析与应用.docx(11页珍藏版)》请在冰豆网上搜索。
MATLAB实验二傅里叶分析与应用
实验二傅里叶分析及应用
一、实验目的
(一)掌握使用Matlab进行周期信号傅里叶级数展开和频谱分析
1、学会使用Matlab分析傅里叶级数展开,深入理解傅里叶级数的物理含义
2、学会使用Matlab分析周期信号的频谱特性
(二)掌握使用Matlab求解信号的傅里叶变换并分析傅里叶变换的性质
1、学会运用Matlab求连续时间信号的傅里叶变换
2、学会运用Matlab求连续时间信号的频谱图
3、学会运用Matlab分析连续时间信号的傅里叶变换的性质
(三)掌握使用Matlab完成信号抽样并验证抽样定理
1、学会运用MATLAB完成信号抽样以及对抽样信号的频谱进行分析
2、学会运用MATLAB改变抽样时间间隔,观察抽样后信号的频谱变化
3、学会运用MATLAB对抽样后的信号进行重建
二、实验条件
Win7系统,MATLABR2015a
三、实验内容
1、分别利用Matlab符号运算求解法和数值计算法求下图所示信号的FT,并画出其频谱图(包括幅度谱和相位谱)[注:
图中时间单位为:
毫秒(ms)]。
Code:
ft=sym('(t+2)*(heaviside(t+2)-heaviside(t+1))+(heaviside(t+1)-heaviside(t-1))+(2-t)*(heaviside(t-1)-heaviside(t-2))');
fw=simplify(fourier(ft));
subplot(2,1,1);
ezplot(abs(fw));gridon;
title('ampspectrum');
phi=atan(imag(fw)/real(fw));
subplot(2,1,2);
ezplot(phi);gridon;
title('phasespectrum');
符号运算法
Code:
dt=0.01;
t=-2:
dt:
2;
ft=(t+2).*(uCT(t+2)-uCT(t+1))+(uCT(t+1)-uCT(t-1))+(2-t).*(uCT(t-1)-uCT(t-2));
N=2000;
k=-N:
N;
w=pi*k/(N*dt);
fw=dt*ft*exp(-i*t'*w);
fw=abs(fw);
plot(w,fw),gridon;
axis([-2*pi2*pi-13.5]);
数值运算法
2、试用Matlab命令求
的傅里叶反变换,并绘出其时域信号图。
Code:
symst;
fw=sym('10/(3+i*w)-4/(5+i*w)');
ft=ifourier(fw,t);
ezplot(ft),gridon;
两个单边指数脉冲的叠加
3、已知门函数自身卷积为三角波信号,试用Matlab命令验证FT的时域卷积定理。
Code:
f=sym('heaviside(t+1)-heaviside(t-1)');
fw=simplify(fourier(f));
F=fw.*fw;
subplot(211);
ezplot(abs(F),[-9,9]),gridon
title('FW^2')
tri=sym('(t+2)*heaviside(t+2)-2*t*heaviside(t)+(t-2)*heaviside(t-2)');
Ftri=fourier(tri);
F=simplify(Ftri);
subplot(212);
ezplot(abs(F),[-9,9]),gridon;
title('triFT')
4、设有两个不同频率的余弦信号,频率分别为
,
;现在使用抽样频率
对这三个信号进行抽样,使用MATLAB命令画出各抽样信号的波形和频谱,并分析其频率混叠现象
>
>
>
>
>
>
>
>
>
>
f1=100Hz
将代码中f1设为3800即可↓
f2=3800Hz
5、结合抽样定理,利用MATLAB编程实现
信号经过冲激脉冲抽样后得到的抽样信号
及其频谱[建议:
冲激脉冲的周期分别取4*pi/3s、pis、2*pi/3s三种情况对比],并利用
构建
信号。
(**改动第一行代码即可)
冲激脉冲的周期=4*pi/3s
冲激脉冲的周期=pis
冲激脉冲的周期=2*pi/3s
6、已知周期三角信号如下图所示[注:
图中时间单位为:
毫秒(ms)]:
(1)试求出该信号的傅里叶级数[自己求或参见课本P112或P394],利用Matlab编程实现其各次谐波[如1、3、5、13、49]的叠加,并验证其收敛性;
a0=
;an=
;bn=0谐波幅度收敛速度:
原始波形:
第k阶谐波波形
前K次谐波的叠加
Code:
(2)用Matlab分析该周期三角信号的频谱[三角形式或指数形式均可]。
当周期三角信号的周期(如由2ms1ms或由2ms4ms)和宽度(如2ms1ms)分别变化时,试观察分析其频谱的变化。
dt=0.01;
t=-4:
dt:
4;
ft=(t>=-1&t<0).*(t+1)+(t>0&t<=1).*(1-t);
%subplot(2,1,1)
%plot(t,ft);gridon
n=2000;
k=-n:
n;
w=pi*k/(n*dt);
f=dt*ft*exp(-i*t'*w);
f=abs(f);
%subplot(2,1,2)
plot(w,f);
axis([-202001.1]),gridon;
周期为2ms
dt=0.01;
t=-4:
dt:
4;
ft=(t>=-0.5&t<0).*(t+1)+(t>0&t<=0.5).*(1-t);
%subplot(2,1,1)
%plot(t,ft);gridon
n=2000;
k=-n:
n;
w=pi*k/(n*dt);
f=dt*ft*exp(-i*t'*w);
f=abs(f);
%subplot(2,1,2)
plot(w,f);
axis([-202001.1]),gridon;
周期为1ms
四、实验结论和讨论
1、凡是等步长离散采样一定会产生频率混叠现象。
根据采样定理,当采样频率fs.max大于信号中最高频率fmax的2倍时(fs.max>2fmax),采样之后的数字信号才能完整保留原始信号中的信息。
第四题中,f=3800hz时,采样频率4000hz明显小于f,故发生了混叠。
2、谐波叠加实验:
可以看出随着波次的叠加,波形越来越趋近于原始波形,正体现了傅里叶级数对原函数的还原。
五、实验思考
1、MATLAB原意是矩阵实验室,里面各种运算都是矩阵化的。
所以在进行一些变量相乘的时候,要进行转置,比如单引号和点乘。
2、第二题傅里叶逆变换,我对照了wolframalpha的结果,不太一样后发现MATLAB的逆变换是没有归一化处理的,而wolframalpha针对的是离散傅里叶变换,默认加了1/sqrt(2pi)归一化因子。
3、第四题抽样那,频率变为3800hz后,图形应该也跟着放大才好看,但是放大有点失真,故还是选择了原来的比例。