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