Advertisement

matlab仿真源代码,基于matlab的计算机仿真_源代码.doc

阅读量:

基于matlab的计算机仿真_源代码

例 21

%周期信号(方波)的展开,fb_jinshi.m

close all;

clear all;

N=100; %取展开式的项数为2N+1项

T=1;

fs=1/T;

N_sample=128; %为了画出波形,设置每个周期的采样点数

dt = T/N_sample;

t=0:dt:10*T-dt;

n=-N:N;

Fn = sinc(n/2).exp(-jn*pi/2);

Fn(N+1)=0;

ft = zeros(1,length(t));

for m=-N:N

ft = ft + Fn(m+N+1)exp(j2pimfst);

end

plot(t,ft)

例 24

利用FFT计算信号的频谱并与信号的真实频谱的抽样比较。

脚本文件T2F.m定义了函数T2F,计算信号的傅立叶变换。

function [f,sf]= T2F(t,st)

%This is a function using the FFT function to calculate a signal's Fourier

%Translation

%Input is the time and the signal vectors,the length of time must greater

%than 2

%Output is the frequency and the signal spectrum

dt = t(2)-t(1);

T=t(end);

df = 1/T;

N = length(st);

f=-N/2df:df:N/2df-df;

sf = fft(st);

sf = T/N*fftshift(sf);

脚本文件F2T.m定义了函数F2T,计算信号的反傅立叶变换。

function [t st]=F2T(f,sf)

%This function computes the time-domain signal by means of Inverse Fast Fourier Transform algorithm using the provided input argument.

%signal's spectrum

df = f(2)-f(1);

Fmx = ( f(end)-f(1) +df);

dt = 1/Fmx;

N = length(sf);

T = dt*N;

%t=-T/2:dt:T/2-dt;

t = 0:dt:T-dt;

sff = fftshift(sf);

st = Fmx*ifft(sff);

另写脚本文件fb_spec.m如下:

%方波的傅氏变换, fb_spec.m

clear all;close all;

T=1;

N_sample = 128;

dt=T/N_sample;

t=0:dt:T-dt;

st=[ones(1,N_sample/2), -ones(1,N_sample/2)]; %方波一个周期

subplot(211);

plot(t,st);

axis([0 1 -2 2]);

xlabel('t'); ylabel('s(t)');

subplot(212);

[f sf]=T2F(t,st); %方波频谱

plot(f,abs(sf)); hold on;

axis([-10 10 0 1]);

xlabel('f');ylabel('|S(f)|');

%根据傅氏变换计算得到的信号频谱相应位置的抽样值

sff= T^2jpif0.5.exp(-j2pifT).sinc(fT0.5).sinc(fT*0.5);

plot(f,abs(sff),'r-')

例 25

%信号的能量计算或功率计算,sig_pow.m

clear all;

close all;

dt = 0.01;

t = 0:dt:5;

s1 = exp(-5t).cos(20pit);

s2 = cos(20pit);

E1 = sum(s1.*s1)*dt; %s1(t)的信号能量

P2 = sum(s2.*s2)*dt/(length(t)*dt); %s2(t)的信号功率s

[f1 s1f]= T2F(t,s1);

[f2 s2f]= T2F(t,s2);

df = f1(2)-f1(1);

E1_f = sum(abs(s1f).^2)*df; %s1(t)的能量,用频域方式计算

df = f2(2)-f2(1);

T = t(end);

P2_f = sum(abs(s2f).^2)*df/T; %s2(t)的功率,用频域方式计算

figure(1)

subpl

全部评论 (0)

还没有任何评论哟~