matlab时域转频域 20
没学过信号,没学过matlab,纯属菜鸟,时域信号转成频域信号的matlab程序大神发一下呗。时域信号,xls格式的,第一列时间,第二列电压数字。...
没学过信号,没学过matlab,纯属菜鸟,时域信号转成频域信号的matlab程序大神发一下呗。时域信号,xls格式的,第一列时间,第二列电压数字。
展开
2个回答
展开全部
我不知道你的数据也不没办法帮你做,我给你个例子你自己看看就懂了
clear all
clc
fs=100;%设定采样频率
N=128; n=0:N-1; t=n/fs;
f0=10;%设定正弦信号频率
%生成正弦信号
x=sin(2*pi*f0*t);
figure(1); subplot(311); plot(t,x);%作正弦信号的时域波形
xlabel('t'); ylabel('y'); title('正弦信号y=2*pi*10t时域波形'); grid;
%进行FFT变换并做频谱图
y=fft(x,N);%进行fft变换
mag=abs(y);%求幅值
f=(0:length(y)-1)'*fs/length(y);%进行对应的频率转换
figure(1); subplot(312); plot(f,mag);%做频谱图
axis([0,100,0,80]); xlabel('频率(Hz)'); ylabel('幅值'); title('正弦信号y=2*pi*10t幅频谱图N=128'); grid;
%用IFFT恢复原始信号
xifft=ifft(y); magx=real(xifft); ti=[0:length(xifft)-1]/fs;
figure(1); subplot(313); plot(ti,magx);
xlabel('t'); ylabel('y'); title('通过IFFT转换的正弦信号波形'); grid;
希望能解决您的问题。
clear all
clc
fs=100;%设定采样频率
N=128; n=0:N-1; t=n/fs;
f0=10;%设定正弦信号频率
%生成正弦信号
x=sin(2*pi*f0*t);
figure(1); subplot(311); plot(t,x);%作正弦信号的时域波形
xlabel('t'); ylabel('y'); title('正弦信号y=2*pi*10t时域波形'); grid;
%进行FFT变换并做频谱图
y=fft(x,N);%进行fft变换
mag=abs(y);%求幅值
f=(0:length(y)-1)'*fs/length(y);%进行对应的频率转换
figure(1); subplot(312); plot(f,mag);%做频谱图
axis([0,100,0,80]); xlabel('频率(Hz)'); ylabel('幅值'); title('正弦信号y=2*pi*10t幅频谱图N=128'); grid;
%用IFFT恢复原始信号
xifft=ifft(y); magx=real(xifft); ti=[0:length(xifft)-1]/fs;
figure(1); subplot(313); plot(ti,magx);
xlabel('t'); ylabel('y'); title('通过IFFT转换的正弦信号波形'); grid;
希望能解决您的问题。
追问
能不从网上copy吗?我自己也可以查到,就不用再这提问了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询