傅里叶级数的绘制与改进

4次浏览(最近30天)
费萨尔Al-Wazir
费萨尔Al-Wazir 2022年5月2日
编辑: 保罗 2022年5月6日
关闭所有
信谊n t
T = 2;
w = 2*pi/T;
%指数傅里叶级数
C (n) = (1 / T) * (int (4 * exp (1 * w * n * T), T (0, 1) + int (4 * exp (1 * w * n * T), T, 1, 2));
C0 = limit(C(n),n,0);% C (0)
谐波= [C0 C C C (1) (2) (3) (4) C C (5) (6) (7) C C (8) (9) (10) C C (11) (12)];
流(前13次谐波:\n
disp(谐波)
% f(t)用傅里叶级数表示
f (t) = symsum (C (n) * exp (1 * w * n * t), n, -100年,1)+ C0 + symsum (C (n) * exp (1 * w * n * t), n, 1100);
fplot (t, f (t))
包含(“t”
ylabel (“f (t)”
标题(使用傅里叶级数系数的f(t)
网格
这是我的代码为这个任务,但我想使它更好,适合所有情况

接受的答案

保罗
保罗 2022年5月2日
嗨费萨尔
运行代码:
信谊n t
T = 2;
w = 2*pi/T;
%指数傅里叶级数
C (n) = (1 / T) * (int (4 * exp (1 * w * n * T), T (0, 1) + int (4 * exp (1 * w * n * T), T, 1, 2));
C0 = limit(C(n),n,0);% C (0)
谐波= [C0 C C C (1) (2) (3) (4) C C (5) (6) (7) C C (8) (9) (10) C C (11) (12)];
%fprintf('前13个谐波:\n')
% disp(谐波)
% f(t)用傅里叶级数表示
f (t) = symsum (C (n) * exp (1 * w * n * t), n, -100年,1)+ C0 + symsum (C (n) * exp (1 * w * n * t), n, 1100);
fplot (t、f (t) [0 5))
包含(“t”
ylabel (“f (t)”
标题(使用傅里叶级数系数的f(t)
网格
该代码返回一个方波,但似乎不是问题中的信号:
最大值和最小值是+-4,但应该是+-1
基本周期是4,但它应该是8。
从高到低的切换应该在t = 2,而不是t = 1。
我建议您重新审视代码,将T0和T1定义为变量并将给定值赋给它们,然后根据需要使用x(t)的定义使用T0和T1仔细重写C(n)。更好的是,考虑将x(t)定义为问题中定义的表达式,然后在C(n)的表达式中使用x(t)。为此,看一下函数
医生rectangularPulse
12个评论
保罗
保罗 2022年5月4日
编辑:保罗 2022年5月6日
不客气我希望我没有浪费你们太多时间。
我会像这样写代码:
信谊n t
T0 = 8;%定义在问题中
w = 2*pi/T0;
T1 = 2;问题中定义的% %
%定义一个周期x(t)仅在-T0/2到T0/2之间有效
这种方法是可行的,但是使用分段映射直接解决问题。
%的声明
% x(t) = (2*rectangularPulse(-T1,T1,t) - 1)* rectangle (-T0/2,T0/2,t);
x (t) =分段(abs (t) < = T1, 1, 1) * rectangularPulse (-T0/2 T0/2 t);
%指数傅里叶级数
C (n) = (1 / T0) * int (x (t) * exp (1 * w * n * t), t, -T0/2, T0/2);
C0 = (1 / T0) * int (x (t) * exp (1 * w * 0 * t), t, -T0/2, T0/2);% C (0)
C(n) =分段(n == 0, C0, C(n));
C %谐波= (C0 C (1) (2) (3) C C C (4) (5) (6) (7) C C (8) (9) (10) C C C (11) (12) (13) (14) C C (15) (16) (17) C (18) C (19) (20) C (21) (22) C (23) (24) C (25) (26) C (27) (28) C (29) C (30) (31) C (32)];
% fprintf('前13个谐波:\n')
%谐波=谐波*2;%an = cn *2
% disp(谐波)
% f(t)用傅里叶级数表示
L = 40;%改变值相应的8,16 32
f(t) = symsum(C(n)*exp(1i*w*n*t),n,-L,L);
% fplot f(t)和x(t)的几个周期
数字
fplot (t、f (t)[-16] 16日)
持有
fplot(x(t) + x(t+T0) + x(t - T0),[-8 8])
包含(“t(微秒)”
ylabel (“f (t)”
标题(使用傅里叶级数系数的f(t)
网格

登录评论。

更多答案(0)

世界杯预选赛小组名单社区寻宝

在MATLAB Central中找到宝藏,并发现社区如何帮助您!世界杯预选赛小组名单

开始狩猎!

Baidu
map