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

  1. 1、本文档共35页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于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(-j*n*pi/2); Fn(N+1)=0; ft = zeros(1,length(t)); for m=-N:N ft = ft + Fn(m+N+1)*exp(j*2*pi*m*fs*t); 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 signals 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/2*df:df:N/2*df-df; sf = fft(st); sf = T/N*fftshift(sf); 脚本文件F2T.m定义了函数F2T,计算信号的反傅立叶变换。 function [t st]=F2T(f,sf) %This function calculate the time signal using ifft function for the input %signals 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^2*j*pi*f*0.5.*exp(-j*2*pi*f*T).*sinc(f*T*0.5).*sinc(f*T*0.5); plot(f,abs(sff),r-) 例 25 %信号的能量计算或功率计算,sig_pow.m clear all; close all; dt = 0.01; t = 0:dt:5; s1 = exp(-5*t).*cos(20*pi*t); s2 = cos(20*pi*t); 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) subplot(211) plot

文档评论(0)

2017meng + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档