例3-2 用振幅为0.8的方波进行傅里叶分析,并用傅里叶分析得到的系数求解当K为不同值时的合成图。

该博客通过MATLAB演示了如何进行傅里叶分析,特别是对方波进行分析,计算其傅里叶系数,并使用这些系数合成不同阶数的谐波信号,展示了吉伯斯现象。博客提供了完整的MATLAB代码示例。
%2017/8/23日  星期三
%工程北629
%功能:傅里叶分析——方波的合成——吉伯斯现象
%思想:由于f(x)是奇函数,所以系数a(k)=0,只有b(k)起作用

clear all
close all

%输入信号
N = 200;    %数据点数
dt = 4/N;   % 采样间隔0.02s    N*dt = 200*0.02 = 4秒
for n = 1:N  %得到方波    n = 1、2...198、199、200  n*dt = 0.02、0.04...3.96、3.98、4.00
    if(n*dt >= 2)
        x(n) = 0.8;
    else
        x(n) = -0.8;
    end
end

%信号处理
a = zeros(1,N);
b = zeros(1,N);
nn = floor(N/2) + 1;  % nn = 101
for k = 0:nn-1   % k = 0、1、2、3、4......98、99、100
    a(k+1) = 0;  %    a(1)、a(2)、a(3)、a(4)......a(99)、a(100)、a(101)
    b(k+1) = 0;  %    b(1)、b(2)、b(3)、b(4)......b(99)、b(100)、b(101)
    for ii = 0:N-1  %0、1、2、3、4......198、199、200
        a(k+1) = a(k+1) + 2/N*x(ii+1)*cos(2*pi*k*ii/N);  %求解傅里叶系数ak
        b(k+1) = b(k+1) + 2/N*x(ii+1)*sin(2*pi*k*ii/N);  %求解傅里叶系数bk
    end
    c(k+1) = sqrt(a(k+1).^2 + b(k+1).^2);                %ck = sqrt(a_k^2+b_k^2)
end

%输出信号
figure(1)   %打开第一个绘图窗口,绘制原始信号和分析系数
subplot(2,1,1),plot((1:N)*dt,x),grid on, hold on;
pl
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值