نمونه هایی از بازسازی تقریبی فوریه برای یک پالس مستطیلی (کدهای رایگان متلب)

 

در زیر کدهای رایگان برای تقریب یک تابع مستطیلی با استفاده از تبدیل فوریه قرار داده شده است. 

در صورت سوال در مورد محصول می توانید از بخش تماس با ما (منوی بالا)، با شماره تلفن مورد نظر مکاتبه نمایید.  



%sig02e01.m : plot Fig. 2.2 (CTFS spectra of rectangular/triangular waves
clear, clf
global P D
N=8; k= -N:N; % the range of frequency indices
for i=1:2
if i==1 % true Fourier series coefficients for a rectangular wave
x = ’rectangular wave’; P=2; D=1; c true= D*sinc(k*D/P);
else % true Fourier series coefficients for a triangular wave
x = ’triangular wave’; P=2; D=1; c true= D*sinc(k*D/P).ˆ۲;
end
w0=2*pi/P; % fundamental frequency
tt=[-400:400]*P/200; % time interval
xt = feval(x,tt); % original signal
[c,kk] = CTFS exponential(x,P,N);
[c; c true] % to compare with true Fourier series coefficients
discrepancy between numeric and analytic=norm(c-c true)
jkw0t= j*kk.’*w0*tt;
xht = real(c/P*exp(jkw0t)); % Eq. (2.1.5a)
subplot(219+i*2), plot(tt,xt,’k-’, tt,xht,’b:’)
axis([tt(1) tt(end) -0.2 1.2]), title(’Periodic function x(t)’)
c mag = abs(c); c phase = angle(c);
subplot(220+i*2), stem(kk, c mag), title(’CTFS Spectrum |X(k)|’)
end


function y=rectangular wave(t)
global P D
tmp=min(abs(mod(t,P)),abs(mod(-t,P))); y= (tmp<=D/2);


function y=triangular wave(t)
global P D
tmp= min(abs(mod(t,P)),abs(mod(-t,P))); y=(tmp<=D).*(1-tmp/D);


function [c,kk]=CTFS exponential(x,P,N)
% Find the complex exponential Fourier coefficients c(k) for k=-N:N
% x: A periodic function with period P
% P: Period, N: Maximum frequency index to specify the frequency range
w0=2*pi/P; % the fundamental frequency [rad/s]
xexp jkw0t = [x ’(t).*exp(-j*k*w0*t)’];
xexp jkw0t= inline(xexpjkw0t ,’t’,’k’,’w0’);
kk=-N:N; tol=1e-6; % the frequency range tolerance on numerical error
for k=kk
c(k+N+1)= quadl(xexp jkw0t,-P/2,P/2,tol,[],k,w0); % Eq. (2.1.5b)
end


%sig02 01.m : plot Fig. 2.3 (CTFS reconstruction)
clear, clf
global P D
P=2; w0=2*pi/P; D=1; % period, fundamental frequency, and duration
tt=[-400:400]*P/400; % time interval of 4 periods
x = ’rectangular wave’;
xt = feval(x,tt); % original signal
plot(tt,xt,’k:’), hold on
Ns= [1 3 9 19];
for N=Ns
k= -N:N; jkw0t= j*k.’*w0*tt; % the set of Fourier reconstruction terms
c= D*sinc(k*D/P);
xht = real(c/P*exp(jkw0t)); % Eq. (2.1.9)
plot(tt,xht,’b’), hold on, pause
end
axis([tt(1) tt(end) -0.2 1.2])


projeha

 

برای عضویت در کانال روی عکس زیر کلیک کنید : (آخرین اخبار مرتبط با مهندسی و سایر تکنولوژی ها)

یا آدرس لینک زیر را در تلگرام خود جستجو نمایید:

m_b_coll@


مجموعه: پروژه هابرچسب ها , , , , , , , , , , , , ,

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *