MATLAB实验二傅里叶研究及应用.docx

上传人:b****8 文档编号:9914506 上传时间:2023-02-07 格式:DOCX 页数:13 大小:188.52KB
下载 相关 举报
MATLAB实验二傅里叶研究及应用.docx_第1页
第1页 / 共13页
MATLAB实验二傅里叶研究及应用.docx_第2页
第2页 / 共13页
MATLAB实验二傅里叶研究及应用.docx_第3页
第3页 / 共13页
MATLAB实验二傅里叶研究及应用.docx_第4页
第4页 / 共13页
MATLAB实验二傅里叶研究及应用.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

MATLAB实验二傅里叶研究及应用.docx

《MATLAB实验二傅里叶研究及应用.docx》由会员分享,可在线阅读,更多相关《MATLAB实验二傅里叶研究及应用.docx(13页珍藏版)》请在冰豆网上搜索。

MATLAB实验二傅里叶研究及应用.docx

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命令画出各抽样信号的波形和频谱,并分析其频率混叠现象

t2=-0.007:

ts:

0.007;

fst=cos(2*f1*pi*t2);

subplot(223);plot(t1,ft,':

'),holdon

stem(t2,fst),gridon;

axis([-0.0060.006-1.51.5])

xlabel('Time/s'),ylabel('fs(t)')

title('Samplesignal');holdoff

fsw=ts*fst*exp(-1i*t2'*w);

subplot(224);plot(w,abs(fsw)),gridon

axis([-200002000000.006])

xlabel('\omega'),ylabel('fsw')

title('Samplefreqspectrum');

 

Code:

f1=100;%f1=100hz

ts=1/4000;%sample=4000hz

dt=0.0001;

t1=-0.007:

dt:

0.007;

ft=cos(2*f1*pi*t1);

subplot(221);plot(t1,ft),gridon;

axis([-0.0060.006-1.51.5])

xlabel('Time/s'),ylabel('f(t)')

title('Cosinecurve');

N=5000;k=-N:

N;

w=2*pi*k/((2*N+1)*dt);

fw=ft*dt*exp(-1i*t1'*w);

subplot(222);

plot(w,abs(fw));gridon;

axis([-200002000000.005]);

xlabel('\omega'),ylabel('f(w)')

title('Cosfreqspectrum');

>

>

>

>

>

>

>

>

>

>

f1=100Hz

将代码中f1设为3800即可↓

 

f2=3800Hz

5、结合抽样定理,利用MATLAB编程实现

信号经过冲激脉冲抽样后得到的抽样信号

及其频谱[建议:

冲激脉冲的周期分别取4*pi/3s、pis、2*pi/3s三种情况对比],并利用

构建

信号。

(**改动第一行代码即可)

t2=-5:

Ts:

5;

fst=sinc(t2);

subplot(2,2,3)

plot(t1,ft,':

'),holdon

stem(t2,fst),gridon

axis([-66-0.51.2])

title('Samplingsignal')

Fsw=Ts*fst*exp(-1i*t2'*W);

subplot(2,2,4)

plot(W,abs(Fsw)),gridon

axis([-5050-0.051.5])

title('spectrumofSamplingsignal')

Ts=4/3;%impulseperiod=4*pi/3

t1=-5:

0.01:

5;

ft=sinc(t1);

subplot(2,2,1)

plot(t1,ft),gridon

axis([-66-0.51.2])

title('Sa(t)')

N=500;k=-N:

N;

W=pi*k/(N*0.01);

Fw=0.01*ft*exp(-1i*t1'*W);

subplot(2,2,2)

plot(W,abs(Fw)),gridon

axis([-3030-0.051.5])

title('Sa(t)freqspectrum')

 

冲激脉冲的周期=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:

figure(3);

N=4;

a0=1/2;

fork=1:

N

n=1:

2:

nclass(k);

an=4./((n*pi).^2);

ft=an*cos(pi*n'*t);

ft=ft+a0;

subplot(2,2,k);plot(t,ft);

axis([-4,4,0,1])

title(['The',num2str(nclass(k)),'timessuperpose']);

end

figure

(1);

t=-2*pi:

0.001:

2*pi;

f=abs(sawtooth(0.5*pi*t,0.5));

plot(t,f),gridon;

axis([-4,4,-1,2])

title('Originalwave');

nclass=[1,3,13,49];

figure

(2);

N=4;

a0=1/2;

fork=1:

N

n=nclass(k);

an=4./((n*pi).^2);

ft=an*cos(pi*n'*t);

ft=ft+a0;

subplot(2,2,k);plot(t,ft);

axis([-4,4,0,1])

title([num2str(nclass(k)),'classH-wave']);

end

 

(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后,图形应该也跟着放大才好看,但是放大有点失真,故还是选择了原来的比例。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 党团建设

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1