前端开发入门到精通的在线学习网站

网站首页 > 资源文章 正文

根据数值信号,计算出信号的频率的matlab代码

qiguaw 2024-11-17 14:49:30 资源文章 14 ℃ 0 评论

遇到一些数字信号,或者一些数组的图,有时候需要计算出准确的频率是多少,下面是一个示例:


close

% 假设x是你的时间序列信号,Ts是采样时间间隔

Ts = 0.001; % 采样时间间隔,例如1ms

t = (0:N-1)*Ts; % 时间向量

x = sin(2*pi*10*t)+ sin(2*pi*20*t) ; % 信号

N = length(x); % 信号长度

% 计算傅里叶变换

X = fft(x);

% 计算频率轴

f = (0:N-1)*(1/(N*Ts)); % 频率向量

% 为了可视化,通常只取一半的频谱(Nyquist定理)

N2 = ceil(N/2); % 取FFT结果的一半

X_magnitude = abs(X(1:N2)); % 幅度谱

f = f(1:N2); % 对应的频率

% 绘制频谱图

figure; % 创建新图形窗口

subplot(211)

plot(t,x)

subplot(212)

plot(f, X_magnitude);

title('Frequency Spectrum');

xlabel('Frequency (Hz)');

ylabel('|X(f)|');

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表