请问你会用Matlab画出信号的频率图么,一个20Hz的一个120Hz的,老师让我用FFT函数画出这两个信号的频率图
发布网友
发布时间:2022-07-26 08:39
我来回答
共2个回答
热心网友
时间:2023-10-18 22:03
20Hz的:
function [M,m,df]=fftseq(m,tz,df)
fz=1/tz;
if nargin==2
n1=0;
else
n1=fz/df;
end
n2=length(m);
n=2^(max(nextpow2(n1),nextpow2(n2)));
m=[m,zeros(1,n-n2)];
M=fft(m,n);
df=fz/n;
--------------
clear all;clc;
tz=0.001;
fz=1/tz;
t0=0.2;
df=0.2;
f1=20;
t=0:tz:t0;
x=cos(2*pi*f1*t);
figure(1)
plot(t,x);
[X,x,df1]=ffts(x,tz,df);
figure(2)
f=[0:df1:df1*(length(x)-1)]-fz/2;
plot(f,abs(fftshift(X)));
热心网友
时间:2023-10-18 22:03
clear all
close all
clc
f1=20;
f2=120;
fs=max(f1,f2)*10;
T=1/fs;
t=0:T:2;
x1=sin(2*pi*f1*t);
x2=sin(2*pi*f2*t);
x=x1+x2;
X1=fft(x1);
X2=fft(x2);
X=fft(x);
Nf=ceil(length(t)/2);
f=(0:Nf-1)/Nf*fs/2;
figure
subplot(311)
plot(f,abs(X1(1:Nf)));
grid
subplot(312)
plot(f,abs(X2(1:Nf)));
grid
subplot(313)
plot(f,abs(X(1:Nf)));
grid