用MATLAB完成傅里叶变换并绘制出变换后的波形。

img


用MATLAB求出傅里叶变换并绘制图像
用什么函数工具,怎么得出图像呀

连续非周期的符号函数sign(t)求傅里叶变换的结果如下:

img


图像:

img

在Matlab里绘制的图像实际上都是转成离散时间信号处理后的结果(计算机里没有真正的模拟量),对连续时间信号(模拟信号)采样逼近得到的,这里得出的频谱(DFT得到的频域离散谱是对连续谱的N点等间隔采样)取连续包络就是sign(t)经连续时间傅里叶变换FT后的图像,就不再补充从FS、FT到DFS、DTFT、DFT(FFT)的过程和关系了,具体推导自行看书研究,写在这里会写到吐血的。

clc,clear,close all;
Fs = 1000;                   % Sampling frequency                    
T = 1/Fs;                    % Sampling period       
L = 1500;                    % Length of signal
t = (-1/2*L:1/2*L-1)*T;      % Time vector

%时域
y = sign(t);
figure(1)
plot(t,y)
ylim([-2 2])
grid on
title('Time-domain')

%fft近似表示ft
Y = fft(y);
P2 = abs(Y/L);
P0 = fftshift(P2);
P1 = P2(1:L/2+1);
P1(2:end-1) = 2*P1(2:end-1);
figure(2)
subplot(211)
plot(P0) 
title('Frequency-domain')
xlabel('w')
ylabel('|P2(f)|')
%基于 P2 和信号长度 L 计算单侧频谱 P1
subplot(212)
plot(P1) 
title('Frequency-domain')
xlabel('w')
ylabel('|P1(f)|')

img


img