用matlab验证傅里叶变换的时移性质,有代码
时间: 2023-12-06 20:03:51 浏览: 100
傅里叶变换matlab代码
当然,下面是Matlab的代码:
```matlab
% 定义信号
t = linspace(-1,1,1000);
f1 = sin(2*pi*5*t); % 5Hz正弦信号
f2 = sin(2*pi*10*t); % 10Hz正弦信号
x = f1 + f2; % 信号x为两个正弦信号的叠加
% 进行时移操作
delay = 0.5; % 时移0.5秒
x_delay = x.*exp(-1i*2*pi*delay*t);
% 对原信号x和时移后的信号x_delay分别进行傅里叶变换
X = fft(x);
X_delay = fft(x_delay);
% 绘制幅度谱
subplot(2,1,1)
plot(abs(fftshift(X)))
title('幅度谱:原信号x')
subplot(2,1,2)
plot(abs(fftshift(X_delay)))
title('幅度谱:时移后的信号x\_delay')
% 绘制相位谱
subplot(2,1,1)
plot(angle(fftshift(X)))
title('相位谱:原信号x')
subplot(2,1,2)
plot(angle(fftshift(X_delay)))
title('相位谱:时移后的信号x\_delay')
```
代码中,定义了一个由两个正弦波叠加的信号x。然后,对这个信号进行了时移操作,并分别对原信号和时移后的信号进行了傅里叶变换。最后,绘制了幅度谱和相位谱。如果时移性质成立,那么时移后的信号的幅度谱和相位谱应该与原信号的幅度谱和相位谱完全一样,只是在横轴上有一个平移。
阅读全文