求matlab实现波形数据的“频域”—>“时域”的转换?
我要做数据处理,有一个韩宁5步的发射波和一个接收波,都是时域的,2500个数据,采样频率是1E-7,及时10000kHz,我用如下程序:function[output_a...
我要做数据处理,有一个韩宁5步的发射波和一个接收波,都是时域的,2500个数据,采样频率是1E-7,及时10000kHz,我用如下程序:
function [ output_args ] = dofft(a,n)
%S为单列长为2500的时域波形数据,采样频率为1E-7
%本程序对s进行频域转换并画图
s=a(:,n);%取第n列数据
y=fft(s,25000);%数据长度
pyy=y.*conj(y);%等价于pyy=abs(y).^2;
f=10000*(0:600)/25000;%采样频率为10000KHz
plot(f(1:600),pyy(1:600),'.-');
end
进行时域到频域的转换,现在要滤波之后逆向转回去,求高手帮帮忙。
笔误:“及时10000kHz”改为“即是10000kHz” 展开
function [ output_args ] = dofft(a,n)
%S为单列长为2500的时域波形数据,采样频率为1E-7
%本程序对s进行频域转换并画图
s=a(:,n);%取第n列数据
y=fft(s,25000);%数据长度
pyy=y.*conj(y);%等价于pyy=abs(y).^2;
f=10000*(0:600)/25000;%采样频率为10000KHz
plot(f(1:600),pyy(1:600),'.-');
end
进行时域到频域的转换,现在要滤波之后逆向转回去,求高手帮帮忙。
笔误:“及时10000kHz”改为“即是10000kHz” 展开
3个回答
展开全部
我不知道你的数据也不没办法帮你做,我给你个例子你自己看看就懂了
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;
展开全部
你好怎么前面加了个张老师呢????把第一个图的数据在matlab里的workplace搞出来然后matlab主框输入sptool然后在signals里面importworkplace里面的数据然后在signal里面选中刚才那个数据,然后再spectra的下面点create然后出来个框method
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你会用fft,那你就不能用ifft转回去?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询