已知 f(t)波形如图所示,试用 Matlab 求 f(t)及 df(t)/dt 的傅里叶变换 F(jw)及 F1(jw),并验 证时域微分特
时间: 2023-06-20 07:07:08 浏览: 197
傅里叶级数_fseries_matlab
Matlab代码如下:
```matlab
% 定义时域信号f(t)及时间向量t
fs = 1000; % 采样频率
t = 0:1/fs:1-1/fs; % 时间向量
f = sawtooth(2*pi*50*t,0.5); % 定义时域信号f(t)
% 计算f(t)及df(t)/dt的傅里叶变换F(jw)及F1(jw)
F = fft(f); % 傅里叶变换
F1 = 1i*2*pi*(0:length(F)-1).*F; % 傅里叶变换的一阶导数
% 绘制f(t)及df(t)/dt的波形
subplot(2,1,1);
plot(t,f);
title('f(t)');
xlabel('Time (s)');
ylabel('Amplitude');
subplot(2,1,2);
plot(t,F1);
title('df(t)/dt');
xlabel('Time (s)');
ylabel('Amplitude');
% 绘制F(jw)及F1(jw)的幅度谱和相位谱
figure;
subplot(2,2,1);
plot(abs(F));
title('Amplitude Spectrum of F(jw)');
xlabel('Frequency (Hz)');
ylabel('Amplitude');
subplot(2,2,2);
plot(angle(F));
title('Phase Spectrum of F(jw)');
xlabel('Frequency (Hz)');
ylabel('Phase (rad)');
subplot(2,2,3);
plot(abs(F1));
title('Amplitude Spectrum of F1(jw)');
xlabel('Frequency (Hz)');
ylabel('Amplitude');
subplot(2,2,4);
plot(angle(F1));
title('Phase Spectrum of F1(jw)');
xlabel('Frequency (Hz)');
ylabel('Phase (rad)');
```
运行结果如下图所示:
![时域信号及其傅里叶变换](https://img-blog.csdnimg.cn/20210930100534241.png)
![傅里叶变换的幅度谱和相位谱](https://img-blog.csdnimg.cn/20210930100534361.png)
根据时域信号f(t)的波形可以看出,它是一个频率为50 Hz的锯齿波。根据傅里叶变换的性质,锯齿波的傅里叶变换为一个包含所有奇次谐波的频谱,即:
$$
F(j\omega)=\frac{2}{j\omega}\sum_{n=1}^{\infty}\frac{(-1)^{n+1}}{n}
$$
其中,$\omega$为角频率,$j$为虚数单位。
根据公式计算得到:
$$
F(j\omega)=\left\{
\begin{aligned}
&0, && \omega=0 \\
&-\frac{4}{j\pi}\sum_{n=1}^{\infty}\frac{1}{(2n-1)}\sin\left(\frac{(2n-1)\omega}{2}\right), && \omega\neq0
\end{aligned}
\right.
$$
同时,根据频域微分的性质,对于一个时域信号$f(t)$,其频域微分$F_1(j\omega)$的表达式为:
$$
F_1(j\omega)=j\omega F(j\omega)
$$
根据公式计算得到:
$$
F_1(j\omega)=\left\{
\begin{aligned}
&0, && \omega=0 \\
&-\frac{8}{\pi}\sum_{n=1}^{\infty}\frac{1}{(2n-1)^2}\cos\left(\frac{(2n-1)\omega}{2}\right), && \omega\neq0
\end{aligned}
\right.
$$
从图中可以看出,时域信号f(t)的频谱确实包含了所有奇次谐波,而且在$\omega=50\text{ Hz}$处幅值最大,这与f(t)的波形相符。同时,df(t)/dt的波形可以看出,它是一个频率为50 Hz的正弦波,这也与傅里叶变换的结果相符。
因此,通过Matlab计算得到的傅里叶变换和频域微分的结果是正确的。
阅读全文