clear all;t=0:0.1:50;yp=sin(2*pi*2*t);yq=sin(2*pi*2.0125*t);

clear all;
t=0:0.1:50;
yp=sin(2*pi*2*t);
yq=sin(2*pi*2.0125*t);
y=yp+yq;
Y1=fft(y,512);
Y2=fft(y,4096);
Y1=fftshift(Y1);
Y2=fftshift(Y2);
c1=[0:255]/51.2;
c2=[0:2047]/409;
subplot(2,1,1);plot(c1,abs(Y1(257:512)));
axis([1.2,2.2,-30,300]);
title('512点FFT的频谱');
grid on;
subplot(2,1,2);plot(c2,abs(Y2(2049:4096)));
axis([1.2,2.2,-30,300]);
title('4096点FFT的频谱');
grid on;
murongruo 1年前 已收到1个回答 举报

走出人生 幼苗

共回答了29个问题采纳率:86.2% 举报

只是个MATLAB的程序吧.
t=0:0.1:50;t取值 0-50 间隔是0.1
yp=sin(2*pi*2*t); 三角函数 SIN(2π2t)
yq=sin(2*pi*2.0125*t);同上
y=yp+yq; 相加 也就是在yp的图形上加上yq的图形合成
Y1=fft(y,512);用FFT函数进行频谱分析
Y2=fft(y,4096);同上
Y1=fftshift(Y1);让正半轴部分和负半轴部分的图像分别关于各自的中心对称,将fft计算输出的零频移到输出的中心位置
Y2=fftshift(Y2);同上
c1=[0:255]/51.2;C1分别取值除51.2
c2=[0:2047]/409;
subplot(2,1,1);plot(c1,abs(Y1(257:512)));画图函数subplot(2,1,1)表示画2个图 此为第一个
axis([1.2,2.2,-30,300]);横纵坐标起始和结束位置(此为纵坐标1.2-2.2,横坐标-30到300)
title('512点FFT的频谱');给上图命名
grid on;
subplot(2,1,2);plot(c2,abs(Y2(2049:4096)));同上
axis([1.2,2.2,-30,300]);
title('4096点FFT的频谱');
grid on;

1年前

9
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 16 q. 0.248 s. - webmaster@yulucn.com