生成信号:首先,你需要生成一个时域信号。 执行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. ...
grid ony1=fft(x,N);%对信号进行傅里叶变换yy1=abs(y1);%求得傅里叶变换后的振幅yy1=yy1*2/N;%幅值处理f=n*fs/N;figure(2)subplot(2,2,1),plot(f(1:N/2),yy1(1:N/2));xlabel('频率/HZ');ylabel('振幅');title('正弦周期信号的傅里叶变换');grid on;y2=fft(y,N);%对正弦周期...
(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)') ...
plot((1:N/2),abs(Y(1:N/2))); %由于傅里叶算法转换得到的是对称图,而常用的只需要一半就可以了。 xlabel('Hz'); ylabel('幅值'); title('幅频响应'); % % FFT结果的幅值和信号真实幅值对应的关系:除第一个点外, % FFT结果的其他点的幅值是真实信号幅值N/2倍,而第一个点是真实值的N倍。