Matlab 周期方波信号傅里叶级数展开


方波信号为:

傅里叶级数展开为:

程序运行结果:

程序代码:

 1 clear
 2 
 3 x = -6:0.01:6;
 4 T = 4;
 5 
 6 f = x;
 7 for N = 1:length(f)
 8     temp = rem(abs(x(N)),T);
 9     if temp>1 && temp<3
10         f(N) = 0;
11     else
12         f(N) = 1;
13     end
14 end
15 
16 % f(x) = 1/2 + sum(g(k,x))   (k=1,2,3,4......)
17 % g(k,x) = sinc(k/2)*cos(k*pi/2*x)
18 % MATLAB build-in function: sinc(x) = sin(x*pi)/(x*pi)
19 
20 count = 9;
21 y = zeros(count, length(x));
22 
23 for N = 1:count
24     k = 2*N-1;
25     if N==1
26         y(N,:) = 0.5 + sinc(k/2)*cos(k*pi/2*x);
27     else
28         y(N,:) = y(N-1,:) + sinc(k/2)*cos(k*pi/2*x);
29     end    
30 end
31 
32 row = ceil(sqrt(count));
33 colomn = ceil(count/row);
34 for N=1:count
35     subplot(row,colomn,N);
36     plot(x,f,'k');
37     hold on
38     h = plot(x,y(N,:),'r');
39     title(strcat(num2str(2*N-1),' harmonic'));
40 end

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM