1. 1、本文档共57页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
dsp第6章b

6.2 用MATLAB实现连续系统的频域分析 6.2.1 周期信号频域分析的MATLAB实现   例 设周期性对称三角波幅度A=1,周期T=2,试用[WTBZ]MATLAB画出其频谱。 ;图 周期性对称三角波 ; 解 傅里叶系数 ;MATLAB程序如下:    %program10.4-1    N=8;    %计算n=-N到-1的傅里叶系数    n1=-N:-1;    c1=-4*j*sin(n1*pi/2)/pi^2./n1.^2;    %计算n=0时的傅里叶系数    c0=0;    %计算n=1~N的傅里叶系数    n2=1:N;    c2=-4*j*sin(n2*pi/2)/pi^2./n2.^2; ;   cn=[c1 c0 c2];    n=-N:N;    subplot(2,1,1);    stem (n, abs ( cn ),′.′);    ylabel (′Cn的幅度′);    subplot(2,1,2);    stem (n, angle (cn),′.′);    ylabel(′Cn的相位′);    xlabel(′\omega/\omega0′);   信号频谱图如图10.4-2所示,显然这是一个离散频谱。 ;图 程序运行结果 ;傅立叶分析 例6.7 方波分解为多次正弦波之和;第六章例6.7程序q607方波表为多阶正弦波之和 t = 0:.01:2*pi; % 设定一个时间数组,有101个点 y = sin(t);plot(t,y) ,pause % 频率为w=1(f=1/2π)的正弦基波 y = sin(t) + sin(3*t)/3; plot(t,y), pause % 叠加三次谐波 % 用1,3,5,7,9次谐波叠加 y = sin(t) + sin(3*t)/3 + sin(5*t)/5 + sin(7*t)/7 + sin(9*t)/9;plot(t,y);Date;% 为了绘制三维曲面,要把各次波形数据存为一个三维数组,因此必须重新定义y,重编程。 y = zeros(10,max(size(t))); x = zeros(size(t)); for k=1:2:19 x = x + sin(k*t)/k; y((k+1)/2,: ) = x; end % 将各波形迭合绘出 pause, figure(1),plot(t,y(1:9,: )),grid line([0,pi+0.5],[pi/4,pi/4])% 加上方波幅度线及标注 text(pi+0.5,pi/4,pi/4) % 将各半波形绘成三维网格图,看出增加谐波阶次对方波逼近程度的影响 halft=ceil(length(t)/2); pause, figure(2),mesh(t(1:halft),[1:10],y(:,1:halft)), pause %只用正半周波形(见下页的解析);温故而知新:;Date;Date;6.2.2 非周期信号频域分析的MATLAB实现   MATLAB提供了许多数值计算工具,可以用来进行信号的频谱分析。quadl是计算数值积分的函数,有下面两种调用方式:    y=quadl(′F′,a,b)    y=quadl(′F′,a,b,[],[],P) 其中,F是一个字符串,表示被积函数的文件名;a、b分别表示定积分的下限和上限;P表示被积函数中的一个参数。quad8的返回值是用自适应Simpson算法得出的积分值。 ; 例 试用数值积分法近似计算三角波信号f(t)=(1-|t|)g2(t)的频谱。   解 为了用quad(或者quadl,quad8)计算f(t)的频谱,定义如下MATLAB函数:    functiony=sf1(t,w);    y=(t=-1t=1).*(1-abs(t)).*exp(-j*w*t); 对不同的参数w,函数sf1将计算出傅里叶变换积分式中被积函数的值。将上述MATLAB函数用文件名sf1.m存入计算机磁盘。近似计算信号频谱的MATLAB程序为 ;   %program10.4-3    w=linspace(-6*pi,6*pi,512);    N=length(w);F=zeros(1,N);    for k=1:N    F(k)=quad(′sf1′,-1,1,[],[],w(k));    end    figure(1);    plot(w,real(F));    xlabel(′\omega′);    ylabel(′F(j\omega)′); ;程序运行

文档评论(0)

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

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

1亿VIP精品文档

相关文档