实验六 用
MATLAB分析离散信号的频谱与信号的采样
一、 实验目的
1、了解离散时间信号频谱的分析方法; 2、了解相关函数的调用格式及作用;
3、掌握用MATLAB分析信号的采样过程与原理。
二、涉及的MATLAB函数
1、fft函数:可用来计算离散周期信号频谱 X[m] = fft(x)
x:是离散周期信号0~N-1 一个周期的序列值 X[m] 是离散周期信号的频谱
函数fft还可用来计算离散非周期信号频谱、连续周期信号和连续非周期信号的频谱。
2、rectpuls函数:表示矩形脉冲信号 y=rectpuls(t,width)
产生宽度为0.4,幅度为1,以零点对称的矩形波P1(t)
三、实验内容
1、用MATLAB实现下图所示周期矩形序列的频谱
x[k]M0Mksin[x[k]的频谱函数为:X[m]=
mN(2M1)]sin(mN)
精品
.
%Program 6_1计算离散周期矩形序列的频谱
N=32; M=4; %定义周期矩形序列的参数 x=[ones(1,M+1),zeros(1,N-2*M-1),ones(1,M)]; %产生周期矩形序列 X=fft(x); %计算DFS系数 m=0:N-1;
stem(m,real(X)); %画出频谱X的实部 title('X[m]的实部');xlabel('m') figure;
stem(m,imag(X)); %画出频谱X的虚部 title('X[m]的虚部');xlabel('m'); xr=ifft(X); figure;
stem(m,real(xr)); xlabel('k');
title('重建的x[k]'); 仿真的结果如下:
精品
.
精品
.
2、用MATLAB实现脉冲采样抽样函数的过程。
f(t)Sa(t)p(t),要求:求出抽样函数
p(t)Sa(t)、矩形脉冲
波P(t)与抽样结果f(t)的波形。其中p(t)的波形如下:
1…………t
程序如下:
-1.4-1-0.8-0.4-0.200.20.40.811.4
t=-3*pi:0.01:3*pi; % 定义时间范围向量 s=sinc(t/pi); % 计算Sa(t)函数 subplot(3,1,1),plot(t,s); % 绘制Sa(t)的波形 title('抽样函数Sa(t)');
p=zeros(1,length(t)); % 预定义p(t)的初始值为0 for i=16:-1:-16
p=p+rectpuls(t+0.6*i,0.4); % 利用矩形脉冲函数rectpuls的平移来产
生宽度为0.4,幅度为1的矩形波p(t)
end
subplot(3,1,2),stairs(t,p); % 用阶梯图形表示矩形脉冲 title('矩形脉冲'); axis([-10 10 0 1.2]); f=s.*p;
subplot(3,1,3),plot(t,f); % 绘制f(t)=Sa(t)*p(t)的波形 xlabel('t');
ylabel('Sa(t)*p(t)'); 仿真结果如下:
精品
.
3、用MATLAB分析如图所示三角波信号的采样过程。
f(t)c4T(t)f(t)1……t低通y1(t)y(t)
T(t)……t-0.500.5-Ts0Ts=0.2sTsf(t)12|t|精品
.
要求:
(1)、 求f(t)的频谱图F() (2)、求y1(t)的频谱图Y1() (3)、求y(t)的频谱图Y()
14(1cos())122F()Sa() 224Matlab程序如下:
syms t w f; % 定义符号变量 f=(1-2*abs(t))*exp(-j*w*t); % 计算被积函数 F=int(f,t,-1/2,1/2); % 计算傅立叶系数F(w) F=simple(F);F % 化简
subplot(3,1,1), % 绘制三角波的幅频特性曲线F(w)
low=-26*pi;high=-low; % 设置w的上界和下界 ezplot(abs(F),[low:0.01:high]); axis([low high -0.1 0.5]); xlabel(''); title('三角波的频谱');
subplot(3,1,2), % 绘制经过截止频率为4*pi低通滤波器后的频谱Y1(w)
ezplot(abs(F),[-4*pi:0.01:4*pi]); axis([low high -0.1 0.5]); xlabel('');
title('低通滤波后的频谱');% 采样信号的频谱是原信号频谱的周期延拓,延拓
周期为(2*pi)/Ts
% 利用频移特性F[f(t)*exp(-j*w0*t)]=F(w+w0)来实
现
subplot(3,1,3); % 绘制采样后的频谱Y(w)
精品
.
Ts=0.2; % 采样信号的周期
精品
.
w0=(2*pi)/Ts; % 延拓周期10*pi for k=-2:2
ft=f*exp(-j*w0*k*t); FT=int(ft,t,-1/2,1/2);
ezplot((1/Ts)*abs(FT),[(-4*pi-k*w0):0.01:(4*pi-k*w0)]); hold on end
axis([low high -0.1 2.5]); xlabel(''); title('采样后的频谱');
如有侵权请联系告知删除,感谢你们的配合!
精品
因篇幅问题不能全部显示,请点此查看更多更全内容