📄 cftbyfft.m
字号:
function [AW,f]=cftbyfft(wt,t,flag)
%cftbyfft.m
if nargin==2;flag=1;end
N=length(t); %采样点数,应为2的幂次,以求快速
T=t(length(t))-t(1); %窗口长度
dt=T/N; %时间分辨率
W0=fft(wt); %FFT变换 <16>
W=dt*W0; %计算[0,fs)上的N点CFT值
df=1/T; %频率分辨率
n=0:1:(N-1); %
if flag==0
n=-N/2:(N/2-1);
W=fftshift(W); %产生满足式(4.13.3.1-6)的频谱
end
f=n*df; %频率分度向量
AW=abs(W); %幅频谱数据向量
if nargout==0
plot(f,AW);grid,xlabel('频率f');ylabel('|w(f)|')
end
%用cftbyfft函数计算矩形脉冲w(t)=1,0<t<1;w(t)=0,其他。
M=5; % <1>
tend=1; %
T=10; %窗口化长度应足够长,以减少窗口化引起的泄露“旁瓣”效应
N=2^M; %采样点数,去2的幂是为了使FFT运算较快
dt=T/N; %为了不引起混叠,采样频率fs=N/T大于两倍时间波形带宽
n=0:N-1; %采样序列
t=n*dt; %采样点时间序列
w=zeros(size(t,2),1);
Tow=find((tend-t)>0); %产生非零波形时段的相应序列
w(Tow,1)=ones(length(Tow),1); %在窗口时段内定义的完整波形
plot(t,w,'b','LineWidth',2.5),title('Time Waveform');xlabel('t --- >')
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -