⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 exn536.m

📁 MATLAB及在电子信息课程中的应用.感觉很有用,本来也不花钱,有想用的来拿吧
💻 M
字号:
%《MATLAB及其在理工课程中的应用指南》(十一五规划版)第五章例5-3-6程序
% 在[-pi,pi]区间内任意函数的傅立叶级数展开
% 西安电子科技大学出版社出版  陈怀琛编著 2007年7月
%
clear,clf,format compact,format short
x=linspace(-pi,pi,1001);dx=2*pi/1000;; 	% [-pi,pi]内长为1001的x数组步长
f=input('输入f=(长度为1001点的数组) '); % 用户输入长为1001的f数组
if isempty(f) error('未给出函数数组'), end
n=input('傅立叶系数的阶数n= ')          % 用户给出所需傅立叶系数的阶数
if isempty(n) n=9, end                  % 若不给出阶数,按9阶计算
a0=trapz(f)/pi*dx                       % 计算傅立叶系数a0
disp('      k        a(k)       b(k)')  % 给出表头
for k=1:n 
    a(k)=trapz(f.*cos(k*x))/pi*dx;      % 计算傅立叶系数a(k)
    b(k)=trapz(f.*sin(k*x))/pi*dx;      % 计算傅立叶系数b(k)
    disp([k,a(k),b(k)])                 % 显示各阶系数
end
pause,disp('求这些傅立叶系数构成的级数的波形')
pause,f1=a0/2*ones(size(x));            % 以a0为基础,构造傅立叶级数
for k=1:n
    f1=f1+a(k)*cos(k*x)+b(k)*sin(k*x);  % 累加各项傅立叶级数 
end
subplot(1,2,2),plot(x,f1,'linewidth',2),              % 画出傅立叶级数的波形
v=axis;grid on
subplot(1,2,1),plot(x,f,'linewidth',2)                % 画出原输入函数的波形
axis(v),grid on,shg
set(gcf,'color','w')

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -