基于MATLAB中fft函数的时域采样信号频谱生成代码

如何快速的将时域离散信号的频谱通过MATLAB的fft2函数表示出来:

clc

clear all
close all
fs = 500;
t = 0:1/fs:1.5;

f1 = 40; 

f2 = 20;

x = sin(2 * pi * t * f1) + sin(2 * pi * t * f2); %input signal
figure(1)
plot(t, x);
title('input signal x[n]'); %input signal wave
figure(2)
f = (0:750) * fs / 751 - fs / 2; %750 derives from t, which (1.5 - 0) / (1 / fs) = 750, 0:1:750 there are 751 values

plot(f, abs(fftshift(fft(x)))); % plot input signal's frequency spectrum

%利用fftshift函数是必要的,fftshift函数的作用正是让正负半轴的图像分别关于各自的中心对称,

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我会分别回答您的四个问题。 1. 余弦信号时域采样频谱分析的原理: 余弦信号是周期性信号,其频域表示是一条单频线。在时域上进行采样,相当于在频域上进行周期性复制,每个周期复制出来的频谱是相同的。在频域上,采样操作相当于在单频线上每隔一定的频率间隔抽取一个点,形成了离散的频谱。这些点的值等于原信号频谱上对应频率处的值。因此,通过对离散的频谱进行逆变换,可以得到采样后的时域波形。 2. 基于MATLAB的余弦信号时域采样频谱分析的原理: 在MATLAB,可以使用fft函数对余弦信号进行频谱分析。首先生成一段余弦信号,然后对其进行采样。将采样的离散数据输入fft函数,即可得到离散频谱。如果要还原采样后的信号,可以使用ifft函数对离散频谱进行逆变换,得到时域波形。 3. 采样后恢复的信号与原始信号进行频谱分析的原理: 采样后的信号是由原始信号经过采样并加入量化误差生成的。因此,采样后的信号与原始信号频谱存在一定的差异。这种差异表现为采样频率的周期性复制,称为混叠。在频域上,混叠可以通过抽取离散频谱的第一个周期来消除。因此,对采样后恢复的信号进行频谱分析时,需要对信号进行去混叠处理,然后再进行fft变换。 4. 基于MATLAB采样后恢复的信号与原始信号进行频谱分析的原理: 在MATLAB,可以使用fir1函数设计一个低通滤波器,将采样后恢复的信号进行去混叠处理。然后,再对处理后的信号进行fft变换,得到离散频谱。与原始信号频谱进行比较,可以得到两者之间的相对误差。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值