MATLAB实验二 傅里叶分析及应用
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
fw = dt*ft*exp(-i*t'*w);
fw = abs(fw);
plot(w, fw), grid on;
axis([-2*pi 2*pi -1 3.5]);
数值运算法
2、试用 Matlab 命令求 F(j) 10 - 4 的傅里叶反变换,并绘出其时域信号图。 3 j 5 j
Code:
Sa(t) 1
0.5
0
-0.5
-5
0
5
Sampling signal
1
0.5
0
-0.5
-5
0
5
Sa(t) freq spectrum 1.5
1
0.5
0
-20
0
20
spectrum of Sampling signal 1.5
1
0.5
0
-50
0
50
冲激脉冲的周期 = 4*pi/3 s
Sa(t) 1
0.5
t2 = -5: Ts: 5; fst = sinc(t2); subplot(2, 2, 3) plot(t1, ft, ':'), hold on stem(t2, fst), grid on axis([-6 6 -0.5 1.2]) title('Sampling signal') Fsw = Ts*fst*exp(-1i*t2'*W); subplot(2, 2, 4) plot(W, abs(Fsw)), grid on axis([-50 50 -0.05 1.5]) title('spectrum of Sampling signal')
a0 = ; an =
2
原始波形:
1.5
; bn = 0
谐波幅度收敛速度:
Original wave
1
0.5
0
-0.5
-1
-4
-3
-2
-1
0
1
2
3
4
1 class H-wave 1 0.8 0.6 0.4 0.2
3 class H-wave 1 0.8 0.6 0.4 0.2
0
-4 -2
0Байду номын сангаас
2
4
0
-4 -2
title('Sample signal'); hold off
>
fsw=ts*fst*exp(-1i*t2'*w);
> subplot(224); plot(w, abs(fsw)),
grid on
> axis([-20000 20000 0 0.006])
xlabel('\omega'),ylabel('fsw')
信号 fs t 及其频谱[建议:冲激脉冲的周期分别取 4*pi/3 s、pi s、2*pi/3 s 三种情况对比],
并利用 fs t 构建 Sa(t) 信号。
(**改动第一行代码即可)
Ts = 4/3; % impulse period = 4*pi/3 t1 = -5:0.01:5; ft = sinc(t1); subplot(2, 2, 1) plot(t1, ft), grid on axis([-6 6 -0.5 1.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)), grid on axis([-30 30 -0.05 1.5]) title('Sa(t) freq spectrum')
syms t; fw = sym('10/(3+i*w)-4/(5+i* w)'); ft = ifourier(fw, t); ezplot(ft), grid on;
(20 exp(-3 t) heaviside(t) - 8 exp(-5 t) heaviside(t))/(2 )
5
4
3
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]), grid on; title('tri FT')
0
2
4
13 class H-wave 1 0.8 0.6 0.4 0.2
49 class H-wave 1 0.8 0.6 0.4 0.2
0
-4 -2
0
2
4
0
-4 -2
0
2
4
第 k 阶谐波 波形
Code:
The 1times superpose 1
0.8
0.6
0.4
0.2
0
-4 -2
0
2
4
The 13times superpose 1
0
1
2
4
x 10
x 10-3Sample freq spectrum
6
4
2
0
-2 -1
0
1
2
4
x 10
f1 = 100Hz
将代码中 f1 设为 3800 即可↓
Cosine curve 1
0
-1 -5
1
0 Time/s
Sample signal
5
-3
x 10
0
-1 -5
0 Time/s
5
-3
x 10
1
0
0
0.5
1
1.5
2
2.5
t
两个单边指数脉冲的叠加 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]), grid on title('FW^2')
符号运算法
Code:
dt = 0.01;
t = -2: dt: 2;
ft
=
(t+2).*(uCT(t+2)-uCT(t+1))+(u
CT(t+1)-uCT(t-1))+(2-t).*(uCT
(t-1)-uCT(t-2));
N = 2000;
k = -N: N;
w = pi * k / (N*dt);
实验二 傅里叶分析及应用
一、实验目的
(一)掌握使用 Matlab 进行周期信号傅里叶级数展开和频谱分析 1、学会使用 Matlab 分析傅里叶级数展开,深入理解傅里叶级数的物理含义 2、学会使用 Matlab 分析周期信号的频谱特性
(二)掌握使用 Matlab 求解信号的傅里叶变换并分析傅里叶变换的性质 1、学会运用 Matlab 求连续时间信号的傅里叶变换 2、学会运用 Matlab 求连续时间信号的频谱图 3、学会运用 Matlab 分析连续时间信号的傅里叶变换的性质
三、实验内容
1、分别利用 Matlab 符号运算求解法和数值计算法求下图所示信号的 FT,并画出其频 谱图(包括幅度谱和相位谱)[注:图中时间单位为:毫秒(ms)]。
Code:
ft = sym(' (t+2)*(heaviside(t+2)-heavisi de(t+1))+(heaviside(t+1)-heav iside(t-1))+(2-t)*(heaviside( t-1)-heaviside(t-2))'); fw = simplify(fourier(ft));
1
0.5
0
-0.5
-5
0
5
Sa(t) freq spectrum 1.5
1
0.5
0
-20
0
20
spectrum of Sampling signal 1.5
1
0.5
0
-50
0
50
冲激脉冲的周期 = 2*pi/3 s
6、已知周期三角信号如下图所示[注:图中时间单位为:毫秒(ms)]:
(1)试求出该信号的傅里叶级数[自己求或参见课本 P112 或 P394],利用 Matlab 编程 实现其各次谐波[如 1、3、5、13、49]的叠加,并验证其收敛性;
subplot(2, 1, 1); ezplot(abs(fw)); grid on; title('amp spectrum'); phi = atan(imag(fw) / real(fw)); subplot(2, 1, 2); ezplot(phi); grid on; title('phase spectrum');
> t2 = -0.007:ts:0.007;
fst = cos(2*f1*pi*t2);
> subplot(223);plot(t1, ft, ':'),
hold on
> stem(t2, fst), grid on;
axis([-0.006 0.006 -1.5 1.5])
> xlabel('Time/s'),ylabel('fs(t)')
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)); grid on; axis([-20000 20000 0 0.005]); xlabel('\omega'), ylabel('f(w)') title('Cos freq spectrum');
(三) 掌握使用 Matlab 完成信号抽样并验证抽样定理 1、学会运用 MATLAB 完成信号抽样以及对抽样信号的频谱进行分析 2、学会运用 MATLAB 改变抽样时间间隔,观察抽样后信号的频谱变化 3、学会运用 MATLAB 对抽样后的信号进行重建
二、实验条件
Win7 系统,MATLAB R2015a
fsw
f(w)
x
-3
10
Cos
freq
spectrum
5
4
3
2
1
0
-2 -1
0
1
2
4
x 10
x 10-3Sample freq spectrum
6
4
2
0
-2 -1
0
1
2
4
x 10
f(t)
fs(t)
f2 = 3800Hz
5、结合抽样定理,利用 MATLAB 编程实现 Sa(t) 信号经过冲激脉冲抽样后得到的抽样
nclass = [1, 3, 13, 49]; figure(2); N = 4; a0 = 1/2; for k = 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)),' class H-wave ']); end
4、设有两个不同频率的余弦信号,频率分别为 f1 100 Hz , f2 3800 Hz ;现在使用 抽样频率 fs 4000 Hz 对这三个信号进行抽样,使用 MATLAB 命令画出各抽样信号的波形
和频谱,并分析其频率混叠现象
Code: f1 = 100; % f1 = 100 hz 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), grid on; axis([-0.006 0.006 -1.5 1.5]) xlabel('Time/s'),ylabel('f(t)') title('Cosine curve');
> title(' Sample freq spectrum');
>
>
f(t)
fs(t)
Cosine curve 1
0
-1 -5
1
0 Time/s
Sample signal
5
-3
x 10
0
-1 -5
0 Time/s
5
-3
x 10
fsw
f(w)
x
-3
10
Cos
freq
spectrum
5
4
3
2
1
0
-2 -1
0.8
0.6
0.4
0.2
0
-4 -2
0
2
4
The 3times superpose 1
0.8
0.6
0.4
0.2
0
-4 -2
0
2
4
The 49times superpose 1
0.8
0.6
0.4
0.2
0
-4 -2
0
2
4
前 K 次谐波的叠加
figure(1); t = -2*pi: 0.001: 2*pi; f = abs(sawtooth(0.5*pi*t, 0.5)); plot(t, f), grid on; axis([-4, 4, -1, 2]) title('Original wave');
0
-0.5
-5
0
5
Sampling signal
1
0.5
0
-0.5
-5
0
5
Sa(t) freq spectrum 1.5
1
0.5
0
-20
0
20
spectrum of Sampling signal 1.5
1
0.5
0
-50
0
50
冲激脉冲的周期 = pi s
Sa(t) 1
0.5
0
-0.5
-5
0
5
Sampling signal