生成信号:首先,你需要生成一个时域信号。 执行FFT:使用fft函数对信号进行快速傅里叶变换,将其从时域转换到频域。 设置频率轴:正确设置频率轴,以便频谱图能够准确反映信号的频率成分。 绘制频谱图:使用plot函数绘制频谱图。 代码示例 以下是一个具体的代码示例,用于绘制一个余弦信号的频谱图: matlab % 生成信号 fs = 1000; % 采样频率
The examples provided in the documentation of following MATLAB Script function might use functions that are not available in MATLAB Script (e.g., plot, figure, subplot, wvtool, dfilt, fvtool, fdesig…
[freq,X_real,X_angle]=myfft(x,Ns,fs);%计算频率-幅值参数%myfft函数到第一个例子里找 X_real=2*X_real;%信号有效长度的补偿 figure(2) plot(freq,X_real);%绘制频率-幅值曲线 得到的新频率分辨率为0.5hz。 可以看到,最终两个信号被成功的区分了出来。 但是又发现在信号周围出现了很多规律的小鼓包,...
Y=fft(y,NFFT)/L; % 进行FFT变换,除以总的采样点数,方便观察实际值。 f = Fs/2*linspace(0,1,NFFT/2+1); %频率轴,这里只显示Fs/2部分,另一半是对称的。 plot(f,2*abs(Y(1:NFFT/2+1))) %绘制波形 title('幅频相应'); xlabel('频率'); ylabel('幅度'); 1. 2. 3. 4. 5. 6. 7. ...
plot(S);%显示原始信号 title('原始信号'); figure; Y= fft(S,N); %做FFT变换,结果为N点的复数,每一个点就对应着一个频率点 Ayy= (abs(Y)); %取模运算,对数值是求绝对值,对复数是求幅值。这里就是复数转幅度值 plot(Ayy(1:N)); %显示原始的FFT模值结果 ...
(2:end-1); % 交流部分模值乘以2 f = Fs*(0:(L/2))/L; plot(f,P1) title('Single-Sided Amplitude Spectrum of S(t)') xlabel('f (Hz)') ylabel('|P1(f)|') f1=Y(1:L/2+1); f1=atan2(imag(f1),real(f1))+pi/2; %需要将fft的结果加上pi/2才是真实的值,实验出来的,原理未明...
Y = fft(y,NFFT)/L; %进行fft变换(除以总采样点数,是为了后面精确看出原始信号幅值) f = Fs/2*linspace(0,1,NFFT/2+1);%频率轴(只画到Fs/2即可,由于y为实数,后面一半是对称的) % 画出频率幅度图形,可以看出50Hz幅值大概,120Hz幅值大概为1. plot(f,2*abs(Y(1:NFFT/2+1))) title('Single-Sid...
plot(f,A_adj) xlabel('频率(Hz)') ylabel('幅值(修正后)') title('FFT变换幅值图') gridon subplot(2,1,2) phase_angle=angle(Y);%angle函数的返回结果为弧度 phase_angle=rad2deg(phase_angle); plot(f,phase_angle) xlabel('频率(Hz)') ...
5.FFT函数的示例: 示例一:频谱分析 ```matlab Fs=1000;%采样率 t=0:1/Fs:1-1/Fs;%时间向量 x = sin(2*pi*50*t) + sin(2*pi*120*t); % 信号 X = fft(x); % 进行FFT f = Fs*(0:(length(x)/2))/length(x); % 频率向量 P = abs(X/length(x)); % 信号幅度 plot(f,P(1:...