Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
初级会员
注册日期: 2008-05-05
年龄: 38
帖子: 2
声望力: 0 ![]() |
![]()
下面是上数据通讯的时候老师给的代码,到现在还不怎么懂
![]() 周期信号的傅里叶级数 周期信号定义: ,k为整数,T为信号的周期 傅里叶级数展开: 其中,T为周期信号的最小周期, , 为傅里叶展开系数,它的物理意义为频率分量 的幅度和相位。 例子:设周期信号的一个周期波形为 ,该周期信号的傅里叶级数展开解析式为: 采用Matalab程序画出了取2N+1项近似式的波形(N=100) 程序实例:fb_jinshi.m 代码如下: %周期信号(方波)的展开 close all; close all; N=100;%取展开式的项数为2N+1项 T=1; fs=1/T; N_sample=128;%为了画出波形,设置每个周期的采样点数 dt=T/N_sample; t=0:dt:10*T-dt;%画出10个周期的信号 n=-N:N;%展开式的取值范围 Fn=sinc(n/2).*exp(-j*n*pi/2);%傅里叶级数展开的解析(求Fn) Fn(N+1)=0;%超出范围的取0 ft=zeros(1,length(t));%length()为获得序列长度,取全1序列 for m=-N:N ft=ft+Fn(m+N+1)*exp(j*2*pi*m*fs*t);%傅里叶级数展开 end plot(t,ft) 编写脚本文件:计算信号的频谱并与信号的真实频谱的抽样比较 程序实例:fb_spec.m(利用T2F.m函数调用) fb_spec.m代码: %方波的傅里叶变换 clear all; close all; T=1; N_sample=128;%设置每个周期的采样点数 dt=T/N_sample;%采样点的时间 t=0:dt:T-dt;%一个周期 st=[ones(1,N_sample/2),-ones(1,N_sample/2)];%方波一个周期 subplot(211);%绘制方波时域图 plot(t,st); axis([0 1 -2 2]);%坐标轴的取值范围 xlabel('t');ylabel('S(t)');%图标识 subplot(212);%绘制频谱图 [f,sf]=T2F(t,st);%傅里叶变换 plot(f,abs(sf));hold on;%绘制方波频谱 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-') T2F.m函数代码: function[f,sf]=T2F(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;%频率范围取值 sf=fft(st);%傅里叶变换 sf=T/N*fftshift(sf);%离散傅里叶变换 |
![]() |
![]() |
![]() |
#2 |
普通会员
注册日期: 2008-04-28
年龄: 35
帖子: 63
声望力: 19 ![]() |
![]()
挺难:redface:
|
![]() |
![]() |
![]() |
#3 |
初级会员
注册日期: 2008-08-04
年龄: 48
帖子: 5
声望力: 0 ![]() |
![]()
楼主不厚道啊!自己没有搞懂的东西,拿出来让大家研究、研究,为什么还要标价出售!
|
![]() |
![]() |