hyqd.net
当前位置:首页 >> mAtlAB对信号做FFt >>

mAtlAB对信号做FFt

假设你的二位数组为x,设抽样频率为fs(hz),信号点数为n=length(x(:)'),f = fftshift(fft(x(:)'));w = linspace(-fs/2, fs/2, n);%频率坐标,单位hzplot(w,abs(f));title('信号的频谱');xlabel('频率(hz)');

怎么在matlab2014中导入示波器csv文件,然后fft分析的示波器可以用matlab编程的.其他示波器,把这个波形输入到示波器,然后进行fft的运算也是可以的.

读取波形:y = wavread(filename) 将信号幅度减半后, 存波形:wavwrite(y,filename) 把你的信号y,写为以filename命名的wav文件 建议你多多使用matlab的HELP命令,会收获很多的哦

fft是内建函数,不是matlab写的,看不到源代码的下面是我写的一个fft,可以用function xn=myfft(x)N=length(x);M=log2(N);xtmp=zeros(1,N);value=zeros(1,M);for i=0:N-1 repr=i; for t=1:1:M repr=bitshift(i,1-t); value(t)=bitand(repr,1); end pos=0; for k=1:

FFT是离散傅立叶变换的快速算法,可以将一个信号变换 到频域.有些信号在时域上是很难看出什么特征的,但是如 果变换到频域之后,就很容易看出特征了.这就是很多信号 分析采用FFT变换的原因.另外,FFT可以将一个信号的频谱 提取

基本正确吧,其实不用横坐标,直接就能得到傅里叶谱.采样频率直接决定最大频率,所以采样数不变时,改变采样频率肯定改变了频率的振幅.

%*************************************************************************%% FFT实践及频谱分析 %%*************************************************************************%%***************1.正弦波****************%fs=100;%设定采样频率N=128;n=0:N-1;t=n/fs;

代码:1 N=8; %原离散信号有8点 2 n=[0:1:N-1] %原信号是1行8列的矩阵 3 xn=0.5.^n; %构建原始信号,为指数信号 4 5 w=[-800:1:800]*4*pi/800; %频域共-800----+800 的长度(本应是无穷,高频分量很少,故省去) 6 X=xn*exp(-j*(n'*w)); %求dtft变换,采用原始定义的方法,对复指数分量求和而得 7 subplot(311) 8 stem(n,xn); 9 title('原始信号(指数信号)');10 subplot(312);11 plot(w/pi,abs(X));12 title('DTFT变换')

你在abs之后,没有求取采样时间,所以没法对应出频域的坐标!

做FFT的函数是fft,注意结果要取模(abs)以便于显示,再fftshift一下将0频移到中间.取最大值的函数是max.

jamiekid.net | ddng.net | so1008.com | dkxk.net | jinxiaoque.net | 网站首页 | 网站地图
All rights reserved Powered by www.hyqd.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com