Matlab方波频谱分析课程设计报告--

  • 格式:doc
  • 大小:74.50 KB
  • 文档页数:6

下载文档原格式

  / 6
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

通信系统建模与仿真课程设计

2010 级 通信工程 专业 1013072 班级

题 目 基于Matlab/Simulink 的信号频谱的估计

姓 名 学号

指导教师 胡娟,王丹,王娜,闫利超

2013年6月14日

1 任务书

(1) 用Matlab 编程方式产生一个100Hz 的方波,画出其波形。并用fft 指令

计算其频谱,做出幅度谱和相位谱,与理论结果进行对比。

(2) 用Simulink 方式重做上题,并通过统计模块在时域和频域同时计算信号

的功率,看两者计算结果是否一致,验证帕萨瓦尔定理。

2 理论分析

方波的一个周期可用

依据周期信号傅里叶级数系数的定义,有

因此,方波信号的)(t f T 的傅里叶级数展开式为

根据周期信号傅里叶级数同傅里叶变换之间的关系:

可知,方波信号的傅里叶变换是

显然,当n 为偶数时,01cos =-πn ,因此方波信号中只存在奇次谐波,其功率谱为

∑∞

-∞=Ω--=n n n n A j H )()1(cos 4222

2ωδπω)( 化为以频率为自变量表示的功率密度谱,得到

可见,方波在几次谐波处存在冲激谱线,其功率谱谱线冲激强度为数列2

n C ,n 取奇数,

C 为常数。

离散时间信号的帕斯瓦尔定理:对于N 点的离散序列及其离散傅里叶变换)()(k F n f ↔,其时域能量等于频域能量,即

时域和频域的平均功率关系为 2102210av )

(1)(1

∑∑-=-=====N k N n k F N n f N NT E L E P 其中,T 为采样时间间隔;N

为离散时间序列的点数;NT L =为离散时间序列的时间长度。

3 Matlab 代码详述

clear;

clc;

fs=1e6;

t1=0:1/fs:0.1; %计算时间范围

ft=square(2*pi*100*t1,50);

subplot(3,1,1);plot(t1,ft); %时域波形

axis([0 0.1 -1.2 1.2]);

T1=0.01; %信号周期

w1=2*pi/T1; %信号角频率

n=-59:2:59; %奇次谐波数

W=w1.*n; %数字角频率

F_w=-4*j./n; %频谱理论结果

subplot(3,1,2);

stem(W,abs(F_w)); %频域幅度谱

hold on ;

w_m=3e4; %截断频率

T=pi/w_m; %采样间隔

L=5.9; t=0:T:L; %时域截断

x_t=square(2*pi*100*t,50); %信号序列

N=length(x_t); %序列长度(点数)

X_k=fft(x_t); %FFT 计算

w0=2*pi/(N*T); %离散频率间隔

kw=2*pi/(N*T).*[0:N-1]; %离散频率样点

X_kw=T.*X_k; %乘以T 得到连续傅里叶变换频谱的样值

plot(kw-w_m,abs(fftshift(X_kw)),'.','MarkerSize',10); %做出数值计算的幅度谱点

subplot(3,1,3);

stem(W,angle(F_w)); %频域相位谱

hold on ;

plot(kw-w_m,angle(fftshift(X_kw))); %做出数值计算的相位谱点 4 SIMULINK 各模块说明

由于Simulink 中FFT 模块只接受2的整数幂次点数数据,故设计变换数据采样率为2048样值/秒。FFT 变换数据长度到2048,对应时间长度为1秒。因此,频率分辨率为1Hz 。由式 2

222)()]([|k F T n f DFT T f F s s NT k

f s ∙=∙==)( 确定功率谱估计值。其中2048/1=s T 秒,N=2048。依据教材式(3.34)确定频域、时域平均功

率,即 2102210av )

(1)(1∑∑-=-===N k N n k F N k f N P

图1为测试模型。其中,仿真步长为固定的1/2048秒。各个参数设置如下:Zero-Order Hold采样得到离散时间信号以便进行离散傅里叶变换,设置采样时间间隔也为1/2048秒。Buffer模块设置缓存长度为2048,刚好能缓存1秒的数据。采用FFT模块进行快速傅里叶变换,变换点数取决于数据帧长度。以Abs模块、乘法器模块、Mean平均模块以及增益模块等实现对频域、时域平均功率的计算。Display 模块显示时域功率计算结果,Display1模块显示时域功率计算结果,显然两者应当相同,为1W(幅度为1V的方波理论计算功率为1W)。用Vector Scope观察功率谱,同时用示波器观测时域波形。模型图如下所示:

5 仿真结果分析

编程输出结果如图1所示,时域仿真时间0.1s,但是该信号时域是无限长的,因此其频谱也是无限宽的。经理论公式计算画图显示后发现,当频率大于30000Hz 后,幅度谱值接近于零。因此做FFT变换时选择频域截断区为30000Hz。

图1 编程仿真结果

图2 Simulink仿真输出的方波时域波形

图3 Simulink仿真输出的幅度谱

图4 Simulink仿真输出的功率谱

6 遇到的问题及解决的方法

在产生方波公式时,一直无从下手。数学表达式很简单,可是无法在matlab脚本文件编程准确实现。总有不尽人意的地方。后来改用matlab程序库函数square 函数输出方波,以前没用过这个函数,又查了查这个函数的用法,以及它的内容与数学公式的差别,收获挺大的。在计算连续周期函数方波的频谱时,遇到了一系列的问题。由于方波是由函数输出的,所以在理论计算时显然用不到。所以改用方波的数学表达式来计算频谱。其中应用到了《信号与系统(上)》相关章节,由于这门课是去年修完的,记忆不太完整,所以又翻了翻这本书,查找了相关知识,从而正确计算出了计算方波频谱的数学表达式。在写程序时发现数学表达式和程序的表达还是有差别的,又认真学习了程序的表达,终于写出相对简单容易理解的理论编程程序。对于理论与实践收获还是相当大的。

7 结束语

结本文介绍了基于MATLAB/Simulink的信号频谱的估计和使用MATLAB/ .M文件、Simulink对其进行仿真的基本方法。通过在MATLAB 中编程能够实现对信号进行fft 变换并计算其频谱的分析, 而在MATLAB 的Simulink 环境中可以通过构建可视化系统进行动态的仿真, 得到较为直观的实验结果, 使得对调制系统的分析变得十分便捷,在原有的基础上,更加深了对信号进行fft变换并计算其频谱的分析理解。