云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 信号与系统 matlab 研讨

信号与系统 matlab 研讨

  • 62 次阅读
  • 3 次下载
  • 2025/5/4 11:25:25

连续时间信号Fourier变换的数值近似计算

连续时间信号频谱计算是信号和系统频域分析的基础。由于实际信号大多无简单的解析

表达式,所以必须用近似的方法进行计算。本题的目的对频谱计算中误差的原因进行初步的分析,希望能在计算实际信号频谱的近似计算中起一定的指导作用。

若信号x(t)的非零值在t?0,在可用我们提供的函数ctft近似计算其频谱。函数ctft的

[X,f]=ctft(x,Fs,N)

其中调用变量x 存放信号x(t)的抽样值,Fs表示对连续信号x(t)的抽样频率(Hz),N表示用DFT进行近似计算时DFT 的点数,为提高算法的计算效率,N最好取2的整数次幂,如512, 1024等。返回变量X是计算出的信号频谱,f(单位Hz)表示对应的频率点。返回变量X一般是复数,可用函数abs(X)计算出幅度谱,函数angle(X) 计算出相位谱。 (1)取Fs=50Hz, N=1024 近似计算信号x(t)?e?tu(t)的频谱,并和理论值进行比较; (2)若将信号的时域有效宽度Δt定义为

调用形式为

0.1xmax(t)?x(Δt)

试分析时域有效宽度Δt对近似计算的影响。给出一个由信号时域有效宽度Δt估计近似计算中所需信号长度Td?NFs的经验公式。 (3)定义信号频域有效宽度Δf为

0.1Xmax(f)?X(Δf)

给出一个由信号频域有效宽度Δf估计近似计算中所需抽样频率Fs的经验公式。 (1)经计算其理论频谱为x(jw)?1

1?j?定义函数: function [X,f]=ctft(x,Fs,N)

X=fftshift(fft(x,N))/Fs; f=-Fs/2+(0:N-1)*Fs/N; Fs=50; N=1024; t=0:1/Fs:5;

x=exp(-t).*(t>0); [X,f]=ctft(x,Fs,N); figure(1);

subplot(3,1,1); plot(t,x); grid;

xlabel('t ');ylabel('f(t)'); title('f(t)'); subplot(3,1,2); plot(f,abs(X)); grid;

xlabel('f ');ylabel('abs(F(jW))'); title('幅度频谱'); subplot(3,1,3); plot(f,angle(X)); grid;

xlabel('f ');ylabel('angle(F(jW))'); title('相位频谱'); figure(2);

P=1./(1+j*f*2*pi); subplot(2,1,1); plot(f,abs(P)); xlabel('f ');

title('幅值频谱理论值'); grid;

subplot(2,1,2); plot(f,angle(P)); xlabel('f ');

title('相位频谱理论值'); grid; figure(3);

subplot(2,1,1);

plot(f,abs(P)-abs(X)); xlabel('f (Hz)'); title('幅值误差'); grid;

subplot(2,1,2);

plot(f,angle(P)-angle(X)); xlabel('f ');

title('相位误差'); grid; (2)

0.1xmax(t)?x(Δt)

对于第一问的函数,最大值为1,经计算有效带宽在(0,2.3025) 对应于N=115 Fs=50; N=1024 t=0:1/Fs:5

x=exp(-t).*(t>0); [X,f]=ctft(x,Fs,N);

P=1./(1+j*f*2*pi) subplot(4,1,1);

plot(f,abs(P)-abs(X)); xlabel('f ');

title('幅值误差'); grid clear Fs=50; N=116 t=0:1/Fs:5

x=exp(-t).*(t>0); [X,f]=ctft(x,Fs,N); P=1./(1+j*f*2*pi) subplot(4,1,2);

plot(f,abs(P)-abs(X)); xlabel('f '); title('N'); grid clear Fs=50; N=174 t=0:1/Fs:5

x=exp(-t).*(t>0); [X,f]=ctft(x,Fs,N); P=1./(1+j*f*2*pi) subplot(4,1,3);

plot(f,abs(P)-abs(X)); xlabel('f '); title('1.5N'); grid clear Fs=50; N=230 t=0:1/Fs:5

x=exp(-t).*(t>0); [X,f]=ctft(x,Fs,N); P=1./(1+j*f*2*pi) subplot(4,1,4);

plot(f,abs(P)-abs(X)); xlabel('f '); title('2N'); grid

结果分析:由(1)得,抽样后计算后的频谱最大误差在0.02左右,取一倍的N进行抽样时,其最大误差在0.1左右,误差较大,取1.5N进行抽样后,最大误差接近0.05,取两倍N进

行抽样后,发现最大误差于实际接近。可见,以两倍的N抽样比较合适。对应的信号长度为Td?2△t

(3)经计算△f??1.6 Fs=50; N=1024 t=0:1/Fs:5

x=exp(-t).*(t>0); [X,f]=ctft(x,Fs,N); P=1./(1+j*f*2*pi) subplot(4,1,1);

plot(f,abs(P)-abs(X)); xlabel('f ');

title('幅值误差'); grid clear Fs=150; N=1024 t=0:1/Fs:5

x=exp(-t).*(t>0); [X,f]=ctft(x,Fs,N); P=1./(1+j*f*2*pi) subplot(4,1,2);

plot(f,abs(P)-abs(X)); xlabel('f '); title('Fs=150'); grid clear Fs=200; N=1024 t=0:1/Fs:5

x=exp(-t).*(t>0); [X,f]=ctft(x,Fs,N); P=1./(1+j*f*2*pi) subplot(4,1,3);

plot(f,abs(P)-abs(X)); xlabel('f '); title('Fs=200'); grid clear Fs=250 N=1024 t=0:1/Fs:5

搜索更多关于: 信号与系统 matlab 研讨 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

连续时间信号Fourier变换的数值近似计算 连续时间信号频谱计算是信号和系统频域分析的基础。由于实际信号大多无简单的解析表达式,所以必须用近似的方法进行计算。本题的目的对频谱计算中误差的原因进行初步的分析,希望能在计算实际信号频谱的近似计算中起一定的指导作用。 若信号x(t)的非零值在t?0,在可用我们提供的函数ctft近似计算其频谱。函数ctft的[X,f]=ctft(x,Fs,N) 其中调用变量x 存放信号x(t)的抽样值,Fs表示对连续信号x(t)的抽样频率(Hz),N表示用DFT进行近似计算时DFT 的点数,为提高算法的计算效率,N最好取2的整数次幂,如512, 1024等。返回变量X是计算出的信号频谱,f(单位Hz)表示对应的频率点。返回变量X一般是复数,可用函数abs(X)计算出幅度谱,函数ang

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com