实验五 基于Matlab的信号频谱分析(复杂)
更新时间:2023-11-02 05:46:01 阅读量: 综合文库 文档下载
- 实验五小推荐度:
- 相关推荐
班级: 学号: 姓名:
本次实验注意:《实验五MALTAB基础知识(简单)》
《实验五 基于Matlab的信号频谱分析(复杂)》 选作一个即可
实验五 基于Matlab的信号频谱分析
(一)
实验目的
直接序列扩频通信系统是目前应用最为广泛的系统。在扩频过程中,对于频谱的分析是重要研究内容,因此本实验目的在于熟悉信号的傅里叶变换,用傅里叶变换进行相应的频谱分析。 (二)
实验设备
计算机,Matlab软件 (三)
实验要求
本实验属于验证实验,请完成(四)实验内容的实验仿真,并将仿真结果截图至指定位置(注意:共3处)。
请在页眉处填写班级、学号、姓名,并将实验报告命名为“实验五_学号_姓名”,并通过FTP上传至指定文件夹。 (四)
实验内容
a)周期信号的傅里叶级数
(1)基本原理
若一周期信号f?t??f?t?kT?,其中k为整数,T成为信号的周期。若周期信号在一个周期内可积,则可通过傅立叶级数对该信号进行展开。其傅立叶展开式如(2-1)式所示:
?f?t??1T?n???Fnej2?nfst (1-1)
?j2?nfst其中,Fn??T/2?T/2f?t?edt,T为信号周期;fs?1/T为信号的基波;
Fn为傅立叶展开系数,其物理意义为频率分量nfs的幅度和相位。
式1-1表明:信号可以展开成一系列频率为fs?1/T的整数倍的正弦、余弦信号的加权叠加,其中相应频率分量的加权系数即为Fn,因此可以用周期信
班级: 学号: 姓名:
号的傅立叶展开来重构该周期信号,其逼近程度与展开式的项数有关。
(2)举例
设周期信号一个周期的波形为f?t????1,0?t?T/2??1,T/2?t?T,求该信号傅里叶级数
展开式,并用MATLAB画出傅里叶级数展开后的波形,并通过展开式项数的变化考察其对f?t?的逼近程度,考察其物理意义。 解:
Fn?1T?T0f?t?e?j2?nfstdt
?j2?nfstT1?2?j2?nfst???edt?0T??TT2e?dt???j?n?j?n?1?e?11?e????T??j2?nfs?j2?nfs?
?sinc?n/2?e?jn?2注:sinc?x??sin?x源代码: clear all;
?x?sa??x?
N=20;%取展开式的项数为2N+1项 %可以改为N=input('input N:') T=1;%周期为1 fs=1/T;
N_sample=128;%为了画波形,设置每个周期的采样点数 dt=1/ N_sample;%时间分辨率 t=0:dt:10*T-dt;%取10个周期 n=-N:N;
Fn=sinc(n/2).*exp(-j*n*pi/2);%求傅立叶系数
Fn(N+1)=0;%当n=0时,代入Fn得Fn=0,由于数组的序号是从1开始的,即n=-N
班级: 学号: 姓名:
%时对应Fn(1), n=0时对应Fn(n+1),即n=N时对应Fn(2N+1)
ft=zeros(1,length(t));%建立一个全零数组,其长度和原始信号长度相同,用 %来存放由傅里叶展开恢复的信号 for m=-N:N;%一共2N+1项累加。
ft=ft+Fn(m+N+1)*exp(j*2*pi*m*fs*t);%Fn是一个数组,而MATLAB中数组中 %元素的序号是从1开始的,故Fn序号是从1开始的,到2N+1结束,该语句中%体现为为Fn(m+N+1)而当n=0时,Fn=0,在数组中的位置为第N+1个元素,故 %令Fn(N+1)=0 end plot(t,ft) 仿真结果截图: N=100时 (图1)
N=20时 (图2)
班级: 学号: 姓名:
可以看出:用周期信号的傅立叶展开来重构该周期信号,其逼进程度与展开式的项数有关。
b)信号的傅里叶变换及其反变换 (1)基本原理
对于非周期信号s?t?,满足绝对可积的条件下,可利用傅里叶变换对其进行频域分析。
S?f?????s?t?e??j2?ftdt,s?t??????S?f?ej2?ftdf
其中,S?f?称为信号s?t?傅里叶变换,表示了该信号的频谱特性。
在数字信号处理中,需要利用离散傅立叶变换(DFT)计算信号的傅里叶变换,现在考察一下信号s?t?的傅里叶变换与其离散傅立叶变换之间的关系。
将信号s?t?按照时域均匀抽样定理进行等间隔抽样后,得到序列
?sn,n?0,1,?2,N,?1sn?,?s?n?t?,其中,?t为抽样间隔,则由数字信号处理
的知识可知,序列sn的离散傅立叶变换为
N?1Sk??sn?0ne?j2?Nnk?k?0,1,2,?,N?1?
其中,N为采样点数。
而s?t?在一段时间?0,T?内的傅立叶变换为
S?f??0??Ts?t?eN?1?j2?ftdt
?j2?fn?tlim?s?n?t?eTNN?1?t?j2?NnfTN??n?0令?t?T/N?limN??注意到s?n?t??sn?s?n?t?en?0
?limN??TNN?1?sn?0ne?j2?NnfT得到s?t?在一段时间?0,T?内的傅立叶变换是连续谱S?f?,而对s?t?进行离散傅
班级: 学号: 姓名:
立叶变换得到的是离散谱Sk,为了比较它们之间的关系,对S?f?也进行等间隔抽样,且抽样间隔为?f?1,即其频率分辨率,则在频率范围? ?0,?N?1??f??内,TS?f??S?k?f??limN??TNN?1?sn?0ne?j2?NnfT
??limN??TNTNN?1?sn?0ne?j2?Nnk
limN??Sk?k?0,1,2,?,N?1?可以看到,s?t?的离散傅里叶变换与s?t?在一段时间?0,T?内的傅立叶变换S?f?的抽样S?k?f?成正比。由于N点离散傅里叶变换具有Sk?Sk?m*N的性质,故信号s?t?连续谱的负半轴部分可以通过对Sk的平移得到。
需要注意的是信号s?t?的离散傅立叶变换只和信号s?t?在一段时间?0,T?内的傅立叶变换有关,而由公式1-1,s?t?的频谱是在时间???,??上得到的。所以上述计算所得到的并不是真正的信号频谱,而是信号加了一个时间窗后的频谱。当信号s?t?是随时间衰减的或是时限信号,只要时间窗足够长,可以通过这种方法获得信号的近似频谱。因此,用DFT计算的信号频谱精度依赖于信号、抽样的时间间隔和时间窗的大小。一般情况下,对于时限信号,在抽样时间间隔小,即抽样频率高的情况下能获得较为精确的信号频谱。
计算信号的离散傅里叶变换在数字信号处理中有一种高效算法,即快速傅里叶变换FFT,Matlab中也有专门的工具,下面简要介绍:
fft(x),x是离散信号,或对模拟信号取样后的离散值。 ifft(x), x是对信号进行快速傅里叶变换后的离散谱。 源代码一:
利用fft,fftshift定义函数T2F计算信号的傅立叶变换 function [f,sf]=T2F(t,st)%该子函数需要两个参数t和st。 %t—离散时间;st—离散信号 dt=t(2)-t(1) ;% 时间分辨率
班级: 学号: 姓名:
T=t(end) ;
df=1/T ;%频率分辨率
N=length(st) ;%离散傅立叶变换长度
f=-N/2*df :df :N/2*df-df ;%设定频谱区间,注意要关于原点对称,共有N个 %点,包括0点,故要减去一个df sf=fft(st);
sf=T/N*fftshift(sf);%信号的频谱与离散傅立叶变换之间的关系,?tshift(x)是将信号的频谱x进行移位,与原点对称。
源代码二:
利用ifft,fftshift定义函数T2F计算信号的傅立叶反变换 function [t,st]= F2T (f,sf) %f离散的频率;sf—信号的频谱 df=f(2)-f(1) ; %频率分辨率 Fmx=f(end)-f(1)+df ;%频率区间长度
dt=1/Fmx ; %已知频率区间长度时,求时间分辨率,由前面频率分辨率公式△f=df=1/T,
%T=dt*N,得到△f=df=1/ (dt*N),故dt=1/(df*N)=1/Fmx,即时间分辨率 N=length(sf) ; T=dt*N; %信号持续时间 t=0:dt:T-dt;
%离散傅立叶反变换,是T2F的逆过程
sff=fftshift(sf); %把对称的频谱进行平移,平移后同T2F中的sf
st=Fmx*ifft(sff); %由于T2F中求信号频谱在DFT基础上乘了一个因子T/N,反变换求信号时要乘以其倒数即N / T=1/dt,正好等于Fmx。 (2)举例
?1,0?t?T/2设非周期信号s?t?????1,T/2?t?T,求该信号的傅里叶变换,用MATLAB画出
傅里叶变换后的频谱,并对频谱进行反变换,画出s?t?的波形。
班级: 学号: 姓名:
解:
TS?f?e?j?fT???0e?j2?fT2e?j2?ftdt??TT2e?j2?ftdt
?1?j2?f1?e?j?fT??e?j?fT?j2?fe?j?fT?j2?f??j1?fT2?e???e?j2?fTj2?f?2?1?e?j?fT?2j2?f?1?fT?j?fT???j12?e2?e?????j2?f?e?j?fT?2?12?1?4sin??fT?sin???j?fT?2??2?ej2?f?1??fT?2Te2?j?fT?fT?????2j?f2T2?j?f2sinc2?fT/2?
主程序: clear all T=1;
N_sample=128;%为了画波形,设置每个周期的采样点数 dt=1/ N_sample;%时间分辨率 t=0:dt:T-dt;
st=[ones(1, N_sample/2), -ones(1, N_sample/2)];%依据T将信号离散化 subplot(311);plot(t,st);axis([0 1 -2 2]);xlabel('t');ylabel('s(t)'); subplot(312) ; [f,sf]=T2F(t,st) ;
plot(f,abs(sf)) ;hold on ;%画出sf的幅度谱,不含相位 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-')
[t,st]= F2T (f,sf);%进行离散傅立叶反变换,求原始信号 subplot(313) ; axis([0 1 -2 2]);
xlabel('t');ylabel('恢复的s(t)'); plot(t,st) ;hold on ; 仿真结果截图(图3):
正在阅读:
中国苹果及深加工行业调研与投资前景研究报告(2017版)(目录)04-11
尔雅超星语言与文化05-02
2012年江西省青少年游泳比赛秩序册04-27
户外活动策划书(通用3篇)03-26
数字式红转速表04-22
《自强不息,知恩图报》国旗下的讲话范文03-23
《航空工程材料》试题库03-05
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 频谱
- 信号
- 复杂
- 基于
- 实验
- 分析
- Matlab
- 基坑围护、土方开挖专项监理实施细则
- 部编人教版一年级下册《吃水不忘挖井人》
- 2019高考语文有关“亲子关系”的作文的写作指导和例文
- 过秦论练习
- 软件工程硕士答辩环节的相关规定
- 破冰游戏:个人篇彼此认识43个
- 重庆大学土木工程材料力学考研复习选择题
- 公共管理学题库1
- 2013年 初级师微生物检验技术 基础知识 真题
- 部编版语文八年级上册古诗文理解性默写(全册,带答案)
- 自学考试《国际物流》第4章练习题
- 数据结构排序程序实例
- 计算机网络实验报告1 - 图文
- 公路筑养路机械管理制度(交通部交公路字42号)
- 日照体育大事记
- 房地产与医院联动方案
- 163-2009 中国联通无线局域网接入点设备测试规范(集中管理型)v1.0
- 岩土编录(工程地质,地基勘察,岩心编录方法)
- 汉口银行(原武汉市商业银行)2003年工作会议讲话
- 如何培养和提高学生的审题能力