运用matlab r2014b求下列信号的傅里叶变换表达式并画图:(1) f1(t)=U(t)-U(t-1);(2) f2(t)=e-2|t|次方
时间: 2024-10-10 19:12:45 浏览: 51
在MATLAB R2014b中,你可以使用`fft`函数来计算离散傅立叶变换(DFT),而连续时间信号的傅立叶变换通常需要先将其离散化。对于给定的两个信号:
1. f1(t) = U(t) - U(t-1),这是一个单位阶跃函数,在t=0处有一个跳变,可以表示为序列{1, 0, ..., 0}(在每个采样点t=1/n)。由于它是离散的,可以直接计算其DFT。
```matlab
% 定义采样率和样本点
Fs = 1; % 或者你选择的适当值
T = 1/Fs;
n = 0:Fs; % 时间向量
f1 = heaviside(n) - heaviside(n-1); % 使用Heaviside函数模拟U(t)
% 计算DFT
F1 = fft(f1);
F1_mag = abs(F1);
% 画出频谱图
figure;
plot(freqz(F1), F1_mag, 'b');
xlabel('Frequency (Hz)');
ylabel('Magnitude');
title('DTFT of f1(t)');
```
2. 对于 f2(t) = e^(-2|t|),这个是一个绝对值函数,我们需要通过数值积分或数值近似方法来处理,因为它不是一个简单的周期函数。在MATLAB中,可以先对连续函数进行离散化,例如使用等间隔的采样点,然后进行数值计算。
```matlab
% 数值逼近绝对值函数
f2 = exp(-2 * abs(n));
% 离散傅立叶变换
F2 = fft(f2);
F2_mag = abs(F2);
% 画出频谱图
figure;
plot(freqz(F2), F2_mag, 'r');
xlabel('Frequency (Hz)');
ylabel('Magnitude');
title('Approximated DTFT of f2(t)');
```