MATLAB中的FFT的采样频率和采样点怎样确定

MATLAB中的FFT的采样频率和采样点怎样确定,第1张

一调用方法

X=FFT(x);

X=FFT(x,N);

x=IFFT(X);

x=IFFT(X,N)

用MATLAB进行谱分析时注意:

(1)函数FFT返回值的数据结构具有对称性。

例:

N=8;

n=0:N-1;

xn=[4 3 2 6 7 8 9 0];

Xk=fft(xn)

Xk =

390000 -107782 + 62929i 0 - 50000i 47782 - 77071i 50000 47782 + 77071i 0 + 50000i -107782 - 62929i

Xk与xn的维数相同,共有8个元素。Xk的第一个数对应于直流分量,即频率值为0。

(2)做FFT分析时,幅值大小与FFT选择的点数有关,但不影响分析结果。在IFFT时已经做了处理。要得到真实的振幅值的大小,只要将得到的变换后结果乘以2除以N即可。

二FFT应用举例

例1:x=05sin(2pi15t)+2sin(2pi40t)。采样频率fs=100Hz,分别绘制N=128、1024点幅频图。

clf;

fs=100;N=128; %采样频率和数据点数

n=0:N-1;t=n/fs; %时间序列

x=05sin(2pi15t)+2sin(2pi40t); %信号

y=fft(x,N); %对信号进行快速Fourier变换

mag=abs(y); %求得Fourier变换后的振幅

f=nfs/N; %频率序列

subplot(2,2,1),plot(f,mag); %绘出随频率变化的振幅

xlabel('频率/Hz');

ylabel('振幅');title('N=128');grid on;

subplot(2,2,2),plot(f(1:N/2),mag(1:N/2)); %绘出Nyquist频率之前随频率变化的振幅

xlabel('频率/Hz');

ylabel('振幅');title('N=128');grid on;

%对信号采样数据为1024点的处理

fs=100;N=1024;n=0:N-1;t=n/fs;

x=05sin(2pi15t)+2sin(2pi40t); %信号

y=fft(x,N); %对信号进行快速Fourier变换

mag=abs(y); %求取Fourier变换的振幅

f=nfs/N;

subplot(2,2,3),plot(f,mag); %绘出随频率变化的振幅

xlabel('频率/Hz');

ylabel('振幅');title('N=1024');grid on;

subplot(2,2,4)

plot(f(1:N/2),mag(1:N/2)); %绘出Nyquist频率之前随频率变化的振幅

xlabel('频率/Hz');

ylabel('振幅');title('N=1024');grid on;

输入一下信号可以实现生成正弦信号,并对其采样和得到采样值。

f=100;%信号频率Hz

fs=1000;%采样频率Hz

N=20;%采样点数

t=(0:N-1)/fs;%采样时间s

x=sin(2pift);%信号采样值

plot(t,x,'')

MATLAB简介:

MATLAB 是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。

MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。

MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。

MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。

MATLAB产品族可以用来进行以下各种工作:

●数值分析

●数值和符号计算

●工程与科学绘图

●控制系统的设计与仿真

●数字图像处理技术

●数字信号处理技术

●通讯系统设计与仿真

●财务与金融工程

●管理与调度优化计算(运筹学)

MATLAB 的应用范围非常广,包括信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析以及计算生物学等众多应用领域。附加的工具箱(单独提供的专用MATLAB函数集)扩展了MATLAB 环境,以解决这些应用领域内特定类型的问题。

在matlab中实现函数抽样的方法:

dyaddown。功能:对时间序列进行二元采样,每隔一个元素提取一个元素,得到一个降采样时间序列。

格式:y = dyaddown(x, EVENODD)。当EVENODD=0时,从x中第二个元素开始采样(偶采样);当EVENODD=1时,从x中第一个元素开始采样(奇采样)。 2y = dyaddown(x)EVENODD缺省,按EVENODD=0。

扩展资料:

matlab的相关要求规定:

1、MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。

2、MATLAB有高效的数值计算及符号计算功能,能使用户从繁杂的数学运算分析中解脱出来;MATLAB具有完备的图形处理功能,实现计算结果和编程的可视化。

3、MATLAB由一系列工具组成。这些工具方便用户使用MATLAB的函数和文件,其中许多工具采用的是图形用户界面。包括MATLAB桌面和命令窗口、历史命令窗口、编辑器和调试器、路径搜索和用于用户浏览帮助、工作空间、文件的浏览器。

参考资料来源:百度百科-matlab

看您的采样周期是1/5,直接采样就好了(不要纠结于冲击函数的数学表达在matlab里怎么对应,这是硬要用连续函数表示离散信号的结果,matlab里只能表示离散信号,所以直接忽略之即可)

t = [-10:1/5:10];

k = 2;

x = exp(1ipikt^2);

得到x是一个向量,是t中各个采样时刻对应的采样值。

31: Signal_1m

%matlab验证采样定理

%该程序用于画出原信号的图形以及其DFT图形

clear;

t = -01:0001:01;%该参数用于画原信号图形

k = 0:200;%时域取样

n = -999:0;%频域取样

f = sin(6pit);%原函数, 由t的取值可得f有201个值

s = exp(-j2pi/length(k));

skn = s^(k'n);%代公式

F = fskn;%对原函数进行傅里叶变换,

%此处f是1201的矩阵,则skn必须满足201X的矩阵

%得到的f是1X的矩阵

subplot(2,1,1)

plot(t, f);%画出采原函数序列图

title('原信号');

xlabel('时间t(s)');

j = 1:length(F);

subplot(2,1,2)

plot(j,abs(F),'r')%画出序列的DFT图

title('原信号的DFT图');

32: Signal_2m

%该函数用于画出离散的采样波形图和由采样信号重建的信号图

%绘制离散的采样波形图

function Signal_Rebuilt(frequency)

%需要输入采样频率frequency

T= 1/frequency;%抽样周期

gs = -01:T:01;

fg = sin(6pigs);

subplot(2,1,1)

stem(gs, fg)

title('采样信号');

xlabel('时间t(s)');

%绘制由采样信号重建的信号图

y = -01:0001:01;

ln = -01/T:01/T;

M=ones(length(ln),1)y-ln'Tones(1,length(y));

fs = fgsinc(frequencyM);

subplot(2,1,2)

plot(y,fs,'r')

title('重建信号');

xlabel('时间t(s)');

%绘制由采样信号重建的信号的DFT图

k = 0:200;

n = -999:0;

s = exp(-j2pi/length(k));

skn = s^(k'n);

F = fsskn;

figure(3)

g = 1:length(F);

plot(g, abs(F))

以上就是关于MATLAB中的FFT的采样频率和采样点怎样确定全部的内容,包括:MATLAB中的FFT的采样频率和采样点怎样确定、如何用matlab生成正弦信号怎么对其采样怎么得到采样值、在matlab中如何实现函数的抽样等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10112984.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存