信号的Fouirer分解与合成MATLAB实现

本文介绍如何使用MATLAB进行Fourier分析,通过一个振幅为0.8的方波示例,展示如何计算Fourier系数并根据系数合成信号。程序包括绘制原始信号、Fourier变换及合成信号的步骤。输入谐波最大阶数可以观察到,随着k值增大,合成信号更接近原始方波。
摘要由CSDN通过智能技术生成

用振幅为0.8的方波进行Fourier分析,并用分析得到的系数求解当k取不同值时的合成信号

程序如下;

clear all;
close all;%关闭所有打开的所有图形窗口
N=200;dt=4/N;%数据点数和采样间隔
for n=1:N%得到方波信号
    if(n*dt>=2)
        x(n)=0.8;
    else
        x(n)=-0.8;
    end
end
figure(1) %打开第一个图形窗口,绘制原始信号及其Fourier分析函数
subplot(211),plot((1:N)*dt,x),hold on;
plot((1:N)*dt,zeros(1,N),'k'),xlabel('时间/s')
title('原始信号');
a=zeros(1,N);b=zeros(1,N);
nn=floor(N/2)+1;
for k=0:nn-1
    a(k+1)=0;
    b(k+1)=0;
    for ii=0:N-1
        a(k+1)=a(k+1)+2/N*x(ii+1)*cos(2*pi*k*ii/N);%求解Fourier系数
        b(k+1)=b(k+1)+2/N*x(ii+1)*sin(2*pi*k*ii/N);
    end
    c(k+1)=sqrt(a(k+1).^2+b(k+1).^2);
end
subplot(212),plot((0:nn-1)/(N*dt),c);title('Fourier变换')
xlab

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值