1.熟悉傅立叶变换的各种性质
2.熟悉基本信号的频域转换
3.熟悉应用FFT对典型信号进行频谱分析的方法
4.熟悉在已经幅频函数|H(jw)|和相频函数arg(H(jw)的情况下,利用ifourier函数求傅里叶反变换得到的函数
### 傅里叶变换与反傅里叶变换的关键知识点
#### 1. 傅里叶变换的基本概念与性质
- **定义**: 傅里叶变换是一种将时域信号转换为频域信号的数学工具,广泛应用于信号处理、通信工程、图像处理等领域。对于连续时间信号 \( x(t) \),其傅里叶变换定义为:
\[
X(\omega) = \int_{-\infty}^{+\infty} x(t)e^{-j\omega t} dt
\]
- **逆傅里叶变换**: 对于频域信号 \( X(\omega) \),其逆傅里叶变换(或称反傅里叶变换)定义为:
\[
x(t) = \frac{1}{2\pi}\int_{-\infty}^{+\infty} X(\omega)e^{j\omega t} d\omega
\]
- **性质**:
- 线性:若 \( x_1(t) \rightarrow X_1(\omega) \) 和 \( x_2(t) \rightarrow X_2(\omega) \),则 \( ax_1(t) + bx_2(t) \rightarrow aX_1(\omega) + bX_2(\omega) \)。
- 尺度变化:若 \( x(t) \rightarrow X(\omega) \),则 \( x(at) \rightarrow \frac{1}{|a|}X(\frac{\omega}{a}) \)。
- 频移:若 \( x(t) \rightarrow X(\omega) \),则 \( e^{j\omega_0 t}x(t) \rightarrow X(\omega-\omega_0) \)。
- 时移:若 \( x(t) \rightarrow X(\omega) \),则 \( x(t-t_0) \rightarrow e^{-j\omega t_0}X(\omega) \)。
#### 2. 基本信号的频域转换
- **正弦信号**: 正弦信号 \( x(t) = A\sin(\omega_0 t + \phi) \) 的傅里叶变换为一对脉冲函数,表示该信号仅包含一个频率成分 \( \omega_0 \)。
- **指数衰减信号**: 如实验中的正弦衰减信号 \( y(t) = \sin(0.08\pi t) \cdot e^{-\frac{t}{80}} \),这类信号在频域中通常表现出较为复杂的频谱结构。
#### 3. 应用FFT对典型信号进行频谱分析
- **FFT简介**: 快速傅里叶变换(Fast Fourier Transform, FFT)是一种高效的计算离散傅里叶变换及其逆变换的方法。对于长度为 \( N \) 的序列,直接计算DFT需要 \( O(N^2) \) 次复数乘法,而FFT只需要 \( O(N\log N) \) 次。
- **应用**: 实验中使用MATLAB的 `fft` 函数来计算序列 \( yt \) 的快速傅里叶变换,并绘制出相应的幅频函数曲线和相频函数曲线。
- **代码示例**: 在实验中给出了一个具体的MATLAB代码示例,通过生成正弦衰减函数 \( yt \),然后利用FFT计算其傅里叶变换,并通过绘图展示结果。
```matlab
tp = 0:2048;
yt = sin(0.08*pi*tp).*exp(-tp/80);
figure(1), plot(tp, yt), axis([0, 400, -1, 1]), title('正弦衰减函数');
t = 0:800/2048:800;
ff = 0:1.25:1000;
yf = fft(yt);
ya = abs(yf(1:801));
yp = angle(yf(1:801))*180/pi;
subplot(2,1,1);
plot(ff, ya); axis([0, 200, 0, 60]);
xlabel('w'); ylabel('|H(jw)|');
grid on;
title('绘幅值曲线');
subplot(2,1,2);
plot(ff, yp); axis([0, 200, -200, 10]);
xlabel('w'); ylabel('arg|H(jw)|');
grid on;
title('绘相位曲线');
```
#### 4. 使用ifourier函数求傅里叶反变换
- **ifourier函数**: MATLAB中的 `ifourier` 函数用于计算给定频域表达式的傅里叶反变换。在实验中,给定了幅频函数 \( |H(j\omega)| \) 和相频函数 \( \arg(H(j\omega)) \),并通过 `ifourier` 函数求得原时域信号。
- **代码示例**:
```matlab
syms w;
a = input('请输入|H(jw)|:');
b = input('请输入相位函数arg(H(jw)):');
y = a * exp(1i * b);
c = ifouryer(y)
```
- **结果分析**: 通过输入特定的幅频和相频函数,可以得到相应的时域信号表达式。
#### 5. 实验心得与体会
- 通过本次实验,不仅加深了对MATLAB软件的理解,还学习了如何使用MATLAB进行傅里叶变换和反变换的操作。此外,实验过程中查阅资料和解决问题的过程也极大地提升了个人的能力。
- 实验还激发了对信号处理领域的兴趣,为进一步深入研究打下了坚实的基础。未来将继续探索更多相关的理论和技术,不断提高自己的技能水平。